[Swfdec-commits] 37 commits - swfdec/swfdec_player.c swfdec/swfdec_style_sheet.c swfdec/swfdec_text_field_movie_as.c swfdec/swfdec_text_field_movie.c swfdec/swfdec_text_field_movie.h swfdec/swfdec_text_field_movie_html.c test/image test/trace

Pekka Lampila medar at kemper.freedesktop.org
Thu Mar 13 15:29:07 PDT 2008


 swfdec/swfdec_player.c                               |    7 
 swfdec/swfdec_style_sheet.c                          |    3 
 swfdec/swfdec_text_field_movie.c                     |  491 ++++++++++---
 swfdec/swfdec_text_field_movie.h                     |   21 
 swfdec/swfdec_text_field_movie_as.c                  |   15 
 swfdec/swfdec_text_field_movie_html.c                |   74 +
 test/image/text-field-empty-6.swf                    |binary
 test/image/text-field-empty-6.swf.png                |binary
 test/image/text-field-empty-7.swf                    |binary
 test/image/text-field-empty-7.swf.png                |binary
 test/image/text-field-empty-8.swf                    |binary
 test/image/text-field-empty-8.swf.png                |binary
 test/image/text-field-empty.as                       |    5 
 test/trace/Makefile.am                               |   17 
 test/trace/stylesheet-parse-8.swf                    |binary
 test/trace/stylesheet-parse-8.swf.trace              |  132 +++
 test/trace/stylesheet-parsecolor-5.swf               |binary
 test/trace/stylesheet-parsecolor-5.swf.trace         |   63 -
 test/trace/stylesheet-parsecolor-6.swf               |binary
 test/trace/stylesheet-parsecolor-6.swf.trace         |   59 -
 test/trace/stylesheet-parsecolor-7.swf               |binary
 test/trace/stylesheet-parsecolor-7.swf.trace         |   74 +
 test/trace/stylesheet-parsecolor-8.swf               |binary
 test/trace/stylesheet-parsecolor-8.swf.trace         |  136 +++
 test/trace/stylesheet-parsecssfontfamily-5.swf       |binary
 test/trace/stylesheet-parsecssfontfamily-5.swf.trace |   63 -
 test/trace/stylesheet-parsecssfontfamily-6.swf       |binary
 test/trace/stylesheet-parsecssfontfamily-6.swf.trace |   59 -
 test/trace/stylesheet-parsecssfontfamily-7.swf       |binary
 test/trace/stylesheet-parsecssfontfamily-7.swf.trace |   74 +
 test/trace/stylesheet-parsecssfontfamily-8.swf       |binary
 test/trace/stylesheet-parsecssfontfamily-8.swf.trace |  132 +++
 test/trace/text-field-html-input-5.swf               |binary
 test/trace/text-field-html-input-5.swf.trace         |  348 +++++++++
 test/trace/text-field-html-input-6.swf               |binary
 test/trace/text-field-html-input-6.swf.trace         |  706 ++++++++++++++++++-
 test/trace/text-field-html-input-7.swf               |binary
 test/trace/text-field-html-input-7.swf.trace         |  654 ++++++++++++++++-
 test/trace/text-field-html-input-8.swf               |binary
 test/trace/text-field-html-input-8.swf.trace         |  652 ++++++++++++++++-
 test/trace/text-field-html-input.as                  |   32 
 test/trace/text-field-html-new-format-5.swf          |binary
 test/trace/text-field-html-new-format-5.swf.trace    |    6 
 test/trace/text-field-html-new-format-6.swf          |binary
 test/trace/text-field-html-new-format-6.swf.trace    |    6 
 test/trace/text-field-html-new-format-7.swf          |binary
 test/trace/text-field-html-new-format-7.swf.trace    |    6 
 test/trace/text-field-html-new-format-8.swf          |binary
 test/trace/text-field-html-new-format-8.swf.trace    |    6 
 test/trace/text-field-html-new-format.as             |   41 +
 test/trace/text-field-variable-5.swf                 |binary
 test/trace/text-field-variable-5.swf.trace           |    6 
 test/trace/text-field-variable-6.swf                 |binary
 test/trace/text-field-variable-6.swf.trace           |   10 
 test/trace/text-field-variable-7.swf                 |binary
 test/trace/text-field-variable-7.swf.trace           |   10 
 test/trace/text-field-variable-8.swf                 |binary
 test/trace/text-field-variable-8.swf.trace           |   10 
 test/trace/text-field-variable.as                    |   16 
 59 files changed, 3487 insertions(+), 447 deletions(-)

New commits:
commit 2f561ebf00b90d5e1ad27be5f418c1f8d6c33eb0
Merge: 6176f7f... b4288cd...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Mar 14 00:26:09 2008 +0200

    Merge branch 'master' into selection

commit 6176f7fd09d9b0fbae4c06cbe1719ca1deb2e5a2
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Feb 21 19:44:40 2008 +0200

    Call the mouse_move vfunc

diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index e0e8ff9..d530225 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -1195,6 +1195,13 @@ swfdec_player_do_mouse_move (SwfdecPlayer *player, double x, double y)
     swfdec_player_broadcast (player, SWFDEC_AS_STR_Mouse, SWFDEC_AS_STR_onMouseMove);
   }
   swfdec_player_grab_mouse_movie (player);
+  if (priv->mouse_grab) {
+    SwfdecMovieClass *klass = SWFDEC_MOVIE_GET_CLASS (priv->mouse_grab);
+    swfdec_player_stage_to_global (player, &x, &y);
+    swfdec_movie_global_to_local (priv->mouse_grab, &x, &y);
+    if (klass->mouse_move)
+      klass->mouse_move (priv->mouse_grab, x, y);
+  }
 
   /* FIXME: allow events to pass through */
   return TRUE;
commit 12ee3baaf082df5464519f0fa3278d384ff94dd7
Merge: e184c03... 3d747ed...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Feb 20 18:18:15 2008 +0200

    Merge branch 'master' into selection

commit e184c030c9f03a72529b54bf26e8fa236533891b
Merge: c4d4834... 071dcd3...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Feb 19 21:07:07 2008 +0200

    Merge branch 'master' into selection
    
    Conflicts:
    
    	libswfdec/swfdec_load_object.c
    	libswfdec/swfdec_player.c
    	libswfdec/swfdec_style_sheet.c
    	libswfdec/swfdec_text_field_movie.c
    	libswfdec/swfdec_text_field_movie.h
    	libswfdec/swfdec_text_field_movie_as.c
    	libswfdec/swfdec_text_field_movie_html.c

diff --cc swfdec/swfdec_style_sheet.c
index 0000000,847b199..51dfa1c
mode 000000,100644..100644
--- a/swfdec/swfdec_style_sheet.c
+++ b/swfdec/swfdec_style_sheet.c
@@@ -1,0 -1,366 +1,367 @@@
+ /* Swfdec
+  * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+  *               2007 Pekka Lampila <pekka.lampila at iki.fi>
+  *
+  * 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
+  */
+ 
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
+ 
+ #include <string.h>
+ 
+ #include "swfdec_style_sheet.h"
+ #include "swfdec_as_native_function.h"
+ #include "swfdec_as_array.h"
+ #include "swfdec_as_object.h"
+ #include "swfdec_as_strings.h"
+ #include "swfdec_text_format.h"
+ #include "swfdec_text_field_movie.h"
+ #include "swfdec_debug.h"
+ #include "swfdec_internal.h"
+ #include "swfdec_as_internal.h"
+ #include "swfdec_player_internal.h"
+ 
+ enum {
+   UPDATE,
+   LAST_SIGNAL
+ };
+ 
+ G_DEFINE_TYPE (SwfdecStyleSheet, swfdec_style_sheet, SWFDEC_TYPE_AS_OBJECT)
+ static guint signals[LAST_SIGNAL] = { 0, };
+ 
+ static void
+ swfdec_style_sheet_class_init (SwfdecStyleSheetClass *klass)
+ {
+   signals[UPDATE] = g_signal_new ("update", G_TYPE_FROM_CLASS (klass),
+       G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID,
+       G_TYPE_NONE, 0);
+ }
+ 
+ static void
+ swfdec_style_sheet_init (SwfdecStyleSheet *style_sheet)
+ {
+ }
+ 
+ // Note: This overwrites any old object with the same name
+ static SwfdecAsObject *
+ swfdec_style_sheet_get_selector_object (SwfdecAsObject *object,
+     const char *name)
+ {
+   SwfdecAsValue val;
+   SwfdecAsObject *empty;
+ 
+   g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (object), NULL);
+   g_return_val_if_fail (name != NULL, NULL);
+ 
+   empty = swfdec_as_object_new_empty (object->context);
+   SWFDEC_AS_VALUE_SET_OBJECT (&val, empty);
+   swfdec_as_object_unset_variable_flags (object, name,
+       SWFDEC_AS_VARIABLE_CONSTANT);
+   swfdec_as_object_set_variable (object, name, &val);
+ 
+   return empty;
+ }
+ 
+ static const char *
+ swfdec_style_sheet_parse_selectors (SwfdecAsContext *cx, const char *p,
+     SwfdecAsObject *object, GPtrArray *selectors)
+ {
+   const char *end;
+   const char *name;
+ 
+   g_return_val_if_fail (p != NULL && p != '\0' && !g_ascii_isspace (*p), NULL);
+   g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (object), NULL);
+   g_return_val_if_fail (selectors != NULL, NULL);
+ 
+   p += strspn (p, " \t\r\n,");
+   if (*p == '{')
+     return NULL;
+ 
+   while (*p != '\0' && *p != '{') {
+     end = p + strcspn (p, " \t\r\n,{");
+     g_assert (end > p);
+ 
+     name = swfdec_as_context_give_string (cx, g_strndup (p, end - p));
+     g_ptr_array_add (selectors,
+ 	swfdec_style_sheet_get_selector_object (object, name));
+ 
+ 
+     p = end + strspn (end, " \t\r\n,");
+     if (*p != '{') {
+       // no , between selectors?
+       if (strchr (end, ',') == NULL || strchr (end, ',') > p)
+ 	return NULL;
+     }
+   }
+ 
+   if (*p != '{')
+     return NULL;
+ 
+   p++;
+   p = p + strspn (p, " \t\r\n");
+ 
+   // special case: don't allow empty declarations if not totally empty
 -  if (*(p-1) != '{' && (*p == '\0' || *p == '}'))
++  // except in version 8
++  if (cx->version < 8 && *(p-1) != '{' && (*p == '\0' || *p == '}'))
+     return NULL;
+ 
+   return p;
+ }
+ 
+ static char *
+ swfdec_style_sheet_convert_name (char *name)
+ {
+   char *p;
+ 
+   p = name;
+   while ((p = strchr (p, '-')) != NULL && *(p + 1) != '\0') {
+     memmove (p, p + 1, strlen (p + 1) + 1); // include NULL-byte
+     *p = g_ascii_toupper (*p);
+     p++;
+   };
+ 
+   return name;
+ }
+ 
+ static const char *
+ swfdec_style_sheet_parse_property (SwfdecAsContext *cx, const char *p,
+     const char **name, const char **value)
+ {
+   const char *end;
+ 
+   *name = NULL;
+   *value = NULL;
+ 
+   g_return_val_if_fail (p != NULL && p != '\0' && !g_ascii_isspace (*p), NULL);
+   g_return_val_if_fail (name != NULL, NULL);
+   g_return_val_if_fail (value != NULL, NULL);
+ 
+   end = p + strcspn (p, ":;");
+   if (*end == '\0' || *end == ';')
+     return NULL;
+ 
+   *name = swfdec_as_context_give_string (cx,
+       swfdec_style_sheet_convert_name (g_strndup (p, end - p)));
+ 
+   end++;
+   p = end + strspn (end, " \t\r\n");
+   if (*p == '\0')
+     return NULL;
+   end = p + strcspn (p, ";}");
+   if (*end == '\0')
+     return NULL;
+ 
+   if (end == p) {
+     *value = SWFDEC_AS_STR_EMPTY;
+   } else {
+     *value = swfdec_as_context_give_string (cx, g_strndup (p, end - p));
+   }
+ 
+   if (*end == '}') {
+     p = end;
+   } else {
+     end++;
+     p = end + strspn (end, " \t\r\n");
+   }
+ 
+   return p;
+ }
+ 
+ static SwfdecAsObject *
+ swfdec_style_sheet_parse (SwfdecAsContext *cx, const char *css)
+ {
+   guint i;
+   const char *p;
+   SwfdecAsValue val;
+   SwfdecAsObject *object;
+   GPtrArray *selectors;
+ 
+   g_return_val_if_fail (css != NULL, FALSE);
+ 
+   object = swfdec_as_object_new_empty (cx);
+   selectors = g_ptr_array_new ();
+ 
+   p = css + strspn (css, " \t\r\n");
+   while (p != NULL && *p != '\0')
+   {
+     if (selectors->len == 0) {
+       p = swfdec_style_sheet_parse_selectors (cx, p, object, selectors);
+     } else {
+       if (*p == '}') {
+ 	g_ptr_array_set_size (selectors, 0);
+ 	p++;
+ 	p += strspn (p, " \t\r\n");
+       } else {
+ 	const char *name, *value;
+ 	p = swfdec_style_sheet_parse_property (cx, p, &name, &value);
+ 	if (p != NULL) {
+ 	  for (i = 0; i < selectors->len; i++) {
+ 	    SWFDEC_AS_VALUE_SET_STRING (&val, value);
+ 	    swfdec_as_object_set_variable (
+ 		(SwfdecAsObject *)(selectors->pdata[i]), name, &val);
+ 	  }
+ 	}
+       }
+     }
+   }
+ 
+   g_ptr_array_free (selectors, TRUE);
+   if (p == NULL)
+     return NULL;
+ 
+   return object;
+ }
+ 
+ SWFDEC_AS_NATIVE (113, 100, swfdec_style_sheet_update)
+ void
+ swfdec_style_sheet_update (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
+ {
+   SwfdecStyleSheet *style;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_STYLESHEET, &style, "");
+ 
+   g_signal_emit (style, signals[UPDATE], 0);
+ }
+ 
+ SWFDEC_AS_NATIVE (113, 101, swfdec_style_sheet_parseCSSInternal)
+ void
+ swfdec_style_sheet_parseCSSInternal (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *rval)
+ {
+   SwfdecAsObject *values;
+ 
+   if (argc < 1)
+     return;
+ 
+   values =
+     swfdec_style_sheet_parse (cx, swfdec_as_value_to_string (cx, &argv[0]));
+ 
+   if (values == NULL) {
+     SWFDEC_AS_VALUE_SET_NULL (rval);
+   } else {
+     SWFDEC_AS_VALUE_SET_OBJECT (rval, values);
+   }
+ }
+ 
+ SWFDEC_AS_NATIVE (113, 102, swfdec_style_sheet_parseCSSFontFamily)
+ void
+ swfdec_style_sheet_parseCSSFontFamily (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *rval)
+ {
+   const char *name;
+ 
+   SWFDEC_AS_CHECK (0, NULL, "s", &name);
+ 
+   if (!g_ascii_strcasecmp (name, "mono")) {
+     SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR__typewriter);
+   } else if (!g_ascii_strcasecmp (name, "sans-serif")) {
+     SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR__sans);
+   } else if (!g_ascii_strcasecmp (name, "serif")) {
+     SWFDEC_AS_VALUE_SET_STRING (rval, SWFDEC_AS_STR__serif);
+   } else {
+     SWFDEC_AS_VALUE_SET_STRING (rval, name);
+   }
+ }
+ 
+ SWFDEC_AS_NATIVE (113, 103, swfdec_style_sheet_parseColor)
+ void
+ swfdec_style_sheet_parseColor (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
+ {
+   const char *value;
+   char *tail;
+   gint64 result;
+ 
+   SWFDEC_AS_VALUE_SET_NULL (rval);
+ 
+   SWFDEC_AS_CHECK (0, NULL, "s", &value);
+ 
+   if (strlen(value) != 7)
+     return;
+ 
+   if (value[0] != '#')
+     return;
+ 
+   result = g_ascii_strtoll (value + 1, &tail, 16);
+   if (*tail != '\0')
+     return;
+ 
+   SWFDEC_AS_VALUE_SET_INT (rval, result);
+ }
+ 
+ SWFDEC_AS_CONSTRUCTOR (113, 0, swfdec_style_sheet_construct, swfdec_style_sheet_get_type)
+ void
+ swfdec_style_sheet_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+ {
+   if (!swfdec_as_context_is_constructing (cx)) {
+     SWFDEC_FIXME ("What do we do if not constructing?");
+     return;
+   }
+ 
+   g_assert (SWFDEC_IS_STYLESHEET (object));
+ }
+ 
+ static SwfdecTextFormat *
+ swfdec_style_sheet_get_format (SwfdecStyleSheet *style, const char *name)
+ {
+   SwfdecAsObject *styles;
+   SwfdecAsValue val;
+ 
+   g_return_val_if_fail (SWFDEC_IS_STYLESHEET (style), NULL);
+   g_return_val_if_fail (name != NULL, NULL);
+ 
+   swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (style),
+       SWFDEC_AS_STR__styles, &val);
+   if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+     return NULL;
+   styles = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ 
+   swfdec_as_object_get_variable (styles, name, &val);
+   if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+     return NULL;
+   if (!SWFDEC_IS_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&val)))
+     return NULL;
+ 
+   return SWFDEC_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&val));
+ }
+ 
+ SwfdecTextFormat *
+ swfdec_style_sheet_get_tag_format (SwfdecStyleSheet *style, const char *name)
+ {
+   return swfdec_style_sheet_get_format (style, name);
+ }
+ 
+ SwfdecTextFormat *
+ swfdec_style_sheet_get_class_format (SwfdecStyleSheet *style, const char *name)
+ {
+   char *name_full;
+ 
+   g_return_val_if_fail (SWFDEC_IS_STYLESHEET (style), NULL);
+   g_return_val_if_fail (name != NULL, NULL);
+ 
+   name_full = g_malloc (1 + strlen (name) + 1);
+   name_full[0] = '.';
+   memcpy (name_full + 1, name, strlen (name) + 1);
+ 
+   return swfdec_style_sheet_get_format (style, swfdec_as_context_give_string (
+ 	SWFDEC_AS_OBJECT (style)->context, name_full));
+ }
diff --cc swfdec/swfdec_text_field_movie.c
index 0000000,84a4001..bad9ac4
mode 000000,100644..100644
--- a/swfdec/swfdec_text_field_movie.c
+++ b/swfdec/swfdec_text_field_movie.c
@@@ -1,0 -1,1627 +1,1950 @@@
+ /* Swfdec
+  * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+  *               2007 Pekka Lampila <pekka.lampila at iki.fi>
+  *
+  * 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
+  */
+ 
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
+ 
+ #include <string.h>
+ #include <math.h>
+ #include <pango/pangocairo.h>
+ 
+ #include "swfdec_text_field_movie.h"
+ #include "swfdec_as_context.h"
+ #include "swfdec_as_strings.h"
+ #include "swfdec_as_interpret.h"
+ #include "swfdec_debug.h"
+ #include "swfdec_player_internal.h"
+ #include "swfdec_resource.h"
+ #include "swfdec_sandbox.h"
+ #include "swfdec_text_format.h"
+ #include "swfdec_xml.h"
+ 
+ G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
+ 
+ #define EXTRA_MARGIN 2
+ #define BULLET_MARGIN 36
+ 
+ static void
+ swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
+     SwfdecRect *extents)
+ {
+   swfdec_rect_union (extents, extents,
+       &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
+ }
+ 
+ static void
+ swfdec_text_field_movie_invalidate (SwfdecMovie *movie, const cairo_matrix_t *matrix, gboolean last)
+ {
 -  SwfdecRect rect;
 -  
 -  swfdec_rect_transform (&rect, 
 -    &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents, matrix);
 -  swfdec_player_invalidate (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (movie)->context), &rect);
++  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
++  SwfdecRect rect, extended;
++
++  extended = SWFDEC_GRAPHIC (text->text)->extents;
++
++  // border is drawn partly outside the extents
++  if (text->text->border) {
++    extended.x1 += SWFDEC_TWIPS_TO_DOUBLE (1);
++    extended.y1 += SWFDEC_TWIPS_TO_DOUBLE (1);
++  }
++
++  swfdec_rect_transform (&rect, &extended, matrix);
++  swfdec_player_invalidate (
++      SWFDEC_PLAYER (SWFDEC_AS_OBJECT (movie)->context), &rect);
+ }
+ 
+ static void
+ swfdec_text_field_movie_ensure_asterisks (SwfdecTextFieldMovie *text,
+     guint length)
+ {
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+ 
+   if (text->asterisks_length >= length)
+     return;
+ 
+   if (text->asterisks != NULL)
+     g_free (text->asterisks);
+ 
+   text->asterisks = g_malloc (length + 1);
+   memset (text->asterisks, '*', length);
+   text->asterisks[length] = 0;
+   text->asterisks_length = length;
+ }
+ 
+ static void
+ swfdec_text_paragraph_add_attribute (SwfdecParagraph *paragraph,
+     PangoAttribute *attr)
+ {
+   paragraph->attrs = g_slist_prepend (paragraph->attrs, attr);
+ }
+ 
+ static void
+ swfdec_text_paragraph_add_block (SwfdecParagraph *paragraph, int index_,
+     SwfdecTextFormat *format)
+ {
+   gint32 length, i;
+   SwfdecBlock *block;
+   SwfdecAsValue val;
+ 
+   block = g_new0 (SwfdecBlock, 1);
+ 
+   block->index_ = index_;
+ 
+   switch (format->align) {
+     case SWFDEC_TEXT_ALIGN_LEFT:
+       block->align = PANGO_ALIGN_LEFT;
+       block->justify = FALSE;
+       break;
+     case SWFDEC_TEXT_ALIGN_RIGHT:
+       block->align = PANGO_ALIGN_RIGHT;
+       block->justify = FALSE;
+       break;
+     case SWFDEC_TEXT_ALIGN_CENTER:
+       block->align = PANGO_ALIGN_CENTER;
+       block->justify = FALSE;
+       break;
+     case SWFDEC_TEXT_ALIGN_JUSTIFY:
+       block->align = PANGO_ALIGN_LEFT;
+       block->justify = TRUE;
+       break;
+     default:
+       g_assert_not_reached ();
+   }
+   block->leading = format->leading * 20 * PANGO_SCALE;
+   block->block_indent = format->block_indent * 20;
+   block->left_margin = format->left_margin * 20;
+   block->right_margin = format->right_margin * 20;
+ 
+   if (format->tab_stops != NULL) {
+     length = swfdec_as_array_get_length (format->tab_stops);
+     block->tab_stops = pango_tab_array_new (length, TRUE);
+     for (i = 0; i < length; i++) {
+       swfdec_as_array_get_value (format->tab_stops, i, &val);
+       g_assert (SWFDEC_AS_VALUE_IS_NUMBER (&val));
+       pango_tab_array_set_tab (block->tab_stops, i, PANGO_TAB_LEFT,
+ 	  SWFDEC_AS_VALUE_GET_NUMBER (&val) * 20);
+     }
+   } else {
+     block->tab_stops = NULL;
+   }
+ 
+   paragraph->blocks = g_slist_prepend (paragraph->blocks, block);
+ }
+ 
+ static void
+ swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
+     SwfdecParagraph *paragraph, guint start_index, guint length)
+ {
+   SwfdecTextFormat *format, *format_prev;
+   guint index_;
+   GSList *iter;
+   PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
+ 		 *attr_letter_spacing, *attr_size, *attr_underline;
+   // TODO: kerning, display
+ 
+   g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_assert (paragraph != NULL);
+   g_assert (start_index + length <= text->input->len);
+ 
+   paragraph->index_ = start_index;
+   paragraph->length = length;
+   if (text->input->str[start_index + length - 1] == '\n' ||
+       text->input->str[start_index + length - 1] == '\r') {
+     paragraph->newline = TRUE;
+   } else {
+     paragraph->newline = FALSE;
+   }
+ 
+   paragraph->blocks = NULL;
+   paragraph->attrs = NULL;
+ 
+   g_assert (text->formats != NULL);
+   for (iter = text->formats; iter->next != NULL &&
+       ((SwfdecFormatIndex *)(iter->next->data))->index_ <= start_index;
+       iter = iter->next);
+ 
+   index_ = start_index;
+   format = ((SwfdecFormatIndex *)(iter->data))->format;
+ 
+   // Paragraph formats
+   paragraph->bullet = format->bullet;
+   paragraph->indent = format->indent * 20 * PANGO_SCALE;
+ 
+   // Add new block
+   swfdec_text_paragraph_add_block (paragraph, 0, format);
+ 
+   // Open attributes
+   attr_bold = pango_attr_weight_new (
+       (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
+   attr_bold->start_index = 0;
+ 
+   attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color) * 255,
+       SWFDEC_COLOR_G (format->color) * 255,
+       SWFDEC_COLOR_B (format->color) * 255);
+   attr_color->start_index = 0;
+ 
+   // FIXME: embed fonts
+   attr_font = pango_attr_family_new (format->font);
+   attr_font->start_index = 0;
+ 
+   attr_italic = pango_attr_style_new (
+       (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
+   attr_italic->start_index = 0;
+ 
+   attr_letter_spacing = pango_attr_letter_spacing_new (
+       format->letter_spacing * 20 * PANGO_SCALE);
+   attr_letter_spacing->start_index = 0;
+ 
+   attr_size =
+     pango_attr_size_new_absolute (MAX (format->size, 1) * 20 * PANGO_SCALE);
+   attr_size->start_index = 0;
+ 
+   attr_underline = pango_attr_underline_new (
+       (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
+   attr_underline->start_index = 0;
+ 
+   for (iter = iter->next;
+       iter != NULL &&
+       ((SwfdecFormatIndex *)(iter->data))->index_ < start_index + length;
+       iter = iter->next)
+   {
+     format_prev = format;
+     index_ = ((SwfdecFormatIndex *)(iter->data))->index_;
+     format = ((SwfdecFormatIndex *)(iter->data))->format;
+ 
+     // Add new block if necessary
+     if (format_prev->align != format->align ||
+        format_prev->bullet != format->bullet ||
+        format_prev->indent != format->indent ||
+        format_prev->leading != format->leading ||
+        format_prev->block_indent != format->block_indent ||
+        format_prev->left_margin != format->left_margin)
+     {
+       swfdec_text_paragraph_add_block (paragraph, index_ - start_index,
+ 	  format);
+     }
+ 
+     // Change attributes if necessary
+     if (format_prev->bold != format->bold) {
+       attr_bold->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
+ 
+       attr_bold = pango_attr_weight_new (
+ 	  (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
+       attr_bold->start_index = index_ - start_index;
+     }
+ 
+     if (format_prev->color != format->color) {
+       attr_color->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_color);
+ 
+       attr_color = pango_attr_foreground_new (
+ 	  SWFDEC_COLOR_R (format->color) * 255,
+ 	  SWFDEC_COLOR_G (format->color) * 255,
+ 	  SWFDEC_COLOR_B (format->color) * 255);
+       attr_color->start_index = index_ - start_index;
+     }
+ 
+     if (format_prev->font != format->font) {
+       attr_font->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_font);
+ 
+       // FIXME: embed fonts
+       attr_font = pango_attr_family_new (format->font);
+       attr_font->start_index = index_ - start_index;
+     }
+ 
+     if (format_prev->italic != format->italic) {
+       attr_italic->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
+ 
+       attr_italic = pango_attr_style_new (
+ 	  (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
+       attr_italic->start_index = index_ - start_index;
+     }
+ 
+     if (format_prev->letter_spacing != format->letter_spacing) {
+       attr_letter_spacing->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
+ 
+       attr_letter_spacing = pango_attr_letter_spacing_new (
+ 	  format->letter_spacing * 20 * PANGO_SCALE);
+       attr_letter_spacing->start_index = index_ - start_index;
+     }
+ 
+     if (format_prev->size != format->size) {
+       attr_size->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_size);
+ 
+       attr_size = pango_attr_size_new_absolute (
+ 	  MAX (1, format->size) * 20 * PANGO_SCALE);
+       attr_size->start_index = index_ - start_index;
+     }
+ 
+     if (format_prev->underline != format->underline) {
+       attr_underline->end_index = index_ - start_index;
+       swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
+ 
+       attr_underline = pango_attr_underline_new (
+ 	  (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
+       attr_underline->start_index = index_ - start_index;
+     }
+   }
+ 
+   // Close attributes
+   attr_bold->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
+   attr_bold = NULL;
+ 
+   attr_color->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_color);
+   attr_color = NULL;
+ 
+   attr_font->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_font);
+   attr_font = NULL;
+ 
+   attr_italic->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
+   attr_italic = NULL;
+ 
+   attr_letter_spacing->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
+   attr_letter_spacing = NULL;
+ 
+   attr_size->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_size);
+   attr_size = NULL;
+ 
+   attr_underline->end_index = length;
+   swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
+   attr_underline = NULL;
+ 
+   // reverse blocks since we use prepend to add them
+   paragraph->blocks = g_slist_reverse (paragraph->blocks);
+ }
+ 
+ static SwfdecParagraph *
+ swfdec_text_field_movie_get_paragraphs (SwfdecTextFieldMovie *text, int *num)
+ {
+   GArray *paragraphs;
+   SwfdecParagraph paragraph;
+   const char *p, *end;
+   guint max_length;
+ 
+   g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+ 
+   paragraphs = g_array_new (TRUE, TRUE, sizeof (SwfdecParagraph));
+ 
+   max_length = 0;
+   p = text->input->str;
+   while (*p != '\0')
+   {
+     end = strpbrk (p, "\r\n");
+     if (end == NULL) {
+       end = strchr (p, '\0');
+     } else {
+       end++;
+     }
+ 
+     if ((guint) (end - p) > max_length)
+       max_length = end - p;
+ 
+     swfdec_text_field_movie_generate_paragraph (text, &paragraph,
+ 	p - text->input->str, end - p);
+     paragraphs = g_array_append_val (paragraphs, paragraph);
+ 
+     p = end;
+   }
+ 
+   if (num != NULL)
+     *num = paragraphs->len;
+ 
+   if (text->text->password)
+     swfdec_text_field_movie_ensure_asterisks (text, max_length);
+ 
+   return (SwfdecParagraph *) (void *) g_array_free (paragraphs, FALSE);
+ }
+ 
+ static void
+ swfdec_text_field_movie_free_paragraphs (SwfdecParagraph *paragraphs)
+ {
+   GSList *iter;
+   int i;
+ 
+   g_return_if_fail (paragraphs != NULL);
+ 
+   for (i = 0; paragraphs[i].blocks != NULL; i++)
+   {
+     for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next) {
+       if (((SwfdecBlock *)(iter->data))->tab_stops)
+ 	pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
+       g_free (iter->data);
+     }
+     g_slist_free (paragraphs[i].blocks);
+ 
+     for (iter = paragraphs[i].attrs; iter != NULL; iter = iter->next) {
+       pango_attribute_destroy ((PangoAttribute *)(iter->data));
+     }
+     g_slist_free (paragraphs[i].attrs);
+   }
+   g_free (paragraphs);
+ }
+ 
+ /*
+  * Rendering
+  */
+ static PangoAttrList *
+ swfdec_text_field_movie_paragraph_get_attr_list (
+     const SwfdecParagraph *paragraph, guint index_,
+     const SwfdecColorTransform *trans)
+ {
+   PangoAttrList *attr_list;
+   GSList *iter;
+ 
+   attr_list = pango_attr_list_new ();
+ 
+   for (iter = paragraph->attrs; iter != NULL; iter = iter->next)
+   {
+     PangoAttribute *attr;
+ 
+     if (((PangoAttribute *)iter->data)->end_index <= index_)
+       continue;
+ 
+     attr = pango_attribute_copy ((PangoAttribute *)iter->data);
+ 
+     if (attr->klass->type == PANGO_ATTR_FOREGROUND && trans != NULL &&
+ 	!swfdec_color_transform_is_identity (trans))
+     {
+       SwfdecColor color;
+       PangoColor color_p;
+ 
+       color_p = ((PangoAttrColor *)attr)->color;
+ 
+       color = SWFDEC_COLOR_COMBINE (color_p.red >> 8, color_p.green >> 8,
+ 	  color_p.blue >> 8, 255);
+       color = swfdec_color_apply_transform (color, trans);
+ 
+       color_p.red = SWFDEC_COLOR_R (color) << 8;
+       color_p.green = SWFDEC_COLOR_G (color) << 8;
+       color_p.blue = SWFDEC_COLOR_B (color) << 8;
+     }
+ 
+     attr->start_index =
+       (attr->start_index > index_ ? attr->start_index - index_ : 0);
+     attr->end_index = attr->end_index - index_;
+     pango_attr_list_insert (attr_list, attr);
+   }
+ 
+   return attr_list;
+ }
+ 
 -static int
 -swfdec_text_field_movie_layout_get_last_line_baseline (PangoLayout *playout)
 -{
 -  int baseline;
 -  PangoLayoutIter *iter;
 -
 -  g_return_val_if_fail (playout != NULL, 0);
 -
 -  iter = pango_layout_get_iter (playout);
 -  while (!pango_layout_iter_at_last_line (iter))
 -    pango_layout_iter_next_line (iter);
 -
 -  baseline = pango_layout_iter_get_baseline (iter) / PANGO_SCALE;
 -
 -  pango_layout_iter_free (iter);
 -
 -  return baseline;
 -}
 -
+ static void
+ swfdec_text_field_movie_attr_list_get_ascent_descent (PangoAttrList *attr_list,
+     guint pos, int *ascent, int *descent)
+ {
+   PangoAttrIterator *attr_iter;
+   PangoFontDescription *desc;
+   PangoFontMap *fontmap;
+   PangoFont *font;
+   PangoFontMetrics *metrics;
+   PangoContext *pcontext;
+   int end;
+ 
+   if (ascent != NULL)
+     *ascent = 0;
+   if (descent != NULL)
+     *descent = 0;
+ 
+   g_return_if_fail (attr_list != NULL);
+ 
+   attr_iter = pango_attr_list_get_iterator (attr_list);
+   pango_attr_iterator_range (attr_iter, NULL, &end);
+   while ((guint)end < pos && pango_attr_iterator_next (attr_iter)) {
+     pango_attr_iterator_range (attr_iter, NULL, &end);
+   }
+   desc = pango_font_description_new ();
+   pango_attr_iterator_get_font (attr_iter, desc, NULL, NULL);
+   fontmap = pango_cairo_font_map_get_default ();
+   pcontext =
+     pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
+   font = pango_font_map_load_font (fontmap, pcontext, desc);
+   metrics = pango_font_get_metrics (font, NULL);
+ 
+   if (ascent != NULL)
+     *ascent = pango_font_metrics_get_ascent (metrics) / PANGO_SCALE;
+   if (descent != NULL)
+     *descent = pango_font_metrics_get_descent (metrics) / PANGO_SCALE;
+ 
+   g_object_unref (pcontext);
+   pango_font_metrics_unref (metrics);
+   pango_font_description_free (desc);
+   pango_attr_iterator_destroy (attr_iter);
+ }
+ 
+ static SwfdecLayout *
+ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
+     cairo_t *cr, const SwfdecParagraph *paragraphs,
+     const SwfdecColorTransform *trans)
+ {
+   GArray *layouts;
+   guint i;
+   SwfdecParagraph *paragraphs_free;
+ 
+   g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+ 
+   if (cr == NULL)
+     cr = text->cr;
+ 
+   if (paragraphs == NULL) {
+     paragraphs_free = swfdec_text_field_movie_get_paragraphs (text, NULL);
+     paragraphs = paragraphs_free;
+   } else {
+     paragraphs_free = NULL;
+   }
+ 
+   layouts = g_array_new (TRUE, TRUE, sizeof (SwfdecLayout));
+ 
+   for (i = 0; paragraphs[i].blocks != NULL; i++)
+   {
+     GSList *iter;
+     guint skip;
+ 
+     skip = 0;
+     for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
+     {
+       SwfdecLayout layout;
+       PangoLayout *playout;
+       PangoAttrList *attr_list;
+       SwfdecBlock *block;
+       int width;
+       guint length;
 -      gboolean end_of_paragraph;
+ 
+       block = (SwfdecBlock *)iter->data;
+       if (iter->next != NULL) {
+ 	length =
+ 	  ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
+       } else {
+ 	length = paragraphs[i].length - block->index_;
+ 	if (paragraphs[i].newline)
+ 	  length -= 1;
+       }
+ 
+       if (skip > length) {
+ 	skip -= length;
+ 	continue;
+       }
+ 
+       // create layout
+       playout = layout.layout = pango_cairo_create_layout (cr);
++      pango_layout_set_single_paragraph_mode (playout, TRUE);
+ 
+       // set rendering position
+       layout.offset_x = block->left_margin + block->block_indent;
+       if (paragraphs[i].bullet)
+ 	layout.offset_x += SWFDEC_DOUBLE_TO_TWIPS (BULLET_MARGIN);
+ 
+       width = SWFDEC_MOVIE (text)->original_extents.x1 -
+ 	SWFDEC_MOVIE (text)->original_extents.x0 - block->right_margin -
+ 	layout.offset_x;
+ 
+       if (block->index_ == 0 && paragraphs[i].indent < 0) {
+ 	// limit negative indent to not go over leftMargin + blockIndent
+ 	int indent = MAX (paragraphs[i].indent / PANGO_SCALE,
+ 	    -(block->left_margin + block->block_indent));
+ 	layout.offset_x += indent;
+ 	width += -indent;
+       }
+ 
+       if (text->text->word_wrap) {
+ 	pango_layout_set_wrap (playout, PANGO_WRAP_WORD_CHAR);
+ 	pango_layout_set_width (playout, width * PANGO_SCALE);
+ 	pango_layout_set_alignment (playout, block->align);
+ 	pango_layout_set_justify (playout, block->justify);
+       } else {
+ 	pango_layout_set_width (playout, -1);
+       }
+ 
+       // set paragraph styles
+       if (block->index_ == 0) {
+ 	pango_layout_set_indent (playout, paragraphs[i].indent);
+ 	layout.bullet = paragraphs[i].bullet;
+       } else {
+ 	pango_layout_set_indent (playout, 0);
+ 	layout.bullet = FALSE;
+       }
+ 
+       // set block styles
+       pango_layout_set_spacing (playout, block->leading);
+       if (block->tab_stops != NULL)
+ 	pango_layout_set_tabs (playout, block->tab_stops);
+ 
+       // set text attributes
+       attr_list = swfdec_text_field_movie_paragraph_get_attr_list (
+ 	  &paragraphs[i], block->index_ + skip, trans);
++
++      // add background for selection
++      layout.index_ = paragraphs[i].index_ + block->index_ + skip;
++      if (text->text->selectable && text->cursor != text->selection_end &&
++	  layout.index_ < MAX (text->cursor, text->selection_end)) {
++	SwfdecColor color;
++	PangoAttribute *attr_fg, *attr_bg;
++
++	color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
++	if (trans != NULL)
++	  color = swfdec_color_apply_transform (color, trans);
++	attr_fg = pango_attr_foreground_new (SWFDEC_COLOR_R (color) << 8,
++	    SWFDEC_COLOR_G (color) << 8, SWFDEC_COLOR_B (color) << 8);
++
++	color = SWFDEC_COLOR_COMBINE (0, 0, 0, 255);
++	if (trans != NULL)
++	  color = swfdec_color_apply_transform (color, trans);
++	attr_bg = pango_attr_background_new (SWFDEC_COLOR_R (color) << 8,
++	    SWFDEC_COLOR_G (color) << 8, SWFDEC_COLOR_B (color) << 8);
++
++	if (MIN (text->cursor, text->selection_end) > layout.index_) {
++	  attr_fg->start_index = attr_bg->start_index =
++	    MIN (text->cursor, text->selection_end) - layout.index_;
++	} else {
++	  attr_fg->start_index = attr_bg->start_index = 0;
++	}
++	attr_bg->end_index = attr_fg->end_index =
++	  MAX (text->cursor, text->selection_end) - layout.index_;
++
++	pango_attr_list_insert (attr_list, attr_fg);
++	pango_attr_list_insert (attr_list, attr_bg);
++      }
++
++      // add shape for newline character at the end
++      if (paragraphs[i].newline) {
++	int ascent, descent;
++	PangoRectangle rect;
++	PangoAttribute *attr;
++
++	swfdec_text_field_movie_attr_list_get_ascent_descent (attr_list,
++	    paragraphs[i].length - block->index_ - skip, &ascent, &descent);
++
++	rect.x = 0;
++	rect.width = 0;
++	rect.y = -ascent * PANGO_SCALE;
++	rect.height = descent * PANGO_SCALE;
++
++	attr = pango_attr_shape_new (&rect, &rect);
++
++	attr->end_index = paragraphs[i].length - block->index_ - skip;
++	attr->start_index = attr->end_index - 1;
++
++	pango_attr_list_insert (attr_list, attr);
++      }
++
+       pango_layout_set_attributes (playout, attr_list);
+ 
+       if (text->text->password) {
+ 	pango_layout_set_text (playout, text->asterisks, paragraphs[i].length -
 -	    block->index_ - skip - (paragraphs[i].newline ? 1 : 0));
++	    block->index_ - skip);
+       } else {
+ 	pango_layout_set_text (playout,
+ 	    text->input->str + paragraphs[i].index_ + block->index_ + skip,
 -	    paragraphs[i].length - block->index_ - skip -
 -	    (paragraphs[i].newline ? 1 : 0));
++	    paragraphs[i].length - block->index_ - skip);
+       }
+ 
 -      end_of_paragraph = TRUE;
+       if (iter->next != NULL && text->text->word_wrap)
+       {
+ 	PangoLayoutLine *line;
+ 	int line_num;
+ 	guint skip_new;
+ 
+ 	pango_layout_index_to_line_x (playout, length - skip, FALSE, &line_num,
+ 	    NULL);
+ 	if (line_num < pango_layout_get_line_count (playout) - 1) {
 -	  end_of_paragraph = FALSE;
+ 	  line = pango_layout_get_line_readonly (playout, line_num);
+ 	  skip_new = line->start_index + line->length - (length - skip);
+ 	  pango_layout_set_text (playout,
+ 	      text->input->str + paragraphs[i].index_ + block->index_ + skip,
+ 	      length - skip + skip_new);
+ 	  skip = skip_new;
+ 	}
+       }
+       else
+       {
+ 	if (!text->text->word_wrap && block->align != PANGO_ALIGN_LEFT) {
+ 	  int line_width;
+ 	  pango_layout_get_pixel_size (playout, &line_width, 0);
+ 	  if (line_width < width) {
+ 	    if (block->align == PANGO_ALIGN_RIGHT) {
+ 	      layout.offset_x += width - line_width;
+ 	    } else if (block->align == PANGO_ALIGN_CENTER) {
+ 	      layout.offset_x += (width - line_width) / 2;
+ 	    } else {
+ 	      g_assert_not_reached ();
+ 	    }
+ 	  }
+ 	}
+ 
+ 	skip = 0;
+       }
+ 
+       pango_layout_get_pixel_size (playout, &layout.width, &layout.height);
+       layout.width += layout.offset_x + block->right_margin;
 -      layout.last_line_offset_y = 0;
 -
 -      // figure out if we need to add extra height because of the size of the
 -      // line break character
 -      if (end_of_paragraph && paragraphs[i].newline)
 -      {
 -	int ascent, descent;
 -
 -	swfdec_text_field_movie_attr_list_get_ascent_descent (attr_list,
 -	    paragraphs[i].length - block->index_ - skip, &ascent, &descent);
 -
 -	if (ascent + descent > layout.height) {
 -	  int baseline =
 -	    swfdec_text_field_movie_layout_get_last_line_baseline (playout);
 -	  layout.last_line_offset_y = ascent - baseline;
 -	  layout.height = ascent + descent;
 -	}
 -      }
+ 
+       pango_attr_list_unref (attr_list);
+ 
+       // add leading to last line too
+       layout.height += block->leading / PANGO_SCALE;
+ 
+       layouts = g_array_append_val (layouts, layout);
+ 
+       if (!text->text->word_wrap)
+ 	break;
+     }
+   }
+ 
+   if (paragraphs_free != NULL) {
+     swfdec_text_field_movie_free_paragraphs (paragraphs_free);
+     paragraphs_free = NULL;
+     paragraphs = NULL;
+   }
+ 
+   if (num != NULL)
+     *num = layouts->len;
+ 
+   return (SwfdecLayout *) (void *) g_array_free (layouts, FALSE);
+ }
+ 
+ static void
+ swfdec_text_field_movie_free_layouts (SwfdecLayout *layouts)
+ {
+   int i;
+ 
+   g_return_if_fail (layouts != NULL);
+ 
+   for (i = 0; layouts[i].layout != NULL; i++) {
+     g_object_unref (layouts[i].layout);
+   }
+ 
+   g_free (layouts);
+ }
+ 
+ static void
++swfdec_text_field_movie_line_position (SwfdecLayout *layouts, int line_num,
++    int *pixels, int *layout_num, int *line_in_layout)
++{
++  int current, i;
++
++  if (pixels != NULL)
++    *pixels = 0;
++
++  if (layout_num != NULL)
++    *layout_num = 0;
++
++  if (line_in_layout != NULL)
++    *line_in_layout = 0;
++
++  g_return_if_fail (layouts != NULL);
++
++  current = 1;
++  for (i = 0; layouts[i].layout != NULL && current < line_num; i++) {
++    current += pango_layout_get_line_count (layouts[i].layout);
++
++    if (pixels != NULL)
++      *pixels += layouts[i].height;
++  }
++
++  if (current > line_num) {
++    PangoLayoutIter *iter_line;
++
++    i--;
++    current -= pango_layout_get_line_count (layouts[i].layout);
++
++    if (pixels != NULL)
++      *pixels -= layouts[i].height;
++
++    iter_line = pango_layout_get_iter (layouts[i].layout);
++
++    while (++current < line_num) {
++      g_assert (!pango_layout_iter_at_last_line (iter_line));
++      pango_layout_iter_next_line (iter_line);
++
++      if (line_in_layout != NULL)
++	(*line_in_layout)++;
++    }
++
++    if (pixels != NULL) {
++      PangoRectangle rect;
++
++      pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
++      pango_extents_to_pixels (NULL, &rect);
++
++      *pixels += rect.y;
++    }
++
++    pango_layout_iter_free (iter_line);
++  }
++
++  if (layout_num != NULL)
++    *layout_num = i;
++}
++
++static void
+ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
+     const SwfdecColorTransform *trans, const SwfdecRect *inval)
+ {
+   SwfdecTextFieldMovie *text_movie;
+   SwfdecTextField *text;
+   SwfdecLayout *layouts;
+   SwfdecRect limit;
+   SwfdecColor color;
+   SwfdecParagraph *paragraphs;
 -  int i, y, x, linenum;
++  int i, y, x, skip;
+   gboolean first;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
+   g_return_if_fail (cr != NULL);
+   g_return_if_fail (trans != NULL);
+   g_return_if_fail (inval != NULL);
+ 
+   /* textfields don't mask */
+   if (swfdec_color_transform_is_mask (trans))
+     return;
+ 
+   text_movie = SWFDEC_TEXT_FIELD_MOVIE (movie);
+   text = SWFDEC_TEXT_FIELD (movie->graphic);
+ 
+   paragraphs = swfdec_text_field_movie_get_paragraphs (text_movie, NULL);
+ 
+   swfdec_rect_intersect (&limit, &movie->original_extents, inval);
+ 
 -  cairo_rectangle (cr, limit.x0, limit.y0, limit.x1 - limit.x0,
 -      limit.y1 - limit.y0);
 -  cairo_clip (cr);
 -
+   if (text->background) {
+     cairo_rectangle (cr, limit.x0, limit.y0, limit.x1 - limit.x0,
+ 	limit.y1 - limit.y0);
+     color = swfdec_color_apply_transform (text_movie->background_color, trans);
+     // always use full alpha
+     swfdec_color_set_source (cr, color | SWFDEC_COLOR_COMBINE (0, 0, 0, 255));
+     cairo_fill (cr);
+   }
+ 
+   if (text->border) {
 -    // FIXME: border should be partly outside the extents and should not be
 -    // scaled, but always be 1 pixel width
++    // FIXME: should not be scaled, but always be 1 pixel width
++    // TODO: should clip before to make things faster?
+     cairo_rectangle (cr, movie->original_extents.x0 +
 -	SWFDEC_DOUBLE_TO_TWIPS (1), movie->original_extents.y0,
 -	movie->original_extents.x1 - movie->original_extents.x0 -
 -	SWFDEC_DOUBLE_TO_TWIPS (1), movie->original_extents.y1 -
 -	movie->original_extents.y0 - SWFDEC_DOUBLE_TO_TWIPS (1));
++	SWFDEC_DOUBLE_TO_TWIPS (0.5), movie->original_extents.y0 +
++	SWFDEC_DOUBLE_TO_TWIPS (0.5),
++	movie->original_extents.x1 - movie->original_extents.x0,
++	movie->original_extents.y1 - movie->original_extents.y0);
+     color = swfdec_color_apply_transform (text_movie->border_color, trans);
+     // always use full alpha
+     swfdec_color_set_source (cr, color | SWFDEC_COLOR_COMBINE (0, 0, 0, 255));
+     cairo_set_line_width (cr, SWFDEC_DOUBLE_TO_TWIPS (1));
+     cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+     cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
+     cairo_stroke (cr);
+   }
+ 
++  cairo_rectangle (cr, limit.x0, limit.y0, limit.x1 - limit.x0,
++      limit.y1 - limit.y0);
++  cairo_clip (cr);
++
+   layouts = swfdec_text_field_movie_get_layouts (text_movie, NULL, cr,
+       paragraphs, trans);
+ 
+   first = TRUE;
 -  linenum = 0;
 -  x = movie->original_extents.x0 + EXTRA_MARGIN +
++  x = movie->original_extents.x0 + SWFDEC_DOUBLE_TO_TWIPS (EXTRA_MARGIN) +
+     MIN (text_movie->hscroll, text_movie->hscroll_max);
 -  y = movie->original_extents.y0 + EXTRA_MARGIN;
++  y = movie->original_extents.y0 + SWFDEC_DOUBLE_TO_TWIPS (EXTRA_MARGIN);
++
++  swfdec_text_field_movie_line_position (layouts,
++      MIN (text_movie->scroll, text_movie->scroll_max), NULL, &i, &skip);
+ 
 -  for (i = 0; layouts[i].layout != NULL && y < limit.y1; i++)
++  for (; layouts[i].layout != NULL && y < limit.y1; i++)
+   {
+     SwfdecLayout *layout = &layouts[i];
+     PangoLayoutIter *iter_line;
+     PangoLayoutLine *line;
+     PangoRectangle rect;
+     int skipped;
+ 
+     iter_line = pango_layout_get_iter (layout->layout);
+ 
 -    if (layout->bullet && linenum + 1 >=
 -	MIN (text_movie->scroll, text_movie->scroll_max)) {
++    if (layout->bullet && skip == 0) {
+       PangoColor color_p;
+       PangoAttribute *attr;
+       PangoAttrIterator *attr_iter;
+ 
+       pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+       pango_extents_to_pixels (NULL, &rect);
+ 
+       cairo_new_sub_path (cr);
+ 
+       // get current color
+       attr_iter = pango_attr_list_get_iterator (
+ 	  pango_layout_get_attributes (layout->layout));
+       attr = pango_attr_iterator_get (attr_iter, PANGO_ATTR_FOREGROUND);
+       color_p = ((PangoAttrColor *)attr)->color;
+       color = SWFDEC_COLOR_COMBINE (color_p.red >> 8, color_p.green >> 8,
+ 	  color_p.blue >> 8, 255);
+       color = swfdec_color_apply_transform (color, trans);
+       pango_attr_iterator_destroy (attr_iter);
+ 
+       swfdec_color_set_source (cr, color);
+ 
+       cairo_arc (cr, x + layout->offset_x +
+ 	  pango_layout_get_indent (layout->layout) -
+ 	  SWFDEC_DOUBLE_TO_TWIPS (BULLET_MARGIN) / 2,
+ 	  y + rect.height / 2, rect.height / 8, 20, 2 * M_PI);
+       cairo_fill (cr);
+     }
+ 
 -    skipped = 0;
 -    do {
 -      if (++linenum < MIN (text_movie->scroll, text_movie->scroll_max))
 -	continue;
++    if (skip > 0) {
++      for (skipped = 0; skipped < skip; skipped++) {
++	g_assert (!pango_layout_iter_at_last_line (iter_line));
++	pango_layout_iter_next_line (iter_line);
++      }
+ 
+       pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+       pango_extents_to_pixels (NULL, &rect);
+ 
 -      if (linenum == MIN (text_movie->scroll, text_movie->scroll_max))
 -	skipped = rect.y;
++      skipped = rect.y;
++      skip = 0;
++    } else {
++      skipped = 0;
++    }
++
++    do {
++      pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
++      pango_extents_to_pixels (NULL, &rect);
+ 
+       if (!first && y + rect.y + rect.height > movie->original_extents.y1)
+ 	break;
+ 
+       first = FALSE;
+ 
+       if (y + rect.y > limit.y1)
+ 	break;
+ 
+       if (y + rect.y + rect.height < limit.y0 ||
+ 	  x + layout->offset_x + rect.x > limit.x1 ||
+ 	  x + layout->offset_x + rect.x + rect.width < limit.x0)
+ 	continue;
+ 
+       cairo_move_to (cr, x, y);
 -
 -      if (pango_layout_iter_at_last_line (iter_line))
 -	cairo_rel_move_to (cr, 0, layout->last_line_offset_y);
+       cairo_rel_move_to (cr, layout->offset_x + rect.x,
+ 	  pango_layout_iter_get_baseline (iter_line) / PANGO_SCALE - skipped);
+ 
+       line = pango_layout_iter_get_line_readonly (iter_line);
+       pango_cairo_show_layout_line (cr, line);
+     } while (pango_layout_iter_next_line (iter_line));
+ 
 -    if (linenum >= MIN (text_movie->scroll, text_movie->scroll_max)) {
 -      y += layout->height - skipped;
 -      skipped = 0;
 -    }
++    y += layout->height - skipped;
+ 
+     pango_layout_iter_free (iter_line);
+   }
+ 
+   swfdec_text_field_movie_free_layouts (layouts);
+ 
+   swfdec_text_field_movie_free_paragraphs (paragraphs);
+ }
+ 
+ void
+ swfdec_text_field_movie_update_scroll (SwfdecTextFieldMovie *text,
+     gboolean check_limits)
+ {
+   SwfdecLayout *layouts;
+   int i, num, y, visible, all, height;
+   double width, width_max;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+ 
+   layouts = swfdec_text_field_movie_get_layouts (text, &num, NULL, NULL, NULL);
+ 
+   width = SWFDEC_MOVIE (text)->original_extents.x1 -
+     SWFDEC_MOVIE (text)->original_extents.x0;
+   height = SWFDEC_MOVIE (text)->original_extents.y1 -
+     SWFDEC_MOVIE (text)->original_extents.y0;
+ 
+   width_max = width;
+   y = 0;
+   all = 0;
+   visible = 0;
+ 
+   for (i = num - 1; i >= 0; i--)
+   {
+     SwfdecLayout *layout = &layouts[i];
+     PangoLayoutIter *iter_line;
+     PangoRectangle rect;
+ 
+     if (layouts[i].width > width_max)
+       width_max = layouts[i].width;
+ 
+     y += layout->height;
+ 
+     iter_line = pango_layout_get_iter (layout->layout);
+ 
+     do {
+       pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+       pango_extents_to_pixels (NULL, &rect);
+ 
+       if (y - rect.y <= height)
+ 	visible++;
+ 
+       all++;
+     } while (pango_layout_iter_next_line (iter_line));
+ 
+     pango_layout_iter_free (iter_line);
+   }
+ 
+   swfdec_text_field_movie_free_layouts (layouts);
+   layouts = NULL;
+ 
+   if (text->scroll_max != all - visible + 1) {
+     text->scroll_max = all - visible + 1;
+     text->scroll_changed = TRUE;
+   }
+   if (text->hscroll_max != SWFDEC_TWIPS_TO_DOUBLE (width_max - width)) {
+     text->hscroll_max = SWFDEC_TWIPS_TO_DOUBLE (width_max - width);
+     text->scroll_changed = TRUE;
+   }
+ 
+   if (check_limits) {
+     if (text->scroll != CLAMP(text->scroll, 1, text->scroll_max)) {
+       text->scroll = CLAMP(text->scroll, 1, text->scroll_max);
+       text->scroll_changed = TRUE;
+     }
+     if (text->scroll_bottom != text->scroll + (visible > 0 ? visible - 1 : 0))
+     {
+       text->scroll_bottom = text->scroll + (visible > 0 ? visible - 1 : 0);
+       text->scroll_changed = TRUE;
+     }
+     if (text->hscroll != CLAMP(text->hscroll, 0, text->hscroll_max)) {
+       text->hscroll = CLAMP(text->hscroll, 0, text->hscroll_max);
+       text->scroll_changed = TRUE;
+     }
+   } else {
+     if (text->scroll_bottom < text->scroll ||
+ 	text->scroll_bottom > text->scroll_max + visible - 1) {
+       text->scroll_bottom = text->scroll;
+       text->scroll_changed = TRUE;
+     }
+   }
+ }
+ 
+ void
+ swfdec_text_field_movie_get_text_size (SwfdecTextFieldMovie *text, int *width,
+     int *height)
+ {
+   SwfdecLayout *layouts;
+   int i;
+ 
+   if (width != NULL)
+     *width = 0;
+   if (height != NULL)
+     *height = 0;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (width != NULL || height != NULL);
+ 
+   layouts = swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
+ 
+   for (i = 0; layouts[i].layout != NULL; i++) {
+     if (!text->text->word_wrap) {
+       if (width != NULL && layouts[i].width > *width)
+ 	*width = layouts[i].width;
+     }
+ 
+     if (height != NULL)
+       *height += layouts[i].height;
+   }
+ 
+   // align to get integer amount after TWIPS_TO_DOUBLE
+   if (width != NULL && *width % SWFDEC_TWIPS_SCALE_FACTOR != 0)
+     *width += SWFDEC_TWIPS_SCALE_FACTOR - *width % SWFDEC_TWIPS_SCALE_FACTOR;
+   if (height != NULL && *height % SWFDEC_TWIPS_SCALE_FACTOR != 0)
+     *height += SWFDEC_TWIPS_SCALE_FACTOR - *height % SWFDEC_TWIPS_SCALE_FACTOR;
+ 
+   swfdec_text_field_movie_free_layouts (layouts);
+ }
+ 
+ gboolean
+ swfdec_text_field_movie_auto_size (SwfdecTextFieldMovie *text)
+ {
+   SwfdecGraphic *graphic;
+   int height, width, diff;
+ 
+   g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), FALSE);
+ 
+   graphic = SWFDEC_GRAPHIC (text->text);
+ 
+   if (text->text->auto_size == SWFDEC_AUTO_SIZE_NONE)
+     return FALSE;
+ 
+   swfdec_text_field_movie_get_text_size (text, &width, &height);
+   width += SWFDEC_DOUBLE_TO_TWIPS (2 * EXTRA_MARGIN);
+   height += SWFDEC_DOUBLE_TO_TWIPS (2 * EXTRA_MARGIN);
+ 
+   if ((text->text->word_wrap ||
+ 	graphic->extents.x1 - graphic->extents.x0 == width) &&
+       graphic->extents.y1 - graphic->extents.y0 == height)
+     return FALSE;
+ 
+   swfdec_movie_invalidate_next (SWFDEC_MOVIE (text));
+ 
+   if (!text->text->word_wrap && graphic->extents.x1 -
+       graphic->extents.x0 != width)
+   {
+     switch (text->text->auto_size) {
+       case SWFDEC_AUTO_SIZE_LEFT:
+ 	graphic->extents.x1 = graphic->extents.x0 + width;
+ 	break;
+       case SWFDEC_AUTO_SIZE_RIGHT:
+ 	graphic->extents.x0 = graphic->extents.x1 - width;
+ 	break;
+       case SWFDEC_AUTO_SIZE_CENTER:
+ 	diff = (graphic->extents.x1 - graphic->extents.x0) - width;
+ 	graphic->extents.x0 += floor (diff / 2.0);
+ 	graphic->extents.x1 = graphic->extents.x0 + width;
+ 	break;
+       case SWFDEC_AUTO_SIZE_NONE:
+       default:
+ 	g_return_val_if_reached (FALSE);
+     }
+   }
+ 
+   if (graphic->extents.y1 - graphic->extents.y0 != height)
+   {
+     graphic->extents.y1 = graphic->extents.y0 + height;
+   }
+ 
+   swfdec_movie_queue_update (SWFDEC_MOVIE (text),
+       SWFDEC_MOVIE_INVALID_EXTENTS);
+ 
+   return TRUE;
+ }
+ 
+ static void
+ swfdec_text_field_movie_dispose (GObject *object)
+ {
+   SwfdecTextFieldMovie *text;
+   GSList *iter;
+ 
+   text = SWFDEC_TEXT_FIELD_MOVIE (object);
+ 
+   if (text->asterisks != NULL) {
+     g_free (text->asterisks);
+     text->asterisks = NULL;
+     text->asterisks_length = 0;
+   }
+ 
 -  if (SWFDEC_IS_STYLESHEET (text->style_sheet)) {
 -    g_signal_handlers_disconnect_matched (text->style_sheet, 
 -	G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, text);
 -    g_object_remove_weak_pointer (G_OBJECT (text->style_sheet), 
 -	(gpointer) &text->style_sheet);
++  if (text->style_sheet) {
++    if (SWFDEC_IS_STYLESHEET (text->style_sheet)) {
++      g_signal_handlers_disconnect_matched (text->style_sheet, 
++	  G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, text);
++    }
++    text->style_sheet = NULL;
+   }
 -  text->style_sheet = NULL;
+ 
+   for (iter = text->formats; iter != NULL; iter = iter->next) {
+     g_free (text->formats->data);
+     text->formats->data = NULL;
+   }
+   g_slist_free (text->formats);
+   text->formats = NULL;
+ 
+   g_string_free (text->input, TRUE);
+   text->input = NULL;
+ 
+   cairo_destroy (text->cr);
+   text->cr = NULL;
+   cairo_surface_destroy (text->surface);
+   text->surface = NULL;
+ 
+   G_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->dispose (object);
+ }
+ 
+ static void
+ swfdec_text_field_movie_mark (SwfdecAsObject *object)
+ {
+   SwfdecTextFieldMovie *text;
+   GSList *iter;
+ 
+   text = SWFDEC_TEXT_FIELD_MOVIE (object);
+ 
+   if (text->variable != NULL)
+     swfdec_as_string_mark (text->variable);
+   swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
+   for (iter = text->formats; iter != NULL; iter = iter->next) {
+     swfdec_as_object_mark (
+ 	SWFDEC_AS_OBJECT (((SwfdecFormatIndex *)(iter->data))->format));
+   }
+   swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
+   if (text->style_sheet != NULL)
+     swfdec_as_object_mark (text->style_sheet);
+   if (text->style_sheet_input != NULL)
+     swfdec_as_string_mark (text->style_sheet_input);
+   if (text->restrict_ != NULL)
+     swfdec_as_string_mark (text->restrict_);
+ 
+   SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
+ }
+ 
+ static void
+ swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
+ {
+   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+   SwfdecAsContext *cx;
+   SwfdecAsValue val;
+   gboolean needs_unuse;
+ 
+   needs_unuse = swfdec_sandbox_try_use (movie->resource->sandbox);
+ 
+   cx = SWFDEC_AS_OBJECT (movie)->context;
+ 
+   swfdec_text_field_movie_init_properties (cx);
+ 
+   swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+   if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+     swfdec_as_object_set_constructor (SWFDEC_AS_OBJECT (movie),
+ 	SWFDEC_AS_VALUE_GET_OBJECT (&val));
+   }
+ 
+   // listen self
+   SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (movie));
+   swfdec_as_object_call (SWFDEC_AS_OBJECT (movie), SWFDEC_AS_STR_addListener,
+       1, &val, NULL);
+ 
+   // format
+   text->format_new =
+     SWFDEC_TEXT_FORMAT (swfdec_text_format_new_no_properties (cx));
+   if (!text->format_new)
+     goto out;
+ 
+   swfdec_text_format_set_defaults (text->format_new);
+   text->format_new->color = text->text->color;
+   text->format_new->align = text->text->align;
+   if (text->text->font != NULL)  {
+     text->format_new->font =
+       swfdec_as_context_get_string (cx, text->text->font);
+   }
+   text->format_new->size = text->text->size / 20;
+   text->format_new->left_margin = text->text->left_margin / 20;
+   text->format_new->right_margin = text->text->right_margin / 20;
+   text->format_new->indent = text->text->indent / 20;
+   text->format_new->leading = text->text->leading / 20;
+ 
+   text->border_color = SWFDEC_COLOR_COMBINE (0, 0, 0, 0);
+   text->background_color = SWFDEC_COLOR_COMBINE (255, 255, 255, 0);
+ 
+   // text
+   if (text->text->input != NULL) {
+     swfdec_text_field_movie_set_text (text,
+ 	swfdec_as_context_get_string (cx, text->text->input),
+ 	text->text->html);
+   } else {
+     swfdec_text_field_movie_set_text (text, SWFDEC_AS_STR_EMPTY,
+ 	text->text->html);
+   }
+ 
+   // variable
+   if (text->text->variable != NULL) {
+     swfdec_text_field_movie_set_listen_variable (text,
+ 	swfdec_as_context_get_string (cx, text->text->variable));
+   }
+ 
+ out:
+   if (needs_unuse)
+     swfdec_sandbox_unuse (movie->resource->sandbox);
+ }
+ 
+ static void
+ swfdec_text_field_movie_finish_movie (SwfdecMovie *movie)
+ {
+   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+ 
+   swfdec_text_field_movie_set_listen_variable (text, NULL);
+ }
+ 
+ static void
+ swfdec_text_field_movie_iterate (SwfdecMovie *movie)
+ {
+   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+ 
+   if (text->scroll_changed) {
+     SwfdecAsValue argv[2];
+ 
+     SWFDEC_FIXME ("I'm pretty sure this is swfdec_player_add_action()'d");
+     SWFDEC_AS_VALUE_SET_STRING (&argv[0], SWFDEC_AS_STR_onScroller);
+     SWFDEC_AS_VALUE_SET_OBJECT (&argv[1], SWFDEC_AS_OBJECT (movie));
+     swfdec_sandbox_use (movie->resource->sandbox);
+     swfdec_as_object_call (SWFDEC_AS_OBJECT (movie),
+ 	SWFDEC_AS_STR_broadcastMessage, 2, argv, NULL);
+     swfdec_sandbox_unuse (movie->resource->sandbox);
+ 
+     /* FIXME: unset this before or after emitting the event? */
+     text->scroll_changed = FALSE;
+   }
+ }
+ 
++static SwfdecMovie *
++swfdec_text_field_movie_contains (SwfdecMovie *movie, double x, double y,
++    gboolean events)
++{
++  if (events) {
++    /* check for movies in a higher layer that react to events */
++    SwfdecMovie *ret;
++    ret = SWFDEC_MOVIE_CLASS (swfdec_text_field_movie_parent_class)->contains (
++	movie, x, y, TRUE);
++    if (ret && ret != movie && swfdec_movie_get_mouse_events (ret))
++      return ret;
++  }
++
++  return movie;
++}
++
++static SwfdecTextFormat *
++swfdec_text_field_movie_format_for_index (SwfdecTextFieldMovie *text,
++    guint index_)
++{
++  GSList *iter;
++
++  g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), NULL);
++  g_return_val_if_fail (index_ <= text->input->len, NULL);
++
++  if (text->formats == NULL)
++    return NULL;
++
++  // get current format
++  for (iter = text->formats; iter != NULL && iter->next != NULL &&
++      ((SwfdecFormatIndex *)iter->next->data)->index_ < index_;
++      iter = iter->next);
++
++  return ((SwfdecFormatIndex *)iter->data)->format;
++}
++
++static void
++swfdec_text_field_movie_letter_clicked (SwfdecTextFieldMovie *text,
++    guint index_)
++{
++  SwfdecTextFormat *format;
++
++  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
++  g_return_if_fail (index_ <= text->input->len);
++
++  format = swfdec_text_field_movie_format_for_index (text, index_);
++
++  if (format != NULL && format->url != NULL &&
++      format->url != SWFDEC_AS_STR_EMPTY) {
++    swfdec_player_launch (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (text)->context),
++	SWFDEC_LOADER_REQUEST_DEFAULT, format->url, format->target, NULL);
++  }
++}
++
++static gboolean
++swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
++    double y, guint *index_, gboolean *before)
++{
++  SwfdecLayout *layouts;
++  int i, layout_index, trailing, pixels;
++  double layout_y, layout_x;
++  gboolean direct;
++
++  g_return_val_if_fail (index_ != NULL, FALSE);
++  g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), FALSE);
++
++  *index_ = 0;
++  if (before != NULL)
++    *before = FALSE;
++
++  layouts = swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
++
++  if (layouts[0].layout == NULL)
++    return FALSE;
++
++  layout_y = y - EXTRA_MARGIN - SWFDEC_GRAPHIC (text->text)->extents.y0;
++  layout_x = x - EXTRA_MARGIN - SWFDEC_GRAPHIC (text->text)->extents.x0;
++
++  // take scrolling into account
++  swfdec_text_field_movie_line_position (layouts,
++      MIN (text->scroll, text->scroll_max), &pixels, NULL, NULL);
++  layout_y += pixels;
++  layout_x += MIN (text->hscroll, text->hscroll_max);
++
++  i = 0;
++  while (layout_y > layouts[i].height && layouts[i + 1].layout != NULL) {
++    layout_y -= layouts[i].height;
++    i++;
++  }
++
++  layout_x -= layouts[i].offset_x;
++
++  direct = pango_layout_xy_to_index (layouts[i].layout, layout_x * PANGO_SCALE,
++      layout_y * PANGO_SCALE, &layout_index, &trailing);
++
++  *index_ = layouts[i].index_ + layout_index;
++  if (before)
++    *before = (trailing == 0);
++
++  swfdec_text_field_movie_free_layouts (layouts);
++
++  return direct;
++}
++
++static SwfdecMouseCursor
++swfdec_text_field_movie_mouse_cursor (SwfdecMovie *movie)
++{
++  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
++  double x, y;
++  guint index_;
++  SwfdecTextFormat *format;
++
++  swfdec_movie_get_mouse (movie, &x, &y);
++
++  if (swfdec_text_field_movie_xy_to_index (text, x, y, &index_, NULL)) {
++    format = swfdec_text_field_movie_format_for_index (text, index_);
++  } else {
++    format = NULL;
++  }
++
++  if (format != NULL && format->url != NULL &&
++      format->url != SWFDEC_AS_STR_EMPTY) {
++    return SWFDEC_MOUSE_CURSOR_CLICK;
++  } else if (text->text->editable || text->text->selectable) {
++    return SWFDEC_MOUSE_CURSOR_TEXT;
++  } else{
++    return SWFDEC_MOUSE_CURSOR_NORMAL;
++  }
++}
++
++static gboolean
++swfdec_text_field_movie_mouse_events (SwfdecMovie *movie)
++{
++  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
++
++  // FIXME: is this correct?
++  return (text->text->editable || text->text->selectable);
++}
++
++static void
++swfdec_text_field_movie_mouse_press (SwfdecMovie *movie, guint button)
++{
++  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
++  double x, y;
++  guint index_;
++  gboolean direct, before;
++
++  g_return_if_fail (text->text->editable || text->text->selectable);
++
++  if (button != 0)
++    return;
++
++  swfdec_movie_get_mouse (movie, &x, &y);
++
++  direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
++
++  text->mouse_pressed = TRUE;
++  text->cursor = index_;
++  if (!before && text->cursor < text->input->len)
++    text->cursor++;
++  text->selection_end = text->cursor;
++  swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
++
++  if (direct) {
++    text->character_pressed = index_ + 1;
++    if (before)
++      text->character_pressed--;
++  } else {
++    text->character_pressed = 0;
++  }
++}
++
++static void
++swfdec_text_field_movie_mouse_move (SwfdecMovie *movie, double x, double y)
++{
++  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
++  guint index_;
++  gboolean direct, before;
++
++  g_return_if_fail (text->text->editable || text->text->selectable);
++
++  if (!text->text->selectable)
++    return;
++
++  if (!text->mouse_pressed)
++    return;
++
++  direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
++
++  text->selection_end = index_;
++
++  if (!before && text->selection_end < text->input->len)
++    text->selection_end++;
++
++  swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
++}
++
++static void
++swfdec_text_field_movie_mouse_release (SwfdecMovie *movie, guint button)
++{
++  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
++  double x, y;
++  guint index_;
++  gboolean direct, before;
++
++  g_return_if_fail (text->text->editable || text->text->selectable);
++
++  if (button != 0)
++    return;
++
++  swfdec_movie_get_mouse (movie, &x, &y);
++
++  //FIXME
++  swfdec_text_field_movie_mouse_move (movie, x, y);
++
++  text->mouse_pressed = FALSE;
++
++  direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
++
++  if (text->character_pressed != 0) {
++    if (direct && text->character_pressed == index_ + 1 - (before ? 1 : 0)) {
++      swfdec_text_field_movie_letter_clicked (text,
++	  text->character_pressed - 1);
++    }
++
++    text->character_pressed = 0;
++  }
++}
++
+ static void
+ swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
+ {
+   GObjectClass *object_class = G_OBJECT_CLASS (g_class);
+   SwfdecAsObjectClass *asobject_class = SWFDEC_AS_OBJECT_CLASS (g_class);
+   SwfdecMovieClass *movie_class = SWFDEC_MOVIE_CLASS (g_class);
+ 
+   object_class->dispose = swfdec_text_field_movie_dispose;
+ 
+   asobject_class->mark = swfdec_text_field_movie_mark;
+ 
+   movie_class->init_movie = swfdec_text_field_movie_init_movie;
+   movie_class->finish_movie = swfdec_text_field_movie_finish_movie;
+   movie_class->iterate_start = swfdec_text_field_movie_iterate;
+   movie_class->update_extents = swfdec_text_field_movie_update_extents;
+   movie_class->render = swfdec_text_field_movie_render;
+   movie_class->invalidate = swfdec_text_field_movie_invalidate;
++  movie_class->contains = swfdec_text_field_movie_contains;
++
++  movie_class->mouse_cursor = swfdec_text_field_movie_mouse_cursor;
++  movie_class->mouse_events = swfdec_text_field_movie_mouse_events;
++  movie_class->mouse_press = swfdec_text_field_movie_mouse_press;
++  movie_class->mouse_release = swfdec_text_field_movie_mouse_release;
++  movie_class->mouse_move = swfdec_text_field_movie_mouse_move;
+ }
+ 
+ static void
+ swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
+ {
+   text->surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
+   text->cr = cairo_create (text->surface);
+ 
+   text->input = g_string_new ("");
+   text->scroll = 1;
+   text->mouse_wheel_enabled = TRUE;
+ }
+ 
+ void
+ swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
+     SwfdecTextFormat *format, guint start_index, guint end_index)
+ {
+   SwfdecFormatIndex *findex, *findex_new, *findex_prev;
+   guint findex_end_index;
+   GSList *iter, *next;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (SWFDEC_IS_TEXT_FORMAT (format));
+   g_return_if_fail (start_index < end_index);
+   g_return_if_fail (end_index <= text->input->len);
+ 
+   g_assert (text->formats != NULL);
+   g_assert (text->formats->data != NULL);
+   g_assert (((SwfdecFormatIndex *)text->formats->data)->index_ == 0);
+ 
+   findex = NULL;
+   for (iter = text->formats; iter != NULL &&
+       ((SwfdecFormatIndex *)iter->data)->index_ < end_index;
+       iter = next)
+   {
+     findex_prev = findex;
+     next = iter->next;
+     findex = iter->data;
+     if (iter->next != NULL) {
+       findex_end_index =
+ 	((SwfdecFormatIndex *)iter->next->data)->index_;
+     } else {
+       findex_end_index = text->input->len;
+     }
+ 
+     if (findex_end_index <= start_index)
+       continue;
+ 
+     if (swfdec_text_format_equal_or_undefined (findex->format, format))
+       continue;
+ 
+     if (findex_end_index > end_index) {
+       findex_new = g_new (SwfdecFormatIndex, 1);
+       findex_new->index_ = end_index;
+       findex_new->format = swfdec_text_format_copy (findex->format);
+       if (findex_new->format == NULL) {
+ 	g_free (findex_new);
+ 	break;
+       }
+ 
+       iter = g_slist_insert (iter, findex_new, 1);
+     }
+ 
+     if (findex->index_ < start_index) {
+       findex_new = g_new (SwfdecFormatIndex, 1);
+       findex_new->index_ = start_index;
+       findex_new->format = swfdec_text_format_copy (findex->format);
+       if (findex_new->format == NULL) {
+ 	g_free (findex_new);
+ 	break;
+       }
+       swfdec_text_format_add (findex_new->format, format);
+ 
+       iter = g_slist_insert (iter, findex_new, 1);
+       findex = findex_new;
+     } else {
+       swfdec_text_format_add (findex->format, format);
+ 
+       // if current format now equals previous one, remove current
+       if (findex_prev != NULL &&
+ 	  swfdec_text_format_equal (findex->format, findex_prev->format)) {
+ 	text->formats = g_slist_remove (text->formats, findex);
+ 	findex = findex_prev;
+       }
+     }
+ 
+     // if current format now equals the next one, remove current
+     if (findex_end_index <= end_index && next != NULL &&
+ 	swfdec_text_format_equal (findex->format,
+ 	  ((SwfdecFormatIndex *)next->data)->format))
+     {
+       ((SwfdecFormatIndex *)next->data)->index_ = findex->index_;
+       text->formats = g_slist_remove (text->formats, findex);
+       findex = findex_prev;
+     }
+   }
+ }
+ 
+ SwfdecTextFormat *
+ swfdec_text_field_movie_get_text_format (SwfdecTextFieldMovie *text,
+     guint start_index, guint end_index)
+ {
+   SwfdecTextFormat *format;
+   GSList *iter;
+ 
+   g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_assert (start_index < end_index);
+   g_assert (end_index <= text->input->len);
+ 
+   g_assert (text->formats != NULL);
+   g_assert (text->formats->data != NULL);
+   g_assert (((SwfdecFormatIndex *)text->formats->data)->index_ == 0);
+ 
+   format = NULL;
+   for (iter = text->formats; iter != NULL &&
+       ((SwfdecFormatIndex *)iter->data)->index_ < end_index;
+       iter = iter->next)
+   {
+     if (iter->next != NULL &&
+ 	((SwfdecFormatIndex *)iter->next->data)->index_ <= start_index)
+       continue;
+ 
+     if (format == NULL) {
+       swfdec_text_format_init_properties (SWFDEC_AS_OBJECT (text)->context);
+       format =
+ 	swfdec_text_format_copy (((SwfdecFormatIndex *)iter->data)->format);
+     } else {
+       swfdec_text_format_remove_different (format,
+ 	  ((SwfdecFormatIndex *)iter->data)->format);
+     }
+   }
+ 
+   return format;
+ }
+ 
+ static void
+ swfdec_text_field_movie_parse_listen_variable (SwfdecTextFieldMovie *text,
+     const char *variable, SwfdecAsObject **object, const char **name)
+ {
+   SwfdecAsContext *cx;
+   SwfdecAsObject *parent;
+   const char *p1, *p2;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (variable != NULL);
+   g_return_if_fail (object != NULL);
+   g_return_if_fail (name != NULL);
+ 
+   *object = NULL;
+   *name = NULL;
+ 
+   if (SWFDEC_MOVIE (text)->parent == NULL)
+     return;
+ 
+   g_assert (SWFDEC_IS_AS_OBJECT (SWFDEC_MOVIE (text)->parent));
+   cx = SWFDEC_AS_OBJECT (text)->context;
+   parent = SWFDEC_AS_OBJECT (SWFDEC_MOVIE (text)->parent);
+ 
+   p1 = strrchr (variable, '.');
+   p2 = strrchr (variable, ':');
+   if (p1 == NULL && p2 == NULL) {
+     *object = parent;
+     *name = variable;
+   } else {
+     if (p1 == NULL || (p2 != NULL && p2 > p1))
+       p1 = p2;
+     if (strlen (p1) == 1)
+       return;
+     *object = swfdec_action_lookup_object (cx, parent, variable, p1);
+     if (*object == NULL)
+       return;
+     *name = swfdec_as_context_get_string (cx, p1 + 1);
+   }
+ }
+ 
+ void
+ swfdec_text_field_movie_set_listen_variable_text (SwfdecTextFieldMovie *text,
+     const char *value)
+ {
+   SwfdecAsObject *object;
+   const char *name;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (text->variable != NULL);
+   g_return_if_fail (value != NULL);
+ 
+   swfdec_text_field_movie_parse_listen_variable (text, text->variable,
+       &object, &name);
+   if (object != NULL) {
+     SwfdecAsValue val;
+     SWFDEC_AS_VALUE_SET_STRING (&val, value);
+     swfdec_as_object_set_variable (object, name, &val);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_variable_listener_callback (SwfdecAsObject *object,
+     const char *name, const SwfdecAsValue *val)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
+ 
+   text = SWFDEC_TEXT_FIELD_MOVIE (object);
+   swfdec_text_field_movie_set_text (text,
+       swfdec_as_value_to_string (object->context, val), text->text->html);
+ }
+ 
+ void
+ swfdec_text_field_movie_set_listen_variable (SwfdecTextFieldMovie *text,
+     const char *value)
+ {
+   SwfdecAsObject *object;
+   const char *name;
+ 
+   // FIXME: case-insensitive when v < 7?
+   if (text->variable == value)
+     return;
+ 
+   if (text->variable != NULL) {
+     swfdec_text_field_movie_parse_listen_variable (text, text->variable,
+ 	&object, &name);
+     if (object != NULL && SWFDEC_IS_MOVIE (object)) {
+       swfdec_movie_remove_variable_listener (SWFDEC_MOVIE (object),
+ 	  SWFDEC_AS_OBJECT (text), name,
+ 	  swfdec_text_field_movie_variable_listener_callback);
+     }
+   }
+ 
+   text->variable = value;
+ 
+   if (value != NULL) {
+     SwfdecAsValue val;
+ 
+     swfdec_text_field_movie_parse_listen_variable (text, value, &object,
+ 	&name);
+     if (object != NULL && swfdec_as_object_get_variable (object, name, &val)) {
+       swfdec_text_field_movie_set_text (text,
+ 	  swfdec_as_value_to_string (SWFDEC_AS_OBJECT (text)->context, &val),
+ 	  text->text->html);
+     }
+     if (object != NULL && SWFDEC_IS_MOVIE (object)) {
+       swfdec_movie_add_variable_listener (SWFDEC_MOVIE (object),
+ 	  SWFDEC_AS_OBJECT (text), name,
+ 	  swfdec_text_field_movie_variable_listener_callback);
+     }
+   }
+ }
+ 
+ const char *
+ swfdec_text_field_movie_get_text (SwfdecTextFieldMovie *text)
+ {
+   char *str, *p;
+ 
+   str = g_strdup (text->input->str);
+ 
+   // if input was orginally html, remove all \r
+   if (text->input_html) {
+     p = str;
+     while ((p = strchr (p, '\r')) != NULL) {
+       memmove (p, p + 1, strlen (p));
+     }
+   }
+ 
+   // change all \n to \r
+   p = str;
+   while ((p = strchr (p, '\n')) != NULL) {
+     *p = '\r';
+   }
+ 
+   return swfdec_as_context_give_string (SWFDEC_AS_OBJECT (text)->context, str);
+ }
+ 
+ void
+ swfdec_text_field_movie_replace_text (SwfdecTextFieldMovie *text,
+     guint start_index, guint end_index, const char *str)
+ {
+   SwfdecFormatIndex *findex;
+   GSList *iter, *prev;
+   gboolean first;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (end_index <= text->input->len);
+   g_return_if_fail (start_index <= end_index);
+   g_return_if_fail (str != NULL);
+ 
+   /* if there was a style sheet set when setting the text, modifications are
+    * not allowed */
+   if (text->style_sheet_input)
+     return;
+ 
+   first = TRUE;
+   prev = NULL;
+   for (iter = text->formats; iter != NULL; iter = iter->next)
+   {
+     findex = iter->data;
+ 
+     if (findex->index_ >= start_index) {
+       if (end_index == text->input->len ||(iter->next != NULL &&
+ 	   ((SwfdecFormatIndex *)iter->next->data)->index_ <= end_index))
+       {
+ 	g_free (iter->data);
+ 	text->formats = g_slist_remove (text->formats, iter->data);
+ 	iter = (prev != NULL ? prev : text->formats);
+       }
+       else
+       {
+ 	findex->index_ += strlen (str) - (end_index - start_index);
+ 	if (first) {
+ 	  findex->index_ -= strlen (str);
+ 	  first = FALSE;
+ 	}
+       }
+     }
+     prev = iter;
+   }
+ 
+   if (end_index == text->input->len) {
+     if (SWFDEC_AS_OBJECT (text)->context->version < 8) {
+       SWFDEC_FIXME ("replaceText to the end of the TextField might use wrong text format on version 7");
+     }
+     findex = g_new0 (SwfdecFormatIndex, 1);
+     findex->index_ = start_index;
+     findex->format = swfdec_text_format_copy (
+ 	((SwfdecFormatIndex *)text->formats->data)->format);
+     text->formats = g_slist_append (text->formats, findex);
+   }
+ 
+   text->input = g_string_erase (text->input, start_index,
+       end_index - start_index);
+   text->input = g_string_insert (text->input, start_index, str);
+ 
+   swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   swfdec_text_field_movie_auto_size (text);
+   swfdec_text_field_movie_update_scroll (text, TRUE);
+ }
+ 
+ void
+ swfdec_text_field_movie_set_text (SwfdecTextFieldMovie *text, const char *str,
+     gboolean html)
+ {
+   SwfdecFormatIndex *block;
+   GSList *iter;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (str != NULL);
+ 
+   if (text->format_new == NULL) {
+     text->input = g_string_truncate (text->input, 0);
+     return;
+   }
+ 
+   // remove old formatting info
+   iter = text->formats;
+   while (iter) {
+     g_free (iter->data);
+     iter = g_slist_next (iter);
+   }
+   g_slist_free (text->formats);
+   text->formats = NULL;
+ 
+   // add the default style
+   if (html && SWFDEC_AS_OBJECT (text)->context->version < 8)
+     swfdec_text_format_set_defaults (text->format_new);
+   block = g_new (SwfdecFormatIndex, 1);
+   block->index_ = 0;
+   g_assert (SWFDEC_IS_TEXT_FORMAT (text->format_new));
+   block->format = swfdec_text_format_copy (text->format_new);
+   if (block->format == NULL) {
+     g_free (block);
+     text->input = g_string_truncate (text->input, 0);
+     return;
+   }
+   text->formats = g_slist_prepend (text->formats, block);
+ 
+   text->input_html = html;
+ 
+   if (SWFDEC_AS_OBJECT (text)->context->version >= 7 &&
+       text->style_sheet != NULL)
+   {
+     text->style_sheet_input = str;
+     swfdec_text_field_movie_html_parse (text, str);
+   }
+   else
+   {
+     text->style_sheet_input = NULL;
+     if (html) {
+       swfdec_text_field_movie_html_parse (text, str);
+     } else {
+       text->input = g_string_assign (text->input, str);
+     }
+   }
+ 
+   swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   swfdec_text_field_movie_auto_size (text);
+   swfdec_text_field_movie_update_scroll (text, TRUE);
+ }
diff --cc swfdec/swfdec_text_field_movie.h
index 0000000,07d7a0e..f5d95bd
mode 000000,100644..100644
--- a/swfdec/swfdec_text_field_movie.h
+++ b/swfdec/swfdec_text_field_movie.h
@@@ -1,0 -1,160 +1,173 @@@
+ /* Swfdec
+  * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+  *               2007 Pekka Lampila <pekka.lampila at iki.fi>
+  *
+  * 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_TEXT_FIELD_MOVIE_H_
+ #define _SWFDEC_TEXT_FIELD_MOVIE_H_
+ 
+ #include <swfdec/swfdec_movie.h>
+ #include <swfdec/swfdec_text_field.h>
+ #include <swfdec/swfdec_style_sheet.h>
+ #include <swfdec/swfdec_text_format.h>
+ 
+ G_BEGIN_DECLS
+ 
+ 
+ typedef struct _SwfdecTextFieldMovie SwfdecTextFieldMovie;
+ typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
+ 
+ #define SWFDEC_TYPE_TEXT_FIELD_MOVIE                    (swfdec_text_field_movie_get_type())
+ #define SWFDEC_IS_TEXT_FIELD_MOVIE(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
+ #define SWFDEC_IS_TEXT_FIELD_MOVIE_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
+ #define SWFDEC_TEXT_FIELD_MOVIE(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovie))
+ #define SWFDEC_TEXT_FIELD_MOVIE_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovieClass))
+ 
+ typedef struct {
 -  PangoLayout *		layout;
 -  int			offset_x;
 -  int			last_line_offset_y;
 -  int			height;
++  PangoLayout *		layout;		// layout to render
++
++  // the byte offset where this layout's text starts in text->input->str
++  guint			index_;
++
++  int			offset_x;	// x offset to apply before rendering
++
++  // dimensions for this layout, including offset_x, might be bigger than the
++  // rendering of PangoLayout needs
+   int			width;
++  int			height;
++
++  // whether the layout starts with bullet point to be rendered separately
+   gboolean		bullet;
+ } SwfdecLayout;
+ 
+ typedef struct {
+   guint			index_;
+ 
+   PangoAlignment	align;
+   gboolean		justify;
+   int			leading;
+   int			block_indent;
+   int			left_margin;
+   int			right_margin;
+   PangoTabArray *	tab_stops;
+ } SwfdecBlock;
+ 
+ typedef struct {
+   guint			index_;
+   guint			length;
+   gboolean		newline;	// ends in newline
+ 
+   gboolean		bullet;
+   int			indent;
+ 
+   GSList *		blocks;		// SwfdecBlock
+   GSList *		attrs;		// PangoAttribute
+ } SwfdecParagraph;
+ 
+ typedef struct {
+   guint			index_;
+   SwfdecTextFormat *	format;
+ } SwfdecFormatIndex;
+ 
+ struct _SwfdecTextFieldMovie {
+   SwfdecMovie		movie;
+ 
+   SwfdecTextField *	text;		/* the text_field object we render */
+ 
+   GString *		input;
+   char *		asterisks; /* bunch of asterisks that we display when password mode is enabled */
+   guint			asterisks_length;
+   gboolean		input_html;	/* whether orginal input was given as HTML */
+ 
+   const char *		variable;
+ 
+   SwfdecTextFormat *	format_new;
+   GSList *		formats;
+ 
+   gboolean		condense_white;
+   gboolean		embed_fonts;
+ 
+   SwfdecAsObject *	style_sheet;
+   const char *		style_sheet_input; /* saved input, so it can be used to apply stylesheet again */
+ 
+   gboolean		scroll_changed; /* if any of the scroll attributes have changed and we haven't fired the event yet */
+   int			scroll;
+   int			scroll_max;
+   int			scroll_bottom;
+   int			hscroll;
+   int			hscroll_max;
+   gboolean		mouse_wheel_enabled;
+ 
+   const char *		restrict_;
+ 
+   SwfdecColor		border_color;
+   SwfdecColor		background_color;
+ 
++  gboolean		mouse_pressed;
++  guint			cursor;
++  guint			selection_end;
++  guint			character_pressed;
++
+   // FIXME: Temporary using image surface, until there is a way to get cairo_t
+   // outside the rendering functions
+   cairo_surface_t *	surface;
+   cairo_t *		cr;
+ };
+ 
+ struct _SwfdecTextFieldMovieClass {
+   SwfdecMovieClass	movie_class;
+ };
+ 
+ GType		swfdec_text_field_movie_get_type		(void);
+ 
+ void		swfdec_text_field_movie_set_text		(SwfdecTextFieldMovie *	movie,
+ 							 const char *		str,
+ 							 gboolean		html);
+ void		swfdec_text_field_movie_get_text_size	(SwfdecTextFieldMovie *	text,
+ 							 int *			width,
+ 							 int *			height);
+ gboolean	swfdec_text_field_movie_auto_size	(SwfdecTextFieldMovie *	text);
+ void		swfdec_text_field_movie_update_scroll	(SwfdecTextFieldMovie *	text,
+ 							 gboolean		check_limits);
+ void		swfdec_text_field_movie_set_text_format	(SwfdecTextFieldMovie *	text,
+ 							 SwfdecTextFormat *	format,
+ 							 guint			start_index,
+ 							 guint			end_index);
+ SwfdecTextFormat *swfdec_text_field_movie_get_text_format (SwfdecTextFieldMovie *	text,
+ 							 guint			start_index,
+ 							 guint			end_index);
+ const char *	swfdec_text_field_movie_get_text	(SwfdecTextFieldMovie *		text);
+ void		swfdec_text_field_movie_set_listen_variable (SwfdecTextFieldMovie *	text,
+ 							 const char *			value);
+ void		swfdec_text_field_movie_set_listen_variable_text (SwfdecTextFieldMovie		*text,
+ 							 const char *			value);
+ void		swfdec_text_field_movie_replace_text	(SwfdecTextFieldMovie *		text,
+ 							 guint				start_index,
+ 							 guint				end_index,
+ 							 const char *			str);
+ 
+ /* implemented in swfdec_text_field_movie_as.c */
+ void		swfdec_text_field_movie_init_properties	(SwfdecAsContext *	cx);
+ 
+ /* implemented in swfdec_html_parser.c */
+ void		swfdec_text_field_movie_html_parse	(SwfdecTextFieldMovie *	text, 
+ 							 const char *		str);
+ const char *	swfdec_text_field_movie_get_html_text	(SwfdecTextFieldMovie *		text);
+ 
+ G_END_DECLS
+ #endif
diff --cc swfdec/swfdec_text_field_movie_as.c
index 0000000,7e34120..b76211a
mode 000000,100644..100644
--- a/swfdec/swfdec_text_field_movie_as.c
+++ b/swfdec/swfdec_text_field_movie_as.c
@@@ -1,0 -1,1539 +1,1542 @@@
+ /* Swfdec
+  * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+  *               2007 Pekka Lampila <pekka.lampila at iki.fi>
+  *
+  * 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
+  */
+ 
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
+ 
+ #include <string.h>
+ #include <pango/pangocairo.h>
+ 
+ #include "swfdec_text_field.h"
+ #include "swfdec_text_field_movie.h"
+ #include "swfdec_as_strings.h"
+ #include "swfdec_debug.h"
+ #include "swfdec_as_native_function.h"
+ #include "swfdec_as_internal.h"
+ #include "swfdec_as_context.h"
+ #include "swfdec_as_object.h"
+ #include "swfdec_as_frame_internal.h"
+ #include "swfdec_internal.h"
+ #include "swfdec_player_internal.h"
+ 
+ static SwfdecColor
+ swfdec_text_field_movie_int_to_color (SwfdecAsContext *cx, int value)
+ {
+   if (value < 0) {
+     value = (0xffffff + 1) + value % (0xffffff + 1);
+   } else {
+     value = value % (0xffffff + 1);
+   }
+ 
+   return SWFDEC_COLOR_COMBINE (value >> 16 & 0xff, value >> 8 & 0xff,
+       value & 0xff, 0);
+ }
+ 
+ // does nothing but calls valueOf
+ static void
+ swfdec_text_field_movie_set_readonly (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (argc > 0)
+     swfdec_as_value_to_number (cx, &argv[0]);
+ }
+ 
+ /*
+  * Native properties: Text
+  */
+ static void
+ swfdec_text_field_movie_do_get_text (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_STRING (ret, swfdec_text_field_movie_get_text (text));
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_set_text (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   const char *value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
+ 
+   swfdec_text_field_movie_set_text (text, value, FALSE);
+ 
+   if (text->variable != NULL) {
+     if (text->text->html) {
+       swfdec_text_field_movie_set_listen_variable_text (text,
+ 	  swfdec_text_field_movie_get_html_text (text));
+     } else {
+       swfdec_text_field_movie_set_listen_variable_text (text,
+ 	  swfdec_text_field_movie_get_text (text));
+     }
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   text->text->html = value;
+ 
+   // FIXME: resize? invalidate?
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (text->style_sheet_input) {
+     SWFDEC_AS_VALUE_SET_STRING (ret, text->style_sheet_input);
+   } else if (text->text->html) {
+     SWFDEC_AS_VALUE_SET_STRING (ret,
+ 	swfdec_text_field_movie_get_html_text (text));
+   } else {
+     SWFDEC_AS_VALUE_SET_STRING (ret,
+ 	swfdec_text_field_movie_get_text (text));
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_htmlText (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   const char *value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
+ 
+   swfdec_text_field_movie_set_text (text, value, text->text->html);
+ 
+   if (text->variable != NULL) {
+     if (text->text->html) {
+       swfdec_text_field_movie_set_listen_variable_text (text,
+ 	  swfdec_text_field_movie_get_html_text (text));
+     } else {
+       swfdec_text_field_movie_set_listen_variable_text (text,
+ 	  swfdec_text_field_movie_get_text (text));
+     }
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_INT (ret, g_utf8_strlen (text->input->str, -1));
+ }
+ 
+ /*
+  * Native properties: Input
+  */
+ static void
+ swfdec_text_field_movie_get_condenseWhite (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_condenseWhite (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   text->condense_white = value;
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_maxChars (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (text->text->max_chars != 0) {
+     SWFDEC_AS_VALUE_SET_INT (ret, text->text->max_chars);
+   } else {
+     SWFDEC_AS_VALUE_SET_NULL (ret);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_maxChars (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (argc < 1)
+     return;
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+   text->text->max_chars = swfdec_as_value_to_integer (cx, &argv[0]);
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_multiline (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->multiline);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_multiline (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   text->text->multiline = value;
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_restrict (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (text->restrict_ != NULL) {
+     SWFDEC_AS_VALUE_SET_STRING (ret, text->restrict_);
+   } else {
+     SWFDEC_AS_VALUE_SET_NULL (ret);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_restrict (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   const char *value;
+ 
+   if (argc > 0)
+     swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
+ 
+   if (SWFDEC_AS_VALUE_IS_UNDEFINED (&argv[0]) ||
+       SWFDEC_AS_VALUE_IS_NULL (&argv[0])) {
+     text->restrict_ = NULL;
+   } else {
+     text->restrict_ = value;
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_selectable (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->selectable);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_selectable (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   text->text->selectable = value;
+ 
+   // FIXME: invalidate
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_get_type (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (text->text->editable) {
+     SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_input);
+   } else {
+     SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_dynamic);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_set_type (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   const char *value;
+ 
+   if (argc > 0)
+     swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
+ 
+   if (!g_strcasecmp (value, SWFDEC_AS_STR_input)) {
+     text->text->editable = TRUE;
+   } else if (!g_strcasecmp (value, SWFDEC_AS_STR_dynamic)) {
+     text->text->editable = FALSE;
+   }
+ 
+   // FIXME: invalidate
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_get_variable (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (text->variable) {
+     SWFDEC_AS_VALUE_SET_STRING (ret, text->variable);
+   } else {
+     SWFDEC_AS_VALUE_SET_NULL (ret);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_set_variable (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   const char *value;
+ 
+   if (argc > 0)
+     swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
+ 
+   if (SWFDEC_AS_VALUE_IS_UNDEFINED (&argv[0]) ||
+       SWFDEC_AS_VALUE_IS_NULL (&argv[0]) || value == SWFDEC_AS_STR_EMPTY) {
+     value = NULL;
+   }
+ 
+   swfdec_text_field_movie_set_listen_variable (text, value);
+ }
+ 
+ /*
+  * Native properties: Info
+  */
+ static void
+ swfdec_text_field_movie_get_textHeight (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int height;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   swfdec_text_field_movie_get_text_size (text, NULL, &height);
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, SWFDEC_TWIPS_TO_DOUBLE (height));
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_textWidth (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int width;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   swfdec_text_field_movie_get_text_size (text, &width, NULL);
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, SWFDEC_TWIPS_TO_DOUBLE (width));
+ }
+ 
+ /*
+  * Native properties: Background & border
+  */
+ static void
+ swfdec_text_field_movie_get_background (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->background);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_background (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   if (text->text->background != value) {
+     text->text->background = value;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_backgroundColor (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret,
+       SWFDEC_COLOR_R (text->background_color) << 16 |
+       SWFDEC_COLOR_G (text->background_color) << 8 |
+       SWFDEC_COLOR_B (text->background_color));
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_backgroundColor (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int value;
+   SwfdecColor color;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
+ 
+   color = swfdec_text_field_movie_int_to_color (cx, value);
+   if (text->background_color != color) {
+     text->background_color = color;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_border (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->border);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_border (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   if (text->text->border != value) {
+     text->text->border = value;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_borderColor (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret,
+       SWFDEC_COLOR_R (text->border_color) << 16 |
+       SWFDEC_COLOR_G (text->border_color) << 8 |
+       SWFDEC_COLOR_B (text->border_color));
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_borderColor (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int value;
+   SwfdecColor color;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
+ 
+   color = swfdec_text_field_movie_int_to_color (cx, value);
+   if (text->border_color != color) {
+     text->border_color = color;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ /*
+  * Native properties: Scrolling
+  */
+ static void
+ swfdec_text_field_movie_get_bottomScroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, text->scroll_bottom);
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_get_hscroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, text->hscroll);
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_set_hscroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
+ 
+   value = CLAMP (value, 0, text->hscroll_max);
+   if (value != text->hscroll) {
+     text->hscroll = value;
+     text->scroll_changed = TRUE;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_maxhscroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (!text->text->word_wrap) {
+     SWFDEC_AS_VALUE_SET_NUMBER (ret, text->hscroll_max);
+   } else {
+     SWFDEC_AS_VALUE_SET_NUMBER (ret, 0);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_maxscroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, text->scroll_max);
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_mouseWheelEnabled (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->mouse_wheel_enabled);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_mouseWheelEnabled (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   text->mouse_wheel_enabled = value;
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_get_scroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, text->scroll);
+ }
+ 
+ static void
+ swfdec_text_field_movie_do_set_scroll (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
+ 
+   value = CLAMP (value, 1, text->scroll_max);
+   if (value != text->scroll) {
+     text->scroll_bottom += value - text->scroll;
+     text->scroll = value;
+     text->scroll_changed = TRUE;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ /*
+  * Native properties: Display
+  */
+ static void
+ swfdec_text_field_movie_get_autoSize (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   switch (text->text->auto_size) {
+     case SWFDEC_AUTO_SIZE_NONE:
+       SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_none);
+       break;
+     case SWFDEC_AUTO_SIZE_LEFT:
+       SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_left);
+       break;
+     case SWFDEC_AUTO_SIZE_RIGHT:
+       SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_right);
+       break;
+     case SWFDEC_AUTO_SIZE_CENTER:
+       SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_center);
+       break;
+     default:
+       g_assert_not_reached ();
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_autoSize (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   SwfdecAutoSize old;
+   const char *s;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (argc < 1)
+     return;
+ 
+   if (SWFDEC_AS_VALUE_IS_BOOLEAN (&argv[0])) {
+     if (SWFDEC_AS_VALUE_GET_BOOLEAN (&argv[0])) {
+       text->text->auto_size = SWFDEC_AUTO_SIZE_LEFT;
+     } else {
+       text->text->auto_size = SWFDEC_AUTO_SIZE_NONE;
+     }
+     return;
+   }
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+   s = swfdec_as_value_to_string (cx, &argv[0]);
+ 
+   old = text->text->auto_size;
+   if (!g_ascii_strcasecmp (s, "none")) {
+     text->text->auto_size = SWFDEC_AUTO_SIZE_NONE;
+   } else if (!g_ascii_strcasecmp (s, "left")) {
+     text->text->auto_size = SWFDEC_AUTO_SIZE_LEFT;
+   } else if (!g_ascii_strcasecmp (s, "right")) {
+     text->text->auto_size = SWFDEC_AUTO_SIZE_RIGHT;
+   } else if (!g_ascii_strcasecmp (s, "center")) {
+     text->text->auto_size = SWFDEC_AUTO_SIZE_CENTER;
+   }
+ 
+   if (text->text->auto_size != old) {
+     swfdec_text_field_movie_auto_size (text);
+     // FIXME: fix scrolling
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_password (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->password);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_password (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   if (text->text->password != value) {
+     text->text->password = value;
+     if (!value && text->asterisks != NULL) {
+       g_free (text->asterisks);
+       text->asterisks = NULL;
+       text->asterisks_length = 0;
+     }
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_wordWrap (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->word_wrap);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_wordWrap (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   if (text->text->word_wrap != value) {
+     text->text->word_wrap = value;
+     swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+     swfdec_text_field_movie_auto_size (text);
+     // special case: don't set scrolling
+   }
+ }
+ 
+ /*
+  * Native properties: Format
+  */
+ static void
+ swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   gboolean value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   if (!text->text->embed_fonts && value)
+     SWFDEC_FIXME ("Using embed fonts in TextField not supported");
+ 
+   text->text->embed_fonts = value;
+ 
+   // FIXME: resize
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_styleSheet (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (text->style_sheet != NULL) {
+     SWFDEC_AS_VALUE_SET_OBJECT (ret, SWFDEC_AS_OBJECT (text->style_sheet));
+   } else {
+     SWFDEC_AS_VALUE_SET_UNDEFINED (ret);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_style_sheet_update (SwfdecTextFieldMovie *text)
+ {
+   if (text->style_sheet_input)
+     swfdec_text_field_movie_set_text (text, text->style_sheet_input, TRUE);
+ }
+ 
+ static void
+ swfdec_text_field_movie_set_styleSheet (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   SwfdecAsObject *value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (argc < 1)
+     return;
+ 
+   swfdec_as_value_to_number (cx, &argv[0]);
+ 
+   if (SWFDEC_AS_VALUE_IS_OBJECT (&argv[0])) {
+     value = SWFDEC_AS_VALUE_GET_OBJECT (&argv[0]);
+     if (SWFDEC_IS_MOVIE (value))
+       value = NULL;
+   } else {
+     value = NULL;
+   }
+ 
+   if (text->style_sheet == value)
+     return;
+ 
+   if (text->style_sheet != NULL && SWFDEC_IS_STYLESHEET (text->style_sheet)) {
+     g_signal_handlers_disconnect_by_func (text->style_sheet,
+ 	 swfdec_text_field_movie_style_sheet_update, text);
+     g_object_remove_weak_pointer (G_OBJECT (text->style_sheet), 
+ 	(gpointer) &text->style_sheet);
+   }
+ 
+   text->style_sheet = value;
+ 
+   if (SWFDEC_IS_STYLESHEET (value)) {
+     g_signal_connect_swapped (value, "update",
+ 	G_CALLBACK (swfdec_text_field_movie_style_sheet_update), text);
+     g_object_add_weak_pointer (G_OBJECT (text->style_sheet), 
+ 	(gpointer) &text->style_sheet);
+ 
+     swfdec_text_field_movie_style_sheet_update (text);
+   }
+ }
+ 
+ static void
+ swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_NUMBER (ret, text->format_new->color);
+ }
+ 
+ // This doesn't work the same way as TextFormat's color setting
+ static void
+ swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int value;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
+ 
+   text->format_new->color = swfdec_text_field_movie_int_to_color (cx, value);
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 300, swfdec_text_field_movie_get_gridFitType)
+ void
+ swfdec_text_field_movie_get_gridFitType (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.gridFitType (get)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 301, swfdec_text_field_movie_set_gridFitType)
+ void
+ swfdec_text_field_movie_set_gridFitType (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.gridFitType (set)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 302, swfdec_text_field_movie_get_antiAliasType)
+ void
+ swfdec_text_field_movie_get_antiAliasType (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.antiAliasType (get)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 303, swfdec_text_field_movie_set_antiAliasType)
+ void
+ swfdec_text_field_movie_set_antiAliasType (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.antiAliasType (set)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 304, swfdec_text_field_movie_get_thickness)
+ void
+ swfdec_text_field_movie_get_thickness (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.thickness (get)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 305, swfdec_text_field_movie_set_thickness)
+ void
+ swfdec_text_field_movie_set_thickness (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.thickness (set)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 306, swfdec_text_field_movie_get_sharpness)
+ void
+ swfdec_text_field_movie_get_sharpness (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.sharpness (get)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 307, swfdec_text_field_movie_set_sharpness)
+ void
+ swfdec_text_field_movie_set_sharpness (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.sharpness (set)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 308, swfdec_text_field_movie_get_filters)
+ void
+ swfdec_text_field_movie_get_filters (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.filters (get)");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 309, swfdec_text_field_movie_set_filters)
+ void
+ swfdec_text_field_movie_set_filters (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.filters (set)");
+ }
+ 
+ /*
+  * Native functions
+  */
+ SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
+ void
+ swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   swfdec_text_format_init_properties (cx);
+ 
+   SWFDEC_AS_VALUE_SET_OBJECT (ret,
+       SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 105, swfdec_text_field_movie_setNewTextFormat)
+ void
+ swfdec_text_field_movie_setNewTextFormat (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   SwfdecAsObject *obj;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "o", &obj);
+ 
+   if (!SWFDEC_IS_TEXT_FORMAT (obj))
+     return;
+ 
+   swfdec_text_format_add (text->format_new, SWFDEC_TEXT_FORMAT (obj));
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 102, swfdec_text_field_movie_setTextFormat)
+ void
+ swfdec_text_field_movie_setTextFormat (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   SwfdecTextFormat *format;
+   int val, start_index, end_index;
+   guint i;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (argc < 1)
+     return;
+ 
+   i = 0;
+   if (argc <= i + 1) {
+     start_index = 0;
+     end_index = g_utf8_strlen (text->input->str, -1);
+   } else {
+     start_index = val = swfdec_as_value_to_integer (cx, &argv[i++]);
+     start_index = CLAMP (start_index, 0, g_utf8_strlen (text->input->str, -1));
+     if (argc <= i + 1) {
+       if (val < 0) { // fail
+ 	start_index = end_index = 0;
+       } else{
+ 	end_index = start_index + 1;
+       }
+     } else {
+       end_index = swfdec_as_value_to_integer (cx, &argv[i++]);
+     }
+     end_index =
+       CLAMP (end_index, start_index, g_utf8_strlen (text->input->str, -1));
+   }
+   if (start_index == end_index)
+     return;
+ 
+   if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[i]))
+     return;
+   if (!SWFDEC_IS_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i])))
+     return;
+ 
+   format = SWFDEC_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]));
+ 
+   swfdec_text_field_movie_set_text_format (text, format,
+       g_utf8_offset_to_pointer (text->input->str, start_index) -
+       text->input->str,
+       g_utf8_offset_to_pointer (text->input->str, end_index) -
+       text->input->str);
+ 
+   swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
+   swfdec_text_field_movie_auto_size (text);
+   // special case: update the max values, not the current values
+   swfdec_text_field_movie_update_scroll (text, FALSE);
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 101, swfdec_text_field_movie_getTextFormat)
+ void
+ swfdec_text_field_movie_getTextFormat (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   SwfdecTextFormat *format;
+   int val, start_index, end_index;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   if (argc == 0) {
+     start_index = 0;
+     end_index = g_utf8_strlen (text->input->str, -1);
+   } else {
+     start_index = val = swfdec_as_value_to_integer (cx, &argv[0]);
+     start_index = CLAMP (start_index, 0, g_utf8_strlen (text->input->str, -1));
+     if (argc == 1) {
+       if (val < 0) { // fail
+ 	start_index = end_index = 0;
+       } else{
+ 	end_index = start_index + 1;
+       }
+     } else {
+       end_index = swfdec_as_value_to_integer (cx, &argv[1]);
+     }
+     end_index =
+       CLAMP (end_index, start_index, g_utf8_strlen (text->input->str, -1));
+   }
+ 
+   if (start_index == end_index) {
+     format = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
+   } else {
+     format = swfdec_text_field_movie_get_text_format (text,
+       g_utf8_offset_to_pointer (text->input->str, start_index) -
+       text->input->str,
+       g_utf8_offset_to_pointer (text->input->str, end_index) -
+       text->input->str);
+   }
+ 
+   SWFDEC_AS_VALUE_SET_OBJECT (ret, SWFDEC_AS_OBJECT (format));
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 100, swfdec_text_field_movie_replaceSel)
+ void
+ swfdec_text_field_movie_replaceSel (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SWFDEC_STUB ("TextField.replaceSel");
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 107, swfdec_text_field_movie_replaceText)
+ void
+ swfdec_text_field_movie_replaceText (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecTextFieldMovie *text;
+   int start_index, end_index;
+   const char *str;
+ 
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "iis", &start_index,
+       &end_index, &str);
+ 
+   if (start_index < 0)
+     return;
+   if (end_index < start_index)
+     return;
+ 
+   start_index = MIN (start_index, g_utf8_strlen (text->input->str, -1));
+   end_index = MIN (end_index, g_utf8_strlen (text->input->str, -1));
+ 
+   swfdec_text_field_movie_replace_text (text,
+       g_utf8_offset_to_pointer (text->input->str, start_index) -
+       text->input->str,
+       g_utf8_offset_to_pointer (text->input->str, end_index) -
+       text->input->str, str);
+ }
+ 
+ // static
+ SWFDEC_AS_NATIVE (104, 201, swfdec_text_field_movie_getFontList)
+ void
+ swfdec_text_field_movie_getFontList (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *ret)
+ {
+   SwfdecAsArray *array;
+   SwfdecAsValue val;
+   PangoFontFamily **families;
+   int i, n_families;
+ 
+   pango_font_map_list_families (pango_cairo_font_map_get_default (),
+       &families, &n_families);
+ 
+   array = SWFDEC_AS_ARRAY (swfdec_as_array_new (cx));
+   for (i = 0; i < n_families; i++) {
+     SWFDEC_AS_VALUE_SET_STRING (&val, swfdec_as_context_get_string (cx,
+ 	  pango_font_family_get_name (families[i])));
+     swfdec_as_array_push (array, &val);
+   }
+   SWFDEC_AS_VALUE_SET_STRING (&val, SWFDEC_AS_STR_Sans);
+   swfdec_as_array_push (array, &val);
+   SWFDEC_AS_VALUE_SET_STRING (&val, SWFDEC_AS_STR_Serif);
+   swfdec_as_array_push (array, &val);
+   SWFDEC_AS_VALUE_SET_STRING (&val, SWFDEC_AS_STR_Monospace);
+   swfdec_as_array_push (array, &val);
+ 
+   g_free (families);
+ 
+   SWFDEC_AS_VALUE_SET_OBJECT (ret, SWFDEC_AS_OBJECT (array));
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 106, swfdec_text_field_movie_getDepth)
+ void
+ swfdec_text_field_movie_getDepth (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
+ {
+   SwfdecTextFieldMovie *text;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   SWFDEC_AS_VALUE_SET_INT (rval, SWFDEC_MOVIE (text)->depth);
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 103, swfdec_text_field_movie_removeTextField)
+ void
+ swfdec_text_field_movie_removeTextField (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *rval)
+ {
+   SwfdecTextFieldMovie *text;
+   SwfdecMovie *movie;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ 
+   movie = SWFDEC_MOVIE (text);
+   if (swfdec_depth_classify (movie->depth) == SWFDEC_DEPTH_CLASS_DYNAMIC)
+     swfdec_movie_remove (movie);
+ }
+ 
+ /*
+  * Creating TextFields
+  */
+ SWFDEC_AS_NATIVE (104, 200, swfdec_text_field_movie_createTextField)
+ void
+ swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
+     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+     SwfdecAsValue *rval)
+ {
+   SwfdecMovie *movie, *parent;
+   SwfdecTextField *edittext;
+   int depth, x, y, width, height;
+   const char *name;
+   SwfdecAsFunction *fun;
+   SwfdecAsValue val;
+ 
+   SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &parent, "siiiii", &name, &depth, &x, &y, &width, &height);
+ 
+   edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
+   edittext->html = FALSE;
+   edittext->editable = FALSE;
+   edittext->password = FALSE;
+   edittext->selectable = TRUE;
+   edittext->font = NULL; // FIXME
+   edittext->word_wrap = FALSE;
+   edittext->multiline = FALSE;
+   edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
+   edittext->border = FALSE;
+   edittext->size = 240; // FIXME: Correct?
+ 
+   edittext->input = NULL;
+   edittext->variable = NULL;
+   edittext->color = 0;
+   edittext->align = SWFDEC_TEXT_ALIGN_LEFT;
+   edittext->left_margin = 0;
+   edittext->right_margin = 0;
+   edittext->indent = 0;
+   edittext->leading = 0;
+ 
 -  SWFDEC_GRAPHIC (edittext)->extents.x0 = SWFDEC_DOUBLE_TO_TWIPS (x);
 -  SWFDEC_GRAPHIC (edittext)->extents.x1 =
 -    SWFDEC_GRAPHIC (edittext)->extents.x0 + SWFDEC_DOUBLE_TO_TWIPS (width);
 -  SWFDEC_GRAPHIC (edittext)->extents.y0 = SWFDEC_DOUBLE_TO_TWIPS (y);
 -  SWFDEC_GRAPHIC (edittext)->extents.y1 =
 -    SWFDEC_GRAPHIC (edittext)->extents.y0 + SWFDEC_DOUBLE_TO_TWIPS (height);
++  SWFDEC_GRAPHIC (edittext)->extents.x0 = 0;
++  SWFDEC_GRAPHIC (edittext)->extents.x1 = SWFDEC_DOUBLE_TO_TWIPS (width);
++  SWFDEC_GRAPHIC (edittext)->extents.y0 = 0;
++  SWFDEC_GRAPHIC (edittext)->extents.y1 = SWFDEC_DOUBLE_TO_TWIPS (height);
+ 
+   movie = swfdec_movie_find (parent, depth);
+   if (movie)
+     swfdec_movie_remove (movie);
+ 
+   movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent, parent->resource,
+       SWFDEC_GRAPHIC (edittext), name);
+   g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
+   g_object_unref (edittext);
+   swfdec_movie_initialize (movie);
++
++  movie->matrix.x0 = SWFDEC_DOUBLE_TO_TWIPS (x);
++  movie->matrix.y0 = SWFDEC_DOUBLE_TO_TWIPS (y);
++  movie->modified = TRUE;
++
+   swfdec_movie_update (movie);
+ 
+   swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+   if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+     return;
+   fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&val);
+   if (!SWFDEC_IS_AS_FUNCTION (fun))
+     return;
+ 
+   /* set initial variables */
+   if (swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (fun),
+ 	SWFDEC_AS_STR_prototype, &val)) {
+     swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
+ 	SWFDEC_AS_STR___proto__, &val,
+ 	SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT);
+   }
+   SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (fun));
+   if (cx->version < 7) {
+     swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
+ 	SWFDEC_AS_STR_constructor, &val, SWFDEC_AS_VARIABLE_HIDDEN);
+   }
+   swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
+       SWFDEC_AS_STR___constructor__, &val,
+       SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_VERSION_6_UP);
+ 
+   swfdec_as_function_call (fun, SWFDEC_AS_OBJECT (movie), 0, NULL, rval);
+   cx->frame->construct = TRUE;
+   swfdec_as_context_run (cx);
+ }
+ 
+ void
+ swfdec_text_field_movie_init_properties (SwfdecAsContext *cx)
+ {
+   SwfdecAsValue val;
+   SwfdecAsObject *object, *proto;
+ 
+   // FIXME: We should only initialize if the prototype Object has not been
+   // initialized by any object's constructor with native properties
+   // (TextField, TextFormat, XML, XMLNode at least)
+ 
+   g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
+ 
+   swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+   if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+     return;
+   object = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+   swfdec_as_object_get_variable (object, SWFDEC_AS_STR_prototype, &val);
+   if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+     return;
+   proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ 
+   // text
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_text,
+       swfdec_text_field_movie_do_get_text,
+       swfdec_text_field_movie_do_set_text);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_html,
+       swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_htmlText,
+       swfdec_text_field_movie_get_htmlText,
+       swfdec_text_field_movie_set_htmlText);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_length,
+       swfdec_text_field_movie_get_length,
+       swfdec_text_field_movie_set_readonly);
+ 
+   // input
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_condenseWhite,
+       swfdec_text_field_movie_get_condenseWhite,
+       swfdec_text_field_movie_set_condenseWhite);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_maxChars,
+       swfdec_text_field_movie_get_maxChars,
+       swfdec_text_field_movie_set_maxChars);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_multiline,
+       swfdec_text_field_movie_get_multiline,
+       swfdec_text_field_movie_set_multiline);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_restrict,
+       swfdec_text_field_movie_get_restrict,
+       swfdec_text_field_movie_set_restrict);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_selectable,
+       swfdec_text_field_movie_get_selectable,
+       swfdec_text_field_movie_set_selectable);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_type,
+       swfdec_text_field_movie_do_get_type,
+       swfdec_text_field_movie_do_set_type);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_variable,
+       swfdec_text_field_movie_do_get_variable,
+       swfdec_text_field_movie_do_set_variable);
+ 
+   // info
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_textHeight,
+       swfdec_text_field_movie_get_textHeight,
+       swfdec_text_field_movie_set_readonly);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_textWidth,
+       swfdec_text_field_movie_get_textWidth,
+       swfdec_text_field_movie_set_readonly);
+ 
+   // border & background
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_background,
+       swfdec_text_field_movie_get_background,
+       swfdec_text_field_movie_set_background);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_backgroundColor,
+       swfdec_text_field_movie_get_backgroundColor,
+       swfdec_text_field_movie_set_backgroundColor);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_border,
+       swfdec_text_field_movie_get_border, swfdec_text_field_movie_set_border);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_borderColor,
+       swfdec_text_field_movie_get_borderColor,
+       swfdec_text_field_movie_set_borderColor);
+ 
+   // scrolling
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_bottomScroll,
+       swfdec_text_field_movie_get_bottomScroll,
+       swfdec_text_field_movie_set_readonly);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_hscroll,
+       swfdec_text_field_movie_do_get_hscroll,
+       swfdec_text_field_movie_do_set_hscroll);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_maxhscroll,
+       swfdec_text_field_movie_get_maxhscroll,
+       swfdec_text_field_movie_set_readonly);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_maxscroll,
+       swfdec_text_field_movie_get_maxscroll,
+       swfdec_text_field_movie_set_readonly);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_mouseWheelEnabled,
+       swfdec_text_field_movie_get_mouseWheelEnabled,
+       swfdec_text_field_movie_set_mouseWheelEnabled);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_scroll,
+       swfdec_text_field_movie_do_get_scroll,
+       swfdec_text_field_movie_do_set_scroll);
+ 
+   // display
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_autoSize,
+       swfdec_text_field_movie_get_autoSize,
+       swfdec_text_field_movie_set_autoSize);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_password,
+       swfdec_text_field_movie_get_password,
+       swfdec_text_field_movie_set_password);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_wordWrap,
+       swfdec_text_field_movie_get_wordWrap,
+       swfdec_text_field_movie_set_wordWrap);
+ 
+   // format
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_embedFonts,
+       swfdec_text_field_movie_get_embedFonts,
+       swfdec_text_field_movie_set_embedFonts);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_styleSheet,
+       swfdec_text_field_movie_get_styleSheet,
+       swfdec_text_field_movie_set_styleSheet);
+   swfdec_as_object_add_native_variable (proto, SWFDEC_AS_STR_textColor,
+       swfdec_text_field_movie_get_textColor,
+       swfdec_text_field_movie_set_textColor);
+ 
+   // TODO: menu, tabEnabled, tabIndex
+ 
+   // Version 8 properties have ASnative numbers:
+   // gridFitType, antiAliasType, thickness, sharpness and filters
+ }
+ 
+ SWFDEC_AS_NATIVE (104, 0, swfdec_text_field_movie_construct)
+ void
+ swfdec_text_field_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
+     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+ {
+   if (!cx->frame->construct) {
+     SwfdecAsValue val;
+     if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecAsObject)))
+       return;
+     object = g_object_new (SWFDEC_TYPE_AS_OBJECT, NULL);
+     swfdec_as_object_add (object, cx, sizeof (SwfdecAsObject));
+     swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+     if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+       swfdec_as_object_set_constructor (object,
+ 	  SWFDEC_AS_VALUE_GET_OBJECT (&val));
+     } else {
+       SWFDEC_INFO ("\"TextField\" is not an object");
+     }
+   }
+ 
+   swfdec_text_field_movie_init_properties (cx);
+ 
+   // FIXME: do object.addListener (object);
+ 
+   SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
+ }
diff --cc swfdec/swfdec_text_field_movie_html.c
index 0000000,b0aa94f..b4b7ddb
mode 000000,100644..100644
--- a/swfdec/swfdec_text_field_movie_html.c
+++ b/swfdec/swfdec_text_field_movie_html.c
@@@ -1,0 -1,777 +1,809 @@@
+ /* Swfdec
+  * Copyright (C) 2007 Pekka Lampila <pekka.lampila at iki.fi>
+  *
+  * 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
+  */
+ 
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #include "swfdec_text_field_movie.h"
+ #include "swfdec_as_strings.h"
+ #include "swfdec_style_sheet.h"
+ #include "swfdec_xml.h"
+ #include "swfdec_debug.h"
+ 
+ /*
+  * Parsing
+  */
+ typedef struct {
+   const char *		name;
+   int			name_length;
+   guint			index;
+   guint			end_index;
+   SwfdecTextFormat	*format;
+ } ParserTag;
+ 
+ typedef struct {
+   SwfdecAsContext	*cx;
+   gboolean		multiline;
+   gboolean		condense_white;
+   SwfdecStyleSheet	*style_sheet;
+   GString *		text;
+   GSList *		tags_open;
+   GSList *		tags_closed;
+ } ParserData;
+ 
+ static void
 -swfdec_text_field_movie_html_parse_close_tag (ParserData *data, ParserTag *tag)
++swfdec_text_field_movie_html_parse_close_tag (ParserData *data, ParserTag *tag,
++    gboolean end)
+ {
+   g_return_if_fail (data != NULL);
+   g_return_if_fail (tag != NULL);
+ 
 -  if (data->multiline &&
++  if (data->multiline && !end &&
+       ((tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1)) ||
+        (tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2))))
+   {
+     GSList *iter;
+ 
+     for (iter = data->tags_closed; iter != NULL; iter = iter->next) {
+       ParserTag *f = iter->data;
+       if (f->end_index < tag->index)
+ 	break;
+       if (f->name_length == 4 && !g_strncasecmp (f->name, "font", 4)) {
+ 	ParserTag *n = g_new0 (ParserTag, 1);
+ 	n->name = f->name;
+ 	n->name_length = f->name_length;
+ 	n->index = data->text->len;
+ 	n->end_index = n->index + 1;
+ 	if (f->format != NULL) {
+ 	  n->format = swfdec_text_format_copy (f->format);
+ 	} else {
+ 	  n->format = NULL;
+ 	}
+ 	data->tags_closed = g_slist_prepend (data->tags_closed, n);
+ 	break;
+       }
+     }
+     data->text = g_string_append_c (data->text, '\n');
+   }
+ 
+   tag->end_index = data->text->len;
+ 
+   data->tags_open = g_slist_remove (data->tags_open, tag);
+   data->tags_closed = g_slist_prepend (data->tags_closed, tag);
+ }
+ 
+ static const char *
+ swfdec_text_field_movie_html_parse_comment (ParserData *data, const char *p)
+ {
+   const char *end;
+ 
+   g_return_val_if_fail (data != NULL, NULL);
+   g_return_val_if_fail (p != NULL, NULL);
+   g_return_val_if_fail (strncmp (p, "<!--", strlen ("<!--")) == 0, NULL);
+ 
+   end = strstr (p + strlen ("<!--"), "-->");
+   if (end != NULL)
+     end += strlen("-->");
+ 
+   // return NULL if no end found
+   return end;
+ }
+ 
+ static void
+ swfdec_text_field_movie_html_tag_set_attribute (ParserData *data,
+     ParserTag *tag, const char *name, int name_length, const char *value,
+     int value_length)
+ {
+   SwfdecAsValue val;
+   SwfdecAsObject *object;
+ 
+   g_return_if_fail (data != NULL);
+   g_return_if_fail (tag != NULL);
+   g_return_if_fail (name != NULL);
+   g_return_if_fail (name_length >= 0);
+   g_return_if_fail (value != NULL);
+   g_return_if_fail (value_length >= 0);
+ 
+   if (!tag->format)
+     return;
+ 
+   object = SWFDEC_AS_OBJECT (tag->format);
+   SWFDEC_AS_VALUE_SET_STRING (&val, swfdec_as_context_give_string (
+ 	object->context, g_strndup (value, value_length)));
+ 
+   if (tag->name_length == 10 && !g_strncasecmp (tag->name, "textformat", 10))
+   {
+     if (name_length == 10 && !g_strncasecmp (name, "leftmargin", 10))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_leftMargin, &val);
+     }
+     else if (name_length == 11 && !g_strncasecmp (name, "rightmargin", 11))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_rightMargin, &val);
+     }
+     else if (name_length == 6 && !g_strncasecmp (name, "indent", 6))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_indent, &val);
+     }
+     else if (name_length == 11 && !g_strncasecmp (name, "blockindent", 11))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_blockIndent, &val);
+     }
+     else if (name_length == 8 && !g_strncasecmp (name, "tabstops", 8))
+     {
+       // FIXME
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_tabStops, &val);
+     }
+   }
+   else if (tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1))
+   {
+     if (name_length == 5 && !g_strncasecmp (name, "align", 5))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_align, &val);
+     }
+   }
+   else if (tag->name_length == 4 && !g_strncasecmp (tag->name, "font", 4))
+   {
+     if (name_length == 4 && !g_strncasecmp (name, "face", 4))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_font, &val);
+     }
+     else if (name_length == 4 && !g_strncasecmp (name, "size", 4))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_size, &val);
+     }
+     else if (name_length == 5 && !g_strncasecmp (name, "color", 5))
+     {
+       SwfdecAsValue val_number;
+ 
+       if (value_length != 7 || *value != '#') {
+ 	SWFDEC_AS_VALUE_SET_NUMBER (&val_number, 0);
+       } else {
+ 	int number;
+ 	char *tail;
+ 
+ 	number = g_ascii_strtoll (value + 1, &tail, 16);
+ 	if (tail != value + 7)
+ 	  number = 0;
+ 	SWFDEC_AS_VALUE_SET_NUMBER (&val_number, number);
+       }
+ 
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_color, &val_number);
+     }
+     else if (name_length == 13 && !g_strncasecmp (name, "letterspacing", 13))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_letterSpacing,
+ 	  &val);
+     }
+     // special case: Don't parse kerning
+   }
+   else if (tag->name_length == 1 && !g_strncasecmp (tag->name, "a", 1))
+   {
+     if (name_length == 4 && !g_strncasecmp (name, "href", 4))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_url, &val);
+     }
+     else if (name_length == 6 && !g_strncasecmp (name, "target", 6))
+     {
+       swfdec_as_object_set_variable (object, SWFDEC_AS_STR_target, &val);
+     }
+   }
+ 
+   if (data->style_sheet &&
+       ((tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2)) ||
+       (tag->name_length == 4 && !g_strncasecmp (tag->name, "span", 4)) ||
+       (tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1))))
+   {
+     if (name_length == 5 && !g_strncasecmp (name, "class", 5)) {
+       SwfdecTextFormat *format = swfdec_style_sheet_get_class_format (
+ 	  data->style_sheet, swfdec_as_context_give_string (data->cx,
+ 	      g_strndup (value, value_length)));
+       if (format != NULL)
+ 	swfdec_text_format_add (tag->format, format);
+     }
+   }
+ }
+ 
+ static const char *
+ swfdec_text_field_movie_html_parse_attribute (ParserData *data, ParserTag *tag,
+     const char *p)
+ {
+   const char *end, *name, *value;
+   int name_length, value_length;
+ 
+   g_return_val_if_fail (data != NULL, NULL);
+   g_return_val_if_fail (tag != NULL, NULL);
+   g_return_val_if_fail ((*p != '>' && *p != '\0'), NULL);
+ 
+   end = p + strcspn (p, "=> \r\n\t");
+   if (end - p <= 0)
+     return NULL; // Correct?
+ 
+   name = p;
+   name_length = end - p;
+ 
+   p = end + strspn (end, " \r\n\t");
+   if (*p != '=')
+     return NULL; // FIXME: Correct?
+   p = p + 1;
+   p = p + strspn (p, " \r\n\t");
+ 
+   if (*p != '"' && *p != '\'')
+     return NULL; // FIXME: Correct?
+ 
+   end = p + 1;
+   do {
+     end = strchr (end, *p);
+   } while (end != NULL && *(end - 1) == '\\');
+ 
+   if (end == NULL)
+     return NULL; // FIXME: Correct?
+ 
+   value = p + 1;
+   value_length = end - (p + 1);
+ 
+   if (tag != NULL) {
+     swfdec_text_field_movie_html_tag_set_attribute (data, tag, name,
+ 	name_length, value, value_length);
+   }
+ 
+   g_return_val_if_fail (end + 1 > p, NULL);
+ 
+   return end + 1;
+ }
+ 
+ static const char *
+ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
+ {
+   ParserTag *tag;
+   const char *name, *end;
+   int name_length;
+   gboolean close;
+ 
+   g_return_val_if_fail (data != NULL, NULL);
+   g_return_val_if_fail (p != NULL, NULL);
+   g_return_val_if_fail (*p == '<', NULL);
+ 
+   p++;
+ 
+   // closing tag or opening tag?
+   if (*p == '/') {
+     close = TRUE;
+     p++;
+   } else {
+     close = FALSE;
+   }
+ 
+   // find the end of the name
+   end = p + strcspn (p, "> \r\n\t");
+ 
+   if (*end == '\0')
+     return NULL;
+ 
+   // don't count trailing / as part of the name if it's followed by >
+   // we still act like it's a normal opening tag even if it has /
+   if (*end == '>' && *(end - 1) == '/')
+     end = end - 1;
+ 
+   if (end == p) // empty name
+     return NULL;
+ 
+   name = p;
+   name_length = end - p;
+ 
+   if (close)
+   {
 -    if (data->tags_open != NULL) {
 -      tag = data->tags_open->data;
 -      if (name_length == tag->name_length &&
 -	  !g_strncasecmp (name, tag->name, name_length))
 -	swfdec_text_field_movie_html_parse_close_tag (data, tag);
++    if (name_length == 1 && !g_strncasecmp (name, "p", 1)) {
++      GSList *iter, *found;
++
++      found = NULL;
++      iter = data->tags_open;
++      while (iter != NULL) {
++	tag = iter->data;
++	if (tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1))
++	  found = iter;
++	iter = iter->next;
++      }
++
++      if (found != NULL) {
++	iter = data->tags_open;
++	while (iter != found) {
++	  tag = iter->data;
++	  iter = iter->next;
++	  if ((tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2)) ||
++	      (tag->name_length == 10 &&
++	       !g_strncasecmp (tag->name, "textformat", 10)))
++	    continue;
++	  swfdec_text_field_movie_html_parse_close_tag (data, tag, TRUE);
++	}
++	if (data->multiline)
++	  data->text = g_string_append_c (data->text, '\n');
++	swfdec_text_field_movie_html_parse_close_tag (data, found->data,
++	    TRUE);
++      }
++    } else {
++      if (data->tags_open != NULL) {
++	tag = data->tags_open->data;
++	if (name_length == tag->name_length &&
++	    !g_strncasecmp (name, tag->name, name_length))
++	  swfdec_text_field_movie_html_parse_close_tag (data, tag, FALSE);
++      }
+     }
+ 
+     end = strchr (end, '>');
+     if (end != NULL)
+       end += 1;
+   }
+   else
+   {
+     SwfdecAsObject *object;
+     SwfdecAsValue val;
+ 
+     if (data->multiline) {
+       if (name_length == 2 && !g_strncasecmp (name, "br", 2))
+       {
+ 	data->text = g_string_append_c (data->text, '\n');
+       }
 -      else if ((name_length == 1 && !g_strncasecmp (name, "p", 1)) ||
 -	  (name_length == 2 && !g_strncasecmp (name, "li", 2)) ||
 -	  (name_length == 2 && !g_strncasecmp (name, "br", 2)))
++      else if (name_length == 2 && !g_strncasecmp (name, "li", 1))
+       {
 -	    GSList *iter;
 -
 -	for (iter = data->tags_open; iter != NULL; iter = iter->next) {
 -	  ParserTag *f = iter->data;
 -	  if ((f->name_length == 1 && !g_strncasecmp (f->name, "p", 1)) ||
 -	      (f->name_length == 2 && !g_strncasecmp (f->name, "li", 2))) {
 -	    data->text = g_string_append_c (data->text, '\n');
 -	    break;
 -	  }
 -	}
++	if (data->text->len > 0 &&
++	    data->text->str[data->text->len - 1] != '\n' &&
++	    data->text->str[data->text->len - 1] != '\r')
++	  data->text = g_string_append_c (data->text, '\n');
+       }
+     }
+ 
+     tag = g_new0 (ParserTag, 1);
+     tag->name = name;
+     tag->name_length = name_length;
+     tag->format = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (data->cx));
+     tag->index = data->text->len;
+ 
+     data->tags_open = g_slist_prepend (data->tags_open, tag);
+ 
+     // set format based on tag
+     if (tag->format != NULL) {
+       object = SWFDEC_AS_OBJECT (tag->format);
+       SWFDEC_AS_VALUE_SET_BOOLEAN (&val, TRUE);
+ 
+       if (tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2)) {
+ 	swfdec_as_object_set_variable (object, SWFDEC_AS_STR_bullet, &val);
+       } else if (tag->name_length == 1 && !g_strncasecmp (tag->name, "b", 1)) {
+ 	swfdec_as_object_set_variable (object, SWFDEC_AS_STR_bold, &val);
+       } else if (tag->name_length == 1 && !g_strncasecmp (tag->name, "i", 1)) {
+ 	swfdec_as_object_set_variable (object, SWFDEC_AS_STR_italic, &val);
+       } else if (tag->name_length == 1 && !g_strncasecmp (tag->name, "u", 1)) {
+ 	swfdec_as_object_set_variable (object, SWFDEC_AS_STR_underline, &val);
+       }
+       else if (tag->name_length == 3 && !g_strncasecmp (tag->name, "img", 3))
+       {
+ 	SWFDEC_FIXME ("IMG tag support for TextField's HTML input missing");
+       }
+     }
+ 
+     if (data->style_sheet &&
+ 	((tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2)) ||
+ 	(tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1)))) {
+       SwfdecTextFormat *format = swfdec_style_sheet_get_tag_format (
+ 	  data->style_sheet, swfdec_as_context_give_string (data->cx,
+ 	      g_strndup (tag->name, tag->name_length)));
+       if (format != NULL)
+ 	swfdec_text_format_add (tag->format, format);
+     }
+ 
+     // parse attributes
+     end = end + strspn (end, " \r\n\t");
+     while (*end != '\0' && *end != '>' && (*end != '/' || *(end + 1) != '>')) {
+       end = swfdec_text_field_movie_html_parse_attribute (data, tag, end);
+       if (end == NULL)
+ 	break;
+       end = end + strspn (end, " \r\n\t");
+     }
+     if (end != NULL) {
+       if (*end == '/')
+ 	end += 1;
+       if (*end == '>')
+ 	end += 1;
+     }
+   }
+ 
+   return end;
+ }
+ 
+ static const char *
+ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
+ {
+   const char *end;
+   char *unescaped;
+ 
+   g_return_val_if_fail (data != NULL, NULL);
+   g_return_val_if_fail (p != NULL, NULL);
+   g_return_val_if_fail (*p != '\0' && *p != '<', NULL);
+ 
++  // condense the space with previous text also, if version >= 8
++  if (data->condense_white && data->cx->version >= 8) {
++    if (data->text->len > 0 &&
++	g_ascii_isspace (data->text->str[data->text->len - 1]))
++      p += strspn (p, " \n\r\t");
++  }
++
+   // get the text
+   // if condense_white: all whitespace blocks are converted to a single space
+   while (*p != '\0' && *p != '<') {
+     if (data->condense_white) {
+       end = p + strcspn (p, "< \n\r\t");
+     } else {
+       end = strchr (p, '<');
+       if (end == NULL)
+ 	end = strchr (p, '\0');
+     }
+ 
+     unescaped = swfdec_xml_unescape_len (data->cx, p, end - p, TRUE);
+     data->text = g_string_append (data->text, unescaped);
+     g_free (unescaped);
+ 
+     if (data->condense_white && g_ascii_isspace (*end)) {
+       data->text = g_string_append_c (data->text, ' ');
+       p = end + strspn (end, " \n\r\t");
+     } else {
+       p = end;
+     }
+   }
+ 
+   return p;
+ }
+ 
+ void
+ swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie *text, const char *str)
+ {
+   ParserData data;
+   const char *p;
+ 
+   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+   g_return_if_fail (str != NULL);
+ 
+   text->input = g_string_assign (text->input, "");
+ 
+   data.cx = SWFDEC_AS_OBJECT (text)->context;
+   data.multiline = (data.cx->version < 7 || text->text->multiline);
+   data.condense_white = text->condense_white;
+   if (text->style_sheet != NULL && SWFDEC_IS_STYLESHEET (text->style_sheet)) {
+     data.style_sheet = SWFDEC_STYLESHEET (text->style_sheet);
+   } else {
+     data.style_sheet = NULL;
+   }
+   data.text = text->input;
+   data.tags_open = NULL;
+   data.tags_closed = NULL;
+ 
+   p = str;
+   while (p != NULL && *p != '\0') {
+     if (*p == '<') {
+       if (strncmp (p + 1, "!--", strlen ("!--")) == 0) {
+ 	p = swfdec_text_field_movie_html_parse_comment (&data, p);
+       } else {
+ 	p = swfdec_text_field_movie_html_parse_tag (&data, p);
+       }
+     } else {
+       p = swfdec_text_field_movie_html_parse_text (&data, p);
+     }
+   }
+ 
+   // close remaining tags
+   while (data.tags_open != NULL) {
++    swfdec_text_format_add (text->format_new,
++	((ParserTag *)data.tags_open->data)->format);
+     swfdec_text_field_movie_html_parse_close_tag (&data,
 -	(ParserTag *)data.tags_open->data);
++	(ParserTag *)data.tags_open->data, TRUE);
+   }
+ 
+   // add parsed styles
+   while (data.tags_closed != NULL) {
+     ParserTag *tag = (ParserTag *)data.tags_closed->data;
+ 
+     if (tag->index != tag->end_index && tag->format != NULL) {
+       swfdec_text_field_movie_set_text_format (text, tag->format, tag->index,
+ 	  tag->end_index);
+     }
+ 
+     g_free (tag);
+     data.tags_closed = g_slist_remove (data.tags_closed, tag);
+   }
+ }
+ 
+ /*
+  * Generating
+  */
+ static const char *
+ swfdec_text_field_movie_html_text_align_to_string (SwfdecTextAlign align)
+ {
+   switch (align) {
+     case SWFDEC_TEXT_ALIGN_LEFT:
+       return "LEFT";
+     case SWFDEC_TEXT_ALIGN_RIGHT:
+       return "RIGHT";
+     case SWFDEC_TEXT_ALIGN_CENTER:
+       return "CENTER";
+     case SWFDEC_TEXT_ALIGN_JUSTIFY:
+       return "JUSTIFY";
+     default:
+       g_assert_not_reached ();
+       return "";
+   }
+ }
+ 
+ /*
+  * Order of tags:
+  * TEXTFORMAT / P or LI / FONT / A / B / I / U
+  *
+  * Order of attributes:
+  * TEXTFORMAT:
+  * LEFTMARGIN / RIGHTMARGIN / INDENT / LEADING / BLOCKINDENT / TABSTOPS
+  * P: ALIGN
+  * LI: none
+  * FONT: FACE / SIZE / COLOR / LETTERSPACING / KERNING
+  * A: HREF / TARGET
+  * B: none
+  * I: none
+  * U: none
+  */
+ static GString *
+ swfdec_text_field_movie_html_text_append_paragraph (SwfdecTextFieldMovie *text,
+     GString *string, guint start_index, guint end_index)
+ {
+   SwfdecTextFormat *format, *format_prev, *format_font;
+   GSList *iter, *fonts, *iter_font;
+   guint index_, index_prev;
+   gboolean textformat, bullet, font = FALSE;
+   char *escaped;
+ 
+   g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), string);
+   g_return_val_if_fail (string != NULL, string);
+   g_return_val_if_fail (start_index <= end_index, string);
+ 
+   g_return_val_if_fail (text->formats != NULL, string);
+   for (iter = text->formats; iter->next != NULL &&
+       ((SwfdecFormatIndex *)(iter->next->data))->index_ <= start_index;
+       iter = iter->next);
+ 
+   index_ = start_index;
+   format = ((SwfdecFormatIndex *)(iter->data))->format;
+ 
+   if (format->left_margin != 0 || format->right_margin != 0 ||
+       format->indent != 0 || format->leading != 0 ||
+       format->block_indent != 0 ||
+       swfdec_as_array_get_length (format->tab_stops) > 0)
+   {
+     string = g_string_append (string, "<TEXTFORMAT");
+     if (format->left_margin) {
+       g_string_append_printf (string, " LEFTMARGIN=\"%i\"",
+ 	  format->left_margin);
+     }
+     if (format->right_margin) {
+       g_string_append_printf (string, " RIGHTMARGIN=\"%i\"",
+ 	  format->right_margin);
+     }
+     if (format->indent)
+       g_string_append_printf (string, " INDENT=\"%i\"", format->indent);
+     if (format->leading)
+       g_string_append_printf (string, " LEADING=\"%i\"", format->leading);
+     if (format->block_indent) {
+       g_string_append_printf (string, " BLOCKINDENT=\"%i\"",
+ 	  format->block_indent);
+     }
+     if (swfdec_as_array_get_length (format->tab_stops) > 0) {
+       SwfdecAsValue val;
+       SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT  (format->tab_stops));
+       g_string_append_printf (string, " TABSTOPS=\"%s\"",
+ 	  swfdec_as_value_to_string (SWFDEC_AS_OBJECT
+ 	    (format->tab_stops)->context, &val));
+     }
+     string = g_string_append (string, ">");
+ 
+     textformat = TRUE;
+   }
+   else
+   {
+     textformat = FALSE;
+   }
+ 
+   if (format->bullet) {
+     string = g_string_append (string, "<LI>");
+     bullet = TRUE;
+   } else {
+     g_string_append_printf (string, "<P ALIGN=\"%s\">",
+ 	swfdec_text_field_movie_html_text_align_to_string (format->align));
+     bullet = FALSE;
+   }
+ 
+   // note we don't escape format->font, even thought it can have evil chars
+   g_string_append_printf (string, "<FONT FACE=\"%s\" SIZE=\"%i\" COLOR=\"#%06X\" LETTERSPACING=\"%i\" KERNING=\"%i\">",
+       format->font, format->size, format->color, (int)format->letter_spacing,
+       (format->kerning ? 1 : 0));
+   fonts = g_slist_prepend (NULL, format);
+ 
+   if (format->url != SWFDEC_AS_STR_EMPTY)
+     g_string_append_printf (string, "<A HREF=\"%s\" TARGET=\"%s\">",
+ 	format->url, format->target);
+   if (format->bold)
+     string = g_string_append (string, "<B>");
+   if (format->italic)
+     string = g_string_append (string, "<I>");
+   if (format->underline)
+     string = g_string_append (string, "<U>");
+ 
+   // special case: use <= instead of < to add some extra markup
+   for (iter = iter->next;
+       iter != NULL && ((SwfdecFormatIndex *)(iter->data))->index_ <= end_index;
+       iter = iter->next)
+   {
+     index_prev = index_;
+     format_prev = format;
+     index_ = ((SwfdecFormatIndex *)(iter->data))->index_;
+     format = ((SwfdecFormatIndex *)(iter->data))->format;
+ 
+     escaped = swfdec_xml_escape_len (text->input->str + index_prev,
+ 	index_ - index_prev);
+     string = g_string_append (string, escaped);
+     g_free (escaped);
+     escaped = NULL;
+ 
+     // Figure out what tags need to be rewritten
+     if (format->font != format_prev->font ||
+ 	format->size != format_prev->size ||
+ 	format->color != format_prev->color ||
+ 	(int)format->letter_spacing != (int)format_prev->letter_spacing ||
+ 	format->kerning != format_prev->kerning) {
+       font = TRUE;
+     } else if (format->url == format_prev->url &&
+ 	format->target == format_prev->target &&
+ 	format->bold == format_prev->bold &&
+ 	format->italic == format_prev->italic &&
+ 	format->underline == format_prev->underline) {
+       continue;
+     }
+ 
+     // Close tags
+     for (iter_font = fonts; iter_font != NULL; iter_font = iter_font->next)
+     {
+       format_font = (SwfdecTextFormat *)iter_font->data;
+       if (format->font == format_font->font &&
+ 	format->size == format_font->size &&
+ 	format->color == format_font->color &&
+ 	(int)format->letter_spacing == (int)format_font->letter_spacing &&
+ 	format->kerning == format_font->kerning) {
+ 	break;
+       }
+     }
+     if (format_prev->underline)
+       string = g_string_append (string, "</U>");
+     if (format_prev->italic)
+       string = g_string_append (string, "</I>");
+     if (format_prev->bold)
+       string = g_string_append (string, "</B>");
+     if (format_prev->url != SWFDEC_AS_STR_EMPTY)
+       string = g_string_append (string, "</A>");
+     if (iter_font != NULL) {
+       while (fonts != iter_font) {
+ 	string = g_string_append (string, "</FONT>");
+ 	fonts = g_slist_remove (fonts, fonts->data);
+       }
+     }
+ 
+     // Open tags
+     format_font = (SwfdecTextFormat *)fonts->data;
+     if (font && (format->font != format_font->font ||
+ 	 format->size != format_font->size ||
+ 	 format->color != format_font->color ||
+ 	 (int)format->letter_spacing != (int)format_font->letter_spacing ||
+ 	 format->kerning != format_font->kerning))
+     {
+       fonts = g_slist_prepend (fonts, format);
+ 
+       string = g_string_append (string, "<FONT");
+       // note we don't escape format->font, even thought it can have evil chars
+       if (format->font != format_font->font)
+ 	g_string_append_printf (string, " FACE=\"%s\"", format->font);
+       if (format->size != format_font->size)
+ 	g_string_append_printf (string, " SIZE=\"%i\"", format->size);
+       if (format->color != format_font->color)
+ 	g_string_append_printf (string, " COLOR=\"#%06X\"", format->color);
+       if ((int)format->letter_spacing != (int)format_font->letter_spacing) {
+ 	g_string_append_printf (string, " LETTERSPACING=\"%i\"",
+ 	    (int)format->letter_spacing);
+       }
+       if (format->kerning != format_font->kerning) {
+ 	g_string_append_printf (string, " KERNING=\"%i\"",
+ 	    (format->kerning ? 1 : 0));
+       }
+       string = g_string_append (string, ">");
+     }
+     if (format->url != SWFDEC_AS_STR_EMPTY) {
+       g_string_append_printf (string, "<A HREF=\"%s\" TARGET=\"%s\">",
+ 	  format->url, format->target);
+     }
+     if (format->bold)
+       string = g_string_append (string, "<B>");
+     if (format->italic)
+       string = g_string_append (string, "<I>");
+     if (format->underline)
+       string = g_string_append (string, "<U>");
+   }
+ 
+   escaped = swfdec_xml_escape_len (text->input->str + index_,
+       end_index - index_);
+   string = g_string_append (string, escaped);
+   g_free (escaped);
+ 
+   if (format->underline)
+     string = g_string_append (string, "</U>");
+   if (format->italic)
+     string = g_string_append (string, "</I>");
+   if (format->bold)
+     string = g_string_append (string, "</B>");
+   if (format->url != SWFDEC_AS_STR_EMPTY)
+     string = g_string_append (string, "</A>");
+   for (iter = fonts; iter != NULL; iter = iter->next)
+     string = g_string_append (string, "</FONT>");
+   g_slist_free (fonts);
+   if (bullet) {
+     string = g_string_append (string, "</LI>");
+   } else {
+     string = g_string_append (string, "</P>");
+   }
+   if (textformat)
+     string = g_string_append (string, "</TEXTFORMAT>");
+ 
+   return string;
+ }
+ 
+ const char *
+ swfdec_text_field_movie_get_html_text (SwfdecTextFieldMovie *text)
+ {
+   const char *p, *end;
+   GString *string;
+ 
+   g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text),
+       SWFDEC_AS_STR_EMPTY);
+ 
+   if (text->input == NULL)
+     return SWFDEC_AS_STR_EMPTY;
+ 
+   string = g_string_new ("");
+ 
+   p = text->input->str;
+   while (*p != '\0') {
+     end = strpbrk (p, "\r\n");
+     if (end == NULL)
+       end = strchr (p, '\0');
+ 
+     string = swfdec_text_field_movie_html_text_append_paragraph (text, string,
+ 	p - text->input->str, end - text->input->str);
+ 
+     p = end;
+     if (*p != '\0') p++;
+   }
+ 
+   return swfdec_as_context_give_string (SWFDEC_AS_OBJECT (text)->context,
+       g_string_free (string, FALSE));
+ }
commit c4d483472b53a9fb364a9825c1ff8ab8a98c2c76
Merge: b8e9f83... 8f85e93...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Jan 9 14:20:12 2008 +0200

    Merge branch 'master' into selection

commit b8e9f83181c4050745d6e2585e76ea983ec12f93
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 18:07:07 2007 +0200

    Fix wrong function name in documentation comment

diff --git a/libswfdec/swfdec_as_types.c b/libswfdec/swfdec_as_types.c
index d4bbfb9..4750798 100644
--- a/libswfdec/swfdec_as_types.c
+++ b/libswfdec/swfdec_as_types.c
@@ -214,7 +214,7 @@ swfdec_as_str_concat (SwfdecAsContext *cx, const char * s1, const char *s2)
 }
 
 /**
- * swfdec_as_double_to_string:
+ * swfdec_as_integer_to_string:
  * @context: a #SwfdecAsContext
  * @i: an integer that fits into 32 bits
  *
commit ebb6dc1500759a174441f9952cfe0ee396e766eb
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 16:43:37 2007 +0200

    Add FIXME comment: new load object request should overwrite the old one in v8

diff --git a/libswfdec/swfdec_load_object.c b/libswfdec/swfdec_load_object.c
index 5b659f2..39b4f67 100644
--- a/libswfdec/swfdec_load_object.c
+++ b/libswfdec/swfdec_load_object.c
@@ -208,6 +208,8 @@ swfdec_load_object_new (SwfdecAsObject *target, const char *url,
   g_return_val_if_fail (url != NULL, NULL);
   g_return_val_if_fail (finish != NULL, NULL);
 
+  // FIXME: new load object request should overwrite the old one in version 8
+
   if (!swfdec_as_context_use_mem (target->context, sizeof (SwfdecLoadObject)))
     return NULL;
   load_object = SWFDEC_LOAD_OBJECT (g_object_new (
commit 29ac87636842cef54ebd7542c9e1a734dfbf6902
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 16:24:48 2007 +0200

    Add parsecolor and parsecssfontfamily CSS tests for version 8 too

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 9634405..056e655 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -2640,6 +2640,8 @@ EXTRA_DIST = \
 	stylesheet-parsecolor-6.swf.trace \
 	stylesheet-parsecolor-7.swf \
 	stylesheet-parsecolor-7.swf.trace \
+	stylesheet-parsecolor-8.swf \
+	stylesheet-parsecolor-8.swf.trace \
 	stylesheet-parsecssfontfamily.as \
 	stylesheet-parsecssfontfamily-5.swf \
 	stylesheet-parsecssfontfamily-5.swf.trace \
@@ -2647,6 +2649,8 @@ EXTRA_DIST = \
 	stylesheet-parsecssfontfamily-6.swf.trace \
 	stylesheet-parsecssfontfamily-7.swf \
 	stylesheet-parsecssfontfamily-7.swf.trace \
+	stylesheet-parsecssfontfamily-8.swf \
+	stylesheet-parsecssfontfamily-8.swf.trace \
 	stylesheet-properties.as \
 	stylesheet-properties-5.swf \
 	stylesheet-properties-5.swf.trace \
diff --git a/test/trace/stylesheet-parsecolor-5.swf b/test/trace/stylesheet-parsecolor-5.swf
index 4c94d68..05e5d89 100644
Binary files a/test/trace/stylesheet-parsecolor-5.swf and b/test/trace/stylesheet-parsecolor-5.swf differ
diff --git a/test/trace/stylesheet-parsecolor-5.swf.trace b/test/trace/stylesheet-parsecolor-5.swf.trace
index b3c1789..6e742b3 100644
--- a/test/trace/stylesheet-parsecolor-5.swf.trace
+++ b/test/trace/stylesheet-parsecolor-5.swf.trace
@@ -24,16 +24,17 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
+22: toString!
 23: valueOf!
-23: toString!
 24: valueOf!
 24: toString!
 25: valueOf!
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 Testing parseColor:
 (no param) = 
 (0)  (undefined) = 
@@ -56,40 +57,42 @@ Testing parseColor:
 (17) Hello World! (string) = 
 (18) true (string) = 
 (19) _level0 (string) = 
-(20) _level0 (movieclip) = 
-(21) [object Object] (object) = 
-(22)  (undefined) = 
-(23) [type Object] (object) = 
+(20) äöü (string) = 
+(21) _level0 (movieclip) = 
+(22) [object Object] (object) = 
+(23)  (undefined) = 
 (24) [type Object] (object) = 
-(25) [object Object] (object) = 
-(26)  (object) = 
+(25) [type Object] (object) = 
+(26) [object Object] (object) = 
 (27)  (object) = 
-(28) null (object) = 
-(29) true (object) = 
-(30) false (object) = 
-(31) 0 (object) = 
-(32) 1 (object) = 
-(33) 0.5 (object) = 
-(34) -1 (object) = 
-(35) -0.5 (object) = 
-(36) Infinity (object) = 
-(37) -Infinity (object) = 
-(38) NaN (object) = 
-(39)  (object) = 
-(40) 0 (object) = 
-(41) -0 (object) = 
-(42) 0.0 (object) = 
-(43) 1 (object) = 
-(44) Hello World! (object) = 
-(45) true (object) = 
-(46) _level0 (object) = 
+(28)  (object) = 
+(29) null (object) = 
+(30) true (object) = 
+(31) false (object) = 
+(32) 0 (object) = 
+(33) 1 (object) = 
+(34) 0.5 (object) = 
+(35) -1 (object) = 
+(36) -0.5 (object) = 
+(37) Infinity (object) = 
+(38) -Infinity (object) = 
+(39) NaN (object) = 
+(40)  (object) = 
+(41) 0 (object) = 
+(42) -0 (object) = 
+(43) 0.0 (object) = 
+(44) 1 (object) = 
+(45) Hello World! (object) = 
+(46) true (object) = 
 (47) _level0 (object) = 
-(48) [type Object] (object) = 
-(49)  (object) = 
+(48) äöü (object) = 
+(49) _level0 (object) = 
 (50) [type Object] (object) = 
-(51) [type Object] (object) = 
+(51)  (object) = 
 (52) [type Object] (object) = 
 (53) [type Object] (object) = 
+(54) [type Object] (object) = 
+(55) [type Object] (object) = 
 #FF0000 = 
 #abcabc = 
 #FFF = 
diff --git a/test/trace/stylesheet-parsecolor-6.swf b/test/trace/stylesheet-parsecolor-6.swf
index f461fec..9eb3c6f 100644
Binary files a/test/trace/stylesheet-parsecolor-6.swf and b/test/trace/stylesheet-parsecolor-6.swf differ
diff --git a/test/trace/stylesheet-parsecolor-6.swf.trace b/test/trace/stylesheet-parsecolor-6.swf.trace
index cf6e101..b20264b 100644
--- a/test/trace/stylesheet-parsecolor-6.swf.trace
+++ b/test/trace/stylesheet-parsecolor-6.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 Testing parseColor:
 (no param) = 
 (0)  (undefined) = 
@@ -57,40 +58,42 @@ Testing parseColor:
 (17) Hello World! (string) = 
 (18) true (string) = 
 (19) _level0 (string) = 
-(20) _level0 (movieclip) = 
-(21) [object Object] (object) = 
-(22) [type Function] (function) = 
-(23) [type Object] (object) = 
+(20) äöü (string) = 
+(21) _level0 (movieclip) = 
+(22) [object Object] (object) = 
+(23) [type Function] (function) = 
 (24) [type Object] (object) = 
-(25) [object Object] (object) = 
-(26)  (object) = 
+(25) [type Object] (object) = 
+(26) [object Object] (object) = 
 (27)  (object) = 
-(28) null (object) = 
-(29) true (object) = 
-(30) false (object) = 
-(31) 0 (object) = 
-(32) 1 (object) = 
-(33) 0.5 (object) = 
-(34) -1 (object) = 
-(35) -0.5 (object) = 
-(36) Infinity (object) = 
-(37) -Infinity (object) = 
-(38) NaN (object) = 
-(39)  (object) = 
-(40) 0 (object) = 
-(41) -0 (object) = 
-(42) 0.0 (object) = 
-(43) 1 (object) = 
-(44) Hello World! (object) = 
-(45) true (object) = 
-(46) _level0 (object) = 
+(28)  (object) = 
+(29) null (object) = 
+(30) true (object) = 
+(31) false (object) = 
+(32) 0 (object) = 
+(33) 1 (object) = 
+(34) 0.5 (object) = 
+(35) -1 (object) = 
+(36) -0.5 (object) = 
+(37) Infinity (object) = 
+(38) -Infinity (object) = 
+(39) NaN (object) = 
+(40)  (object) = 
+(41) 0 (object) = 
+(42) -0 (object) = 
+(43) 0.0 (object) = 
+(44) 1 (object) = 
+(45) Hello World! (object) = 
+(46) true (object) = 
 (47) _level0 (object) = 
-(48) [type Object] (object) = 
-(49) [type Object] (object) = 
+(48) äöü (object) = 
+(49) _level0 (object) = 
 (50) [type Object] (object) = 
 (51) [type Object] (object) = 
 (52) [type Object] (object) = 
 (53) [type Object] (object) = 
+(54) [type Object] (object) = 
+(55) [type Object] (object) = 
 #FF0000 = 
 #abcabc = 
 #FFF = 
diff --git a/test/trace/stylesheet-parsecolor-7.swf b/test/trace/stylesheet-parsecolor-7.swf
index 6c219a6..f58168c 100644
Binary files a/test/trace/stylesheet-parsecolor-7.swf and b/test/trace/stylesheet-parsecolor-7.swf differ
diff --git a/test/trace/stylesheet-parsecolor-7.swf.trace b/test/trace/stylesheet-parsecolor-7.swf.trace
index 2f04b73..1f42a06 100644
--- a/test/trace/stylesheet-parsecolor-7.swf.trace
+++ b/test/trace/stylesheet-parsecolor-7.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 Testing parseColor:
 (no param) = null
 (0) undefined (undefined) = null
@@ -57,69 +58,72 @@ Testing parseColor:
 (17) Hello World! (string) = null
 (18) true (string) = null
 (19) _level0 (string) = null
-(20) _level0 (movieclip) = null
-(21) [object Object] (object) = null
-(22) [type Function] (function) = null
+(20) äöü (string) = null
+(21) _level0 (movieclip) = null
+(22) [object Object] (object) = null
+(23) [type Function] (function) = null
 toString called
-(23) [type Object] (object) = null
-toString called with 
 (24) [type Object] (object) = null
-(25) [object Object] (object) = null
-(26) undefined (object) = null
-0: toString!
+toString called with 
+(25) [type Object] (object) = null
+(26) [object Object] (object) = null
 (27) undefined (object) = null
+0: toString!
+(28) undefined (object) = null
 1: toString!
-(28) null (object) = null
+(29) null (object) = null
 2: toString!
-(29) true (object) = null
+(30) true (object) = null
 3: toString!
-(30) false (object) = null
+(31) false (object) = null
 4: toString!
-(31) 0 (object) = null
+(32) 0 (object) = null
 5: toString!
-(32) 1 (object) = null
+(33) 1 (object) = null
 6: toString!
-(33) 0.5 (object) = null
+(34) 0.5 (object) = null
 7: toString!
-(34) -1 (object) = null
+(35) -1 (object) = null
 8: toString!
-(35) -0.5 (object) = null
+(36) -0.5 (object) = null
 9: toString!
-(36) Infinity (object) = null
+(37) Infinity (object) = null
 10: toString!
-(37) -Infinity (object) = null
+(38) -Infinity (object) = null
 11: toString!
-(38) NaN (object) = null
+(39) NaN (object) = null
 12: toString!
-(39)  (object) = null
+(40)  (object) = null
 13: toString!
-(40) 0 (object) = null
+(41) 0 (object) = null
 14: toString!
-(41) -0 (object) = null
+(42) -0 (object) = null
 15: toString!
-(42) 0.0 (object) = null
+(43) 0.0 (object) = null
 16: toString!
-(43) 1 (object) = null
+(44) 1 (object) = null
 17: toString!
-(44) Hello World! (object) = null
+(45) Hello World! (object) = null
 18: toString!
-(45) true (object) = null
+(46) true (object) = null
 19: toString!
-(46) _level0 (object) = null
-20: toString!
 (47) _level0 (object) = null
+20: toString!
+(48) äöü (object) = null
 21: toString!
-(48) [type Object] (object) = null
+(49) _level0 (object) = null
 22: toString!
-(49) [type Object] (object) = null
-23: toString!
 (50) [type Object] (object) = null
-24: toString!
+23: toString!
 (51) [type Object] (object) = null
-25: toString!
+24: toString!
 (52) [type Object] (object) = null
-26: toString!
+25: toString!
 (53) [type Object] (object) = null
+26: toString!
+(54) [type Object] (object) = null
+27: toString!
+(55) [type Object] (object) = null
 #FF0000 = 16711680
 #abcabc = 11258556
 #FFF = null
diff --git a/test/trace/stylesheet-parsecolor-8.swf b/test/trace/stylesheet-parsecolor-8.swf
new file mode 100644
index 0000000..235917c
Binary files /dev/null and b/test/trace/stylesheet-parsecolor-8.swf differ
diff --git a/test/trace/stylesheet-parsecolor-8.swf.trace b/test/trace/stylesheet-parsecolor-8.swf.trace
new file mode 100644
index 0000000..1f42a06
--- /dev/null
+++ b/test/trace/stylesheet-parsecolor-8.swf.trace
@@ -0,0 +1,136 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+Testing parseColor:
+(no param) = null
+(0) undefined (undefined) = null
+(1) null (null) = null
+(2) true (boolean) = null
+(3) false (boolean) = null
+(4) 0 (number) = null
+(5) 1 (number) = null
+(6) 0.5 (number) = null
+(7) -1 (number) = null
+(8) -0.5 (number) = null
+(9) Infinity (number) = null
+(10) -Infinity (number) = null
+(11) NaN (number) = null
+(12)  (string) = null
+(13) 0 (string) = null
+(14) -0 (string) = null
+(15) 0.0 (string) = null
+(16) 1 (string) = null
+(17) Hello World! (string) = null
+(18) true (string) = null
+(19) _level0 (string) = null
+(20) äöü (string) = null
+(21) _level0 (movieclip) = null
+(22) [object Object] (object) = null
+(23) [type Function] (function) = null
+toString called
+(24) [type Object] (object) = null
+toString called with 
+(25) [type Object] (object) = null
+(26) [object Object] (object) = null
+(27) undefined (object) = null
+0: toString!
+(28) undefined (object) = null
+1: toString!
+(29) null (object) = null
+2: toString!
+(30) true (object) = null
+3: toString!
+(31) false (object) = null
+4: toString!
+(32) 0 (object) = null
+5: toString!
+(33) 1 (object) = null
+6: toString!
+(34) 0.5 (object) = null
+7: toString!
+(35) -1 (object) = null
+8: toString!
+(36) -0.5 (object) = null
+9: toString!
+(37) Infinity (object) = null
+10: toString!
+(38) -Infinity (object) = null
+11: toString!
+(39) NaN (object) = null
+12: toString!
+(40)  (object) = null
+13: toString!
+(41) 0 (object) = null
+14: toString!
+(42) -0 (object) = null
+15: toString!
+(43) 0.0 (object) = null
+16: toString!
+(44) 1 (object) = null
+17: toString!
+(45) Hello World! (object) = null
+18: toString!
+(46) true (object) = null
+19: toString!
+(47) _level0 (object) = null
+20: toString!
+(48) äöü (object) = null
+21: toString!
+(49) _level0 (object) = null
+22: toString!
+(50) [type Object] (object) = null
+23: toString!
+(51) [type Object] (object) = null
+24: toString!
+(52) [type Object] (object) = null
+25: toString!
+(53) [type Object] (object) = null
+26: toString!
+(54) [type Object] (object) = null
+27: toString!
+(55) [type Object] (object) = null
+#FF0000 = 16711680
+#abcabc = 11258556
+#FFF = null
+#asdefw = null
+#FFXXFF = null
+ #FF00FF = null
+#FF00FF  = null
+xFF00FF = null
+white = null
+16711935
diff --git a/test/trace/stylesheet-parsecssfontfamily-5.swf b/test/trace/stylesheet-parsecssfontfamily-5.swf
index 5d414b1..901c982 100644
Binary files a/test/trace/stylesheet-parsecssfontfamily-5.swf and b/test/trace/stylesheet-parsecssfontfamily-5.swf differ
diff --git a/test/trace/stylesheet-parsecssfontfamily-5.swf.trace b/test/trace/stylesheet-parsecssfontfamily-5.swf.trace
index e08c724..6e1dd50 100644
--- a/test/trace/stylesheet-parsecssfontfamily-5.swf.trace
+++ b/test/trace/stylesheet-parsecssfontfamily-5.swf.trace
@@ -24,16 +24,17 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
+22: toString!
 23: valueOf!
-23: toString!
 24: valueOf!
 24: toString!
 25: valueOf!
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 Testing parseCSSFontFamily:
 (0)  (undefined) = 
 (1) null (null) = 
@@ -55,40 +56,42 @@ Testing parseCSSFontFamily:
 (17) Hello World! (string) = 
 (18) true (string) = 
 (19) _level0 (string) = 
-(20) _level0 (movieclip) = 
-(21) [object Object] (object) = 
-(22)  (undefined) = 
-(23) [type Object] (object) = 
+(20) äöü (string) = 
+(21) _level0 (movieclip) = 
+(22) [object Object] (object) = 
+(23)  (undefined) = 
 (24) [type Object] (object) = 
-(25) [object Object] (object) = 
-(26)  (object) = 
+(25) [type Object] (object) = 
+(26) [object Object] (object) = 
 (27)  (object) = 
-(28) null (object) = 
-(29) true (object) = 
-(30) false (object) = 
-(31) 0 (object) = 
-(32) 1 (object) = 
-(33) 0.5 (object) = 
-(34) -1 (object) = 
-(35) -0.5 (object) = 
-(36) Infinity (object) = 
-(37) -Infinity (object) = 
-(38) NaN (object) = 
-(39)  (object) = 
-(40) 0 (object) = 
-(41) -0 (object) = 
-(42) 0.0 (object) = 
-(43) 1 (object) = 
-(44) Hello World! (object) = 
-(45) true (object) = 
-(46) _level0 (object) = 
+(28)  (object) = 
+(29) null (object) = 
+(30) true (object) = 
+(31) false (object) = 
+(32) 0 (object) = 
+(33) 1 (object) = 
+(34) 0.5 (object) = 
+(35) -1 (object) = 
+(36) -0.5 (object) = 
+(37) Infinity (object) = 
+(38) -Infinity (object) = 
+(39) NaN (object) = 
+(40)  (object) = 
+(41) 0 (object) = 
+(42) -0 (object) = 
+(43) 0.0 (object) = 
+(44) 1 (object) = 
+(45) Hello World! (object) = 
+(46) true (object) = 
 (47) _level0 (object) = 
-(48) [type Object] (object) = 
-(49)  (object) = 
+(48) äöü (object) = 
+(49) _level0 (object) = 
 (50) [type Object] (object) = 
-(51) [type Object] (object) = 
+(51)  (object) = 
 (52) [type Object] (object) = 
 (53) [type Object] (object) = 
+(54) [type Object] (object) = 
+(55) [type Object] (object) = 
 mono = 
 sans-serif = 
 serif = 
diff --git a/test/trace/stylesheet-parsecssfontfamily-6.swf b/test/trace/stylesheet-parsecssfontfamily-6.swf
index 2203527..0d9f7a1 100644
Binary files a/test/trace/stylesheet-parsecssfontfamily-6.swf and b/test/trace/stylesheet-parsecssfontfamily-6.swf differ
diff --git a/test/trace/stylesheet-parsecssfontfamily-6.swf.trace b/test/trace/stylesheet-parsecssfontfamily-6.swf.trace
index 86d7ebc..9139fe2 100644
--- a/test/trace/stylesheet-parsecssfontfamily-6.swf.trace
+++ b/test/trace/stylesheet-parsecssfontfamily-6.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 Testing parseCSSFontFamily:
 (0)  (undefined) = 
 (1) null (null) = 
@@ -56,40 +57,42 @@ Testing parseCSSFontFamily:
 (17) Hello World! (string) = 
 (18) true (string) = 
 (19) _level0 (string) = 
-(20) _level0 (movieclip) = 
-(21) [object Object] (object) = 
-(22) [type Function] (function) = 
-(23) [type Object] (object) = 
+(20) äöü (string) = 
+(21) _level0 (movieclip) = 
+(22) [object Object] (object) = 
+(23) [type Function] (function) = 
 (24) [type Object] (object) = 
-(25) [object Object] (object) = 
-(26)  (object) = 
+(25) [type Object] (object) = 
+(26) [object Object] (object) = 
 (27)  (object) = 
-(28) null (object) = 
-(29) true (object) = 
-(30) false (object) = 
-(31) 0 (object) = 
-(32) 1 (object) = 
-(33) 0.5 (object) = 
-(34) -1 (object) = 
-(35) -0.5 (object) = 
-(36) Infinity (object) = 
-(37) -Infinity (object) = 
-(38) NaN (object) = 
-(39)  (object) = 
-(40) 0 (object) = 
-(41) -0 (object) = 
-(42) 0.0 (object) = 
-(43) 1 (object) = 
-(44) Hello World! (object) = 
-(45) true (object) = 
-(46) _level0 (object) = 
+(28)  (object) = 
+(29) null (object) = 
+(30) true (object) = 
+(31) false (object) = 
+(32) 0 (object) = 
+(33) 1 (object) = 
+(34) 0.5 (object) = 
+(35) -1 (object) = 
+(36) -0.5 (object) = 
+(37) Infinity (object) = 
+(38) -Infinity (object) = 
+(39) NaN (object) = 
+(40)  (object) = 
+(41) 0 (object) = 
+(42) -0 (object) = 
+(43) 0.0 (object) = 
+(44) 1 (object) = 
+(45) Hello World! (object) = 
+(46) true (object) = 
 (47) _level0 (object) = 
-(48) [type Object] (object) = 
-(49) [type Object] (object) = 
+(48) äöü (object) = 
+(49) _level0 (object) = 
 (50) [type Object] (object) = 
 (51) [type Object] (object) = 
 (52) [type Object] (object) = 
 (53) [type Object] (object) = 
+(54) [type Object] (object) = 
+(55) [type Object] (object) = 
 mono = 
 sans-serif = 
 serif = 
diff --git a/test/trace/stylesheet-parsecssfontfamily-7.swf b/test/trace/stylesheet-parsecssfontfamily-7.swf
index 2fceb56..01a0e7f 100644
Binary files a/test/trace/stylesheet-parsecssfontfamily-7.swf and b/test/trace/stylesheet-parsecssfontfamily-7.swf differ
diff --git a/test/trace/stylesheet-parsecssfontfamily-7.swf.trace b/test/trace/stylesheet-parsecssfontfamily-7.swf.trace
index 2102a1d..7c41b08 100644
--- a/test/trace/stylesheet-parsecssfontfamily-7.swf.trace
+++ b/test/trace/stylesheet-parsecssfontfamily-7.swf.trace
@@ -24,7 +24,6 @@ valueOf called with
 19: valueOf!
 20: valueOf!
 21: valueOf!
-21: toString!
 22: valueOf!
 22: toString!
 23: valueOf!
@@ -35,6 +34,8 @@ valueOf called with
 25: toString!
 26: valueOf!
 26: toString!
+27: valueOf!
+27: toString!
 Testing parseCSSFontFamily:
 (0) undefined (undefined) = undefined
 (1) null (null) = null
@@ -56,69 +57,72 @@ Testing parseCSSFontFamily:
 (17) Hello World! (string) = Hello World!
 (18) true (string) = true
 (19) _level0 (string) = _level0
-(20) _level0 (movieclip) = _level0
-(21) [object Object] (object) = [object Object]
-(22) [type Function] (function) = [type Function]
+(20) äöü (string) = äöü
+(21) _level0 (movieclip) = _level0
+(22) [object Object] (object) = [object Object]
+(23) [type Function] (function) = [type Function]
 toString called
-(23) [type Object] (object) = [type Object]
-toString called with 
 (24) [type Object] (object) = [type Object]
-(25) [object Object] (object) = [object Object]
-(26) undefined (object) = [type Object]
-0: toString!
+toString called with 
+(25) [type Object] (object) = [type Object]
+(26) [object Object] (object) = [object Object]
 (27) undefined (object) = [type Object]
+0: toString!
+(28) undefined (object) = [type Object]
 1: toString!
-(28) null (object) = [type Object]
+(29) null (object) = [type Object]
 2: toString!
-(29) true (object) = [type Object]
+(30) true (object) = [type Object]
 3: toString!
-(30) false (object) = [type Object]
+(31) false (object) = [type Object]
 4: toString!
-(31) 0 (object) = [type Object]
+(32) 0 (object) = [type Object]
 5: toString!
-(32) 1 (object) = [type Object]
+(33) 1 (object) = [type Object]
 6: toString!
-(33) 0.5 (object) = [type Object]
+(34) 0.5 (object) = [type Object]
 7: toString!
-(34) -1 (object) = [type Object]
+(35) -1 (object) = [type Object]
 8: toString!
-(35) -0.5 (object) = [type Object]
+(36) -0.5 (object) = [type Object]
 9: toString!
-(36) Infinity (object) = [type Object]
+(37) Infinity (object) = [type Object]
 10: toString!
-(37) -Infinity (object) = [type Object]
+(38) -Infinity (object) = [type Object]
 11: toString!
-(38) NaN (object) = [type Object]
+(39) NaN (object) = [type Object]
 12: toString!
-(39)  (object) = 
+(40)  (object) = 
 13: toString!
-(40) 0 (object) = 0
+(41) 0 (object) = 0
 14: toString!
-(41) -0 (object) = -0
+(42) -0 (object) = -0
 15: toString!
-(42) 0.0 (object) = 0.0
+(43) 0.0 (object) = 0.0
 16: toString!
-(43) 1 (object) = 1
+(44) 1 (object) = 1
 17: toString!
-(44) Hello World! (object) = Hello World!
+(45) Hello World! (object) = Hello World!
 18: toString!
-(45) true (object) = true
+(46) true (object) = true
 19: toString!
-(46) _level0 (object) = _level0
+(47) _level0 (object) = _level0
 20: toString!
-(47) _level0 (object) = [type Object]
+(48) äöü (object) = äöü
 21: toString!
-(48) [type Object] (object) = [type Object]
+(49) _level0 (object) = [type Object]
 22: toString!
-(49) [type Object] (object) = [type Object]
-23: toString!
 (50) [type Object] (object) = [type Object]
-24: toString!
+23: toString!
 (51) [type Object] (object) = [type Object]
-25: toString!
+24: toString!
 (52) [type Object] (object) = [type Object]
-26: toString!
+25: toString!
 (53) [type Object] (object) = [type Object]
+26: toString!
+(54) [type Object] (object) = [type Object]
+27: toString!
+(55) [type Object] (object) = [type Object]
 mono = _typewriter
 sans-serif = _sans
 serif = _serif
diff --git a/test/trace/stylesheet-parsecssfontfamily-8.swf b/test/trace/stylesheet-parsecssfontfamily-8.swf
new file mode 100644
index 0000000..da449cc
Binary files /dev/null and b/test/trace/stylesheet-parsecssfontfamily-8.swf differ
diff --git a/test/trace/stylesheet-parsecssfontfamily-8.swf.trace b/test/trace/stylesheet-parsecssfontfamily-8.swf.trace
new file mode 100644
index 0000000..7c41b08
--- /dev/null
+++ b/test/trace/stylesheet-parsecssfontfamily-8.swf.trace
@@ -0,0 +1,132 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+Testing parseCSSFontFamily:
+(0) undefined (undefined) = undefined
+(1) null (null) = null
+(2) true (boolean) = true
+(3) false (boolean) = false
+(4) 0 (number) = 0
+(5) 1 (number) = 1
+(6) 0.5 (number) = 0.5
+(7) -1 (number) = -1
+(8) -0.5 (number) = -0.5
+(9) Infinity (number) = Infinity
+(10) -Infinity (number) = -Infinity
+(11) NaN (number) = NaN
+(12)  (string) = 
+(13) 0 (string) = 0
+(14) -0 (string) = -0
+(15) 0.0 (string) = 0.0
+(16) 1 (string) = 1
+(17) Hello World! (string) = Hello World!
+(18) true (string) = true
+(19) _level0 (string) = _level0
+(20) äöü (string) = äöü
+(21) _level0 (movieclip) = _level0
+(22) [object Object] (object) = [object Object]
+(23) [type Function] (function) = [type Function]
+toString called
+(24) [type Object] (object) = [type Object]
+toString called with 
+(25) [type Object] (object) = [type Object]
+(26) [object Object] (object) = [object Object]
+(27) undefined (object) = [type Object]
+0: toString!
+(28) undefined (object) = [type Object]
+1: toString!
+(29) null (object) = [type Object]
+2: toString!
+(30) true (object) = [type Object]
+3: toString!
+(31) false (object) = [type Object]
+4: toString!
+(32) 0 (object) = [type Object]
+5: toString!
+(33) 1 (object) = [type Object]
+6: toString!
+(34) 0.5 (object) = [type Object]
+7: toString!
+(35) -1 (object) = [type Object]
+8: toString!
+(36) -0.5 (object) = [type Object]
+9: toString!
+(37) Infinity (object) = [type Object]
+10: toString!
+(38) -Infinity (object) = [type Object]
+11: toString!
+(39) NaN (object) = [type Object]
+12: toString!
+(40)  (object) = 
+13: toString!
+(41) 0 (object) = 0
+14: toString!
+(42) -0 (object) = -0
+15: toString!
+(43) 0.0 (object) = 0.0
+16: toString!
+(44) 1 (object) = 1
+17: toString!
+(45) Hello World! (object) = Hello World!
+18: toString!
+(46) true (object) = true
+19: toString!
+(47) _level0 (object) = _level0
+20: toString!
+(48) äöü (object) = äöü
+21: toString!
+(49) _level0 (object) = [type Object]
+22: toString!
+(50) [type Object] (object) = [type Object]
+23: toString!
+(51) [type Object] (object) = [type Object]
+24: toString!
+(52) [type Object] (object) = [type Object]
+25: toString!
+(53) [type Object] (object) = [type Object]
+26: toString!
+(54) [type Object] (object) = [type Object]
+27: toString!
+(55) [type Object] (object) = [type Object]
+mono = _typewriter
+sans-serif = _sans
+serif = _serif
+mONo = _typewriter
+SANS-SERIF = _sans
+serif  = serif 
+_typewriter
commit cf382882c692b8ca7571657b4d05adc1e49dffb5
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 16:19:14 2007 +0200

    Allow empty CSS declarations in version 8. Add stylesheet-parse test for v8

diff --git a/libswfdec/swfdec_style_sheet.c b/libswfdec/swfdec_style_sheet.c
index d17768c..7ccd978 100644
--- a/libswfdec/swfdec_style_sheet.c
+++ b/libswfdec/swfdec_style_sheet.c
@@ -136,7 +136,8 @@ swfdec_style_sheet_parse_selectors (SwfdecAsContext *cx, const char *p,
   p = p + strspn (p, " \t\r\n");
 
   // special case: don't allow empty declarations if not totally empty
-  if (*(p-1) != '{' && (*p == '\0' || *p == '}'))
+  // except in version 8
+  if (cx->version < 8 && (*(p-1) != '{' && (*p == '\0' || *p == '}')))
     return NULL;
 
   return p;
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index ed2a456..9634405 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -2631,6 +2631,8 @@ EXTRA_DIST = \
 	stylesheet-parse-6.swf.trace \
 	stylesheet-parse-7.swf \
 	stylesheet-parse-7.swf.trace \
+	stylesheet-parse-8.swf \
+	stylesheet-parse-8.swf.trace \
 	stylesheet-parsecolor.as \
 	stylesheet-parsecolor-5.swf \
 	stylesheet-parsecolor-5.swf.trace \
diff --git a/test/trace/stylesheet-parse-8.swf b/test/trace/stylesheet-parse-8.swf
new file mode 100644
index 0000000..912b32c
Binary files /dev/null and b/test/trace/stylesheet-parse-8.swf differ
diff --git a/test/trace/stylesheet-parse-8.swf.trace b/test/trace/stylesheet-parse-8.swf.trace
new file mode 100644
index 0000000..ee95b23
--- /dev/null
+++ b/test/trace/stylesheet-parse-8.swf.trace
@@ -0,0 +1,132 @@
+Parsing: 'a { a: 1; b: 2; }'
+true
+* 'a'
+a: '1'
+b: '2'
+
+Parsing: 'a { a: 1; b: 2; } a { a: 0; c:3; }'
+true
+* 'a'
+a: '0'
+c: '3'
+
+Parsing: 'a, a { a: 1; }'
+true
+* 'a'
+a: '1'
+
+Parsing: ',a,, ,, c,, { a: 1; }, b, ,,{ b: 2; }'
+true
+* 'a'
+a: '1'
+* 'b'
+b: '2'
+* 'c'
+a: '1'
+
+Parsing: 'a { a: 1   ; }'
+true
+* 'a'
+a: '1   '
+* 'b'
+b: '2'
+* 'c'
+a: '1'
+
+Parsing: 'a { a: 1 } b { b: 2   } c { c: 3}'
+true
+* 'a'
+a: '1 '
+* 'b'
+b: '2   '
+* 'c'
+c: '3'
+
+Parsing: 'a { a: 1; b: 2;; }'
+false
+* 'a'
+a: '1 '
+* 'b'
+b: '2   '
+* 'c'
+c: '3'
+
+Parsing: 'a { a: 1; b: 2; '
+true
+* 'a'
+a: '1'
+b: '2'
+* 'b'
+b: '2   '
+* 'c'
+c: '3'
+
+Parsing: 'a { a: 1; b: 2  '
+false
+* 'a'
+a: '1'
+b: '2'
+* 'b'
+b: '2   '
+* 'c'
+c: '3'
+
+Parsing: 'a , b  { a: 1; }'
+true
+* 'a'
+a: '1'
+* 'b'
+a: '1'
+* 'c'
+c: '3'
+
+Parsing: 'a b { a: 1; }'
+false
+* 'a'
+a: '1'
+* 'b'
+a: '1'
+* 'c'
+c: '3'
+
+Parsing: 'a b, c { a: 1; }'
+false
+* 'a'
+a: '1'
+* 'b'
+a: '1'
+* 'c'
+c: '3'
+
+Parsing: 'a { a: 1 } a {}'
+true
+* 'a'
+* 'b'
+a: '1'
+* 'c'
+c: '3'
+
+Parsing: 'a { a: 1 } a { }'
+true
+* 'a'
+* 'b'
+a: '1'
+* 'c'
+c: '3'
+
+Parsing: 'a { a-a: 1; b--b: 2; c-C: 3; d-+: 4; e-: 5; }'
+true
+* 'a'
+aA: '1'
+b-b: '2'
+cC: '3'
+d+: '4'
+e-: '5'
+* 'b'
+a: '1'
+* 'c'
+c: '3'
+
+Test on non-stylesheet object
+true
+1
commit 67fab3aabad4dac54681b2bf8a91c907289fae95
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 14:07:14 2007 +0200

    Fix createTextField's handling of x and y coordinates, fixes rotating at least

diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 33578b3..c301349 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -1328,12 +1328,10 @@ swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
   edittext->indent = 0;
   edittext->leading = 0;
 
-  SWFDEC_GRAPHIC (edittext)->extents.x0 = SWFDEC_DOUBLE_TO_TWIPS (x);
-  SWFDEC_GRAPHIC (edittext)->extents.x1 =
-    SWFDEC_GRAPHIC (edittext)->extents.x0 + SWFDEC_DOUBLE_TO_TWIPS (width);
-  SWFDEC_GRAPHIC (edittext)->extents.y0 = SWFDEC_DOUBLE_TO_TWIPS (y);
-  SWFDEC_GRAPHIC (edittext)->extents.y1 =
-    SWFDEC_GRAPHIC (edittext)->extents.y0 + SWFDEC_DOUBLE_TO_TWIPS (height);
+  SWFDEC_GRAPHIC (edittext)->extents.x0 = 0;
+  SWFDEC_GRAPHIC (edittext)->extents.x1 = SWFDEC_DOUBLE_TO_TWIPS (width);
+  SWFDEC_GRAPHIC (edittext)->extents.y0 = 0;
+  SWFDEC_GRAPHIC (edittext)->extents.y1 = SWFDEC_DOUBLE_TO_TWIPS (height);
 
   movie = swfdec_movie_find (parent, depth);
   if (movie)
@@ -1344,6 +1342,11 @@ swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
   g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
   g_object_unref (edittext);
   swfdec_movie_initialize (movie);
+
+  movie->matrix.x0 = SWFDEC_DOUBLE_TO_TWIPS (x);
+  movie->matrix.y0 = SWFDEC_DOUBLE_TO_TWIPS (y);
+  movie->modified = TRUE;
+
   swfdec_movie_update (movie);
 
   swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
commit cc94bf36adba9995af6e262dbd7a7b99cad09aec
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 12:17:18 2007 +0200

    Oops, managed to change update_extents instead of invalidate earlier

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 8cb635a..365bb23 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -44,8 +44,15 @@ static void
 swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
     SwfdecRect *extents)
 {
+  swfdec_rect_union (extents, extents,
+      &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
+}
+
+static void
+swfdec_text_field_movie_invalidate (SwfdecMovie *movie, const cairo_matrix_t *matrix, gboolean last)
+{
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-  SwfdecRect extended;
+  SwfdecRect rect, extended;
 
   extended = SWFDEC_GRAPHIC (text->text)->extents;
 
@@ -55,17 +62,9 @@ swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
     extended.y1 += SWFDEC_TWIPS_TO_DOUBLE (1);
   }
 
-  swfdec_rect_union (extents, extents, &extended);
-}
-
-static void
-swfdec_text_field_movie_invalidate (SwfdecMovie *movie, const cairo_matrix_t *matrix, gboolean last)
-{
-  SwfdecRect rect;
-  
-  swfdec_rect_transform (&rect, 
-    &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents, matrix);
-  swfdec_player_invalidate (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (movie)->context), &rect);
+  swfdec_rect_transform (&rect, &extended, matrix);
+  swfdec_player_invalidate (
+      SWFDEC_PLAYER (SWFDEC_AS_OBJECT (movie)->context), &rect);
 }
 
 static void
commit f03d1a42c04733369f876790b35369485b87a740
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 11:20:50 2007 +0200

    Enable testing for border in text-field-empty image test

diff --git a/test/image/text-field-empty-6.swf b/test/image/text-field-empty-6.swf
index 274518a..b81607b 100644
Binary files a/test/image/text-field-empty-6.swf and b/test/image/text-field-empty-6.swf differ
diff --git a/test/image/text-field-empty-6.swf.png b/test/image/text-field-empty-6.swf.png
index 27310dd..39a0319 100644
Binary files a/test/image/text-field-empty-6.swf.png and b/test/image/text-field-empty-6.swf.png differ
diff --git a/test/image/text-field-empty-7.swf b/test/image/text-field-empty-7.swf
index cdfbd91..845d93e 100644
Binary files a/test/image/text-field-empty-7.swf and b/test/image/text-field-empty-7.swf differ
diff --git a/test/image/text-field-empty-7.swf.png b/test/image/text-field-empty-7.swf.png
index 27310dd..459b329 100644
Binary files a/test/image/text-field-empty-7.swf.png and b/test/image/text-field-empty-7.swf.png differ
diff --git a/test/image/text-field-empty-8.swf b/test/image/text-field-empty-8.swf
index 7f0bdac..421efd3 100644
Binary files a/test/image/text-field-empty-8.swf and b/test/image/text-field-empty-8.swf differ
diff --git a/test/image/text-field-empty-8.swf.png b/test/image/text-field-empty-8.swf.png
index 27310dd..d6d8a1e 100644
Binary files a/test/image/text-field-empty-8.swf.png and b/test/image/text-field-empty-8.swf.png differ
diff --git a/test/image/text-field-empty.as b/test/image/text-field-empty.as
index b4b4fce..fb27708 100644
--- a/test/image/text-field-empty.as
+++ b/test/image/text-field-empty.as
@@ -7,9 +7,8 @@ t1.backgroundColor = 0x00FF00;
 
 this.createTextField ("t2", 1, 45, 45, 95, 95);
 
-// FIXME: we currently render right and bottom border one pixel too early
-//t2.border = true;
-//t2.borderColor = 0xFF0000;
+t2.border = true;
+t2.borderColor = 0xFF0000;
 t2.background = true;
 t2.backgroundColor = 0x0000FF;
 
commit 9692b551894ab2e7579e1a033f94543e6c381189
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 10:49:20 2007 +0200

    Merge fix to swfdec_player_do_mouse_move

diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c
index 3b0eeae..1ec62f1 100644
--- a/libswfdec/swfdec_player.c
+++ b/libswfdec/swfdec_player.c
@@ -1118,11 +1118,11 @@ swfdec_player_do_mouse_move (SwfdecPlayer *player, double x, double y)
   swfdec_player_grab_mouse_movie (player);
   swfdec_player_update_drag_movie (player);
 
-  if (player->mouse_grab) {
-    SwfdecMovieClass *klass = SWFDEC_MOVIE_GET_CLASS (player->mouse_grab);
+  if (priv->mouse_grab) {
+    SwfdecMovieClass *klass = SWFDEC_MOVIE_GET_CLASS (priv->mouse_grab);
     if (klass->mouse_move) {
-      swfdec_movie_get_mouse (player->mouse_grab, &x, &y);
-      klass->mouse_move (player->mouse_grab, x, y);
+      swfdec_movie_get_mouse (priv->mouse_grab, &x, &y);
+      klass->mouse_move (priv->mouse_grab, x, y);
     }
   }
 
commit 34431fde9fe543d6db48816f7f15468cca9cb62f
Merge: 6bc7cea... 75044ce...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 10:17:14 2007 +0200

    Merge branch 'master' into selection

commit 6bc7ceac9ce0557c27065124035c998b0dd4dba1
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Dec 19 10:13:07 2007 +0200

    Make text field's xy_to_index work right even when text field is not at 0,0

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 130ffdf..efd329f 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -1361,8 +1361,8 @@ swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
   if (layouts[0].layout == NULL)
     return FALSE;
 
-  layout_y = y - EXTRA_MARGIN;
-  layout_x = x - EXTRA_MARGIN;
+  layout_y = y - EXTRA_MARGIN - SWFDEC_GRAPHIC (text->text)->extents.y0;
+  layout_x = x - EXTRA_MARGIN - SWFDEC_GRAPHIC (text->text)->extents.x0;
 
   // take scrolling into account
   swfdec_text_field_movie_line_position (layouts,
commit 9605b6954af7325ea2d23889f66cd2064ba9d7f3
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 23:25:29 2007 +0200

    Fixes to text field's border drawing

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index e2ad176..130ffdf 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -44,8 +44,18 @@ static void
 swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
     SwfdecRect *extents)
 {
-  swfdec_rect_union (extents, extents,
-      &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  SwfdecRect extended;
+
+  extended = SWFDEC_GRAPHIC (text->text)->extents;
+
+  // border is drawn partly outside the extents
+  if (text->text->border) {
+    extended.x1 += SWFDEC_TWIPS_TO_DOUBLE (1);
+    extended.y1 += SWFDEC_TWIPS_TO_DOUBLE (1);
+  }
+
+  swfdec_rect_union (extents, extents, &extended);
 }
 
 static void
@@ -819,10 +829,6 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
 
   swfdec_rect_intersect (&limit, &movie->original_extents, inval);
 
-  cairo_rectangle (cr, limit.x0, limit.y0, limit.x1 - limit.x0,
-      limit.y1 - limit.y0);
-  cairo_clip (cr);
-
   if (text->background) {
     cairo_rectangle (cr, limit.x0, limit.y0, limit.x1 - limit.x0,
 	limit.y1 - limit.y0);
@@ -833,13 +839,13 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
   }
 
   if (text->border) {
-    // FIXME: border should be partly outside the extents and should not be
-    // scaled, but always be 1 pixel width
+    // FIXME: should not be scaled, but always be 1 pixel width
+    // TODO: should clip before to make things faster?
     cairo_rectangle (cr, movie->original_extents.x0 +
-	SWFDEC_DOUBLE_TO_TWIPS (1), movie->original_extents.y0,
-	movie->original_extents.x1 - movie->original_extents.x0 -
-	SWFDEC_DOUBLE_TO_TWIPS (1), movie->original_extents.y1 -
-	movie->original_extents.y0 - SWFDEC_DOUBLE_TO_TWIPS (1));
+	SWFDEC_DOUBLE_TO_TWIPS (0.5), movie->original_extents.y0 +
+	SWFDEC_DOUBLE_TO_TWIPS (0.5),
+	movie->original_extents.x1 - movie->original_extents.x0,
+	movie->original_extents.y1 - movie->original_extents.y0);
     color = swfdec_color_apply_transform (text_movie->border_color, trans);
     // always use full alpha
     swfdec_color_set_source (cr, color | SWFDEC_COLOR_COMBINE (0, 0, 0, 255));
@@ -849,6 +855,10 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
     cairo_stroke (cr);
   }
 
+  cairo_rectangle (cr, limit.x0, limit.y0, limit.x1 - limit.x0,
+      limit.y1 - limit.y0);
+  cairo_clip (cr);
+
   layouts = swfdec_text_field_movie_get_layouts (text_movie, NULL, cr,
       paragraphs, trans);
 
commit 6b65ce0bcdaaeb483385b1cb6147ce5c19603f31
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 22:56:47 2007 +0200

    Fix handling of line ending new lines that I broke with the shape system

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 19e4394..e2ad176 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -542,6 +542,7 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 
       // create layout
       playout = layout.layout = pango_cairo_create_layout (cr);
+      pango_layout_set_single_paragraph_mode (playout, TRUE);
 
       // set rendering position
       layout.offset_x = block->left_margin + block->block_indent;
@@ -630,8 +631,8 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 
 	rect.x = 0;
 	rect.width = 0;
-	rect.y = -descent;
-	rect.height = ascent;
+	rect.y = -ascent * PANGO_SCALE;
+	rect.height = descent * PANGO_SCALE;
 
 	attr = pango_attr_shape_new (&rect, &rect);
 
@@ -746,7 +747,7 @@ swfdec_text_field_movie_line_position (SwfdecLayout *layouts, int line_num,
 
   g_return_if_fail (layouts != NULL);
 
-  current = 0;
+  current = 1;
   for (i = 0; layouts[i].layout != NULL && current < line_num; i++) {
     current += pango_layout_get_line_count (layouts[i].layout);
 
commit 6b7efbcff5f75c51ba2a6add6defc61800da79a9
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 22:12:36 2007 +0200

    Fix typos in text-field-variable test

diff --git a/test/trace/text-field-variable-5.swf b/test/trace/text-field-variable-5.swf
index 2c8f63b..e494c1c 100644
Binary files a/test/trace/text-field-variable-5.swf and b/test/trace/text-field-variable-5.swf differ
diff --git a/test/trace/text-field-variable-5.swf.trace b/test/trace/text-field-variable-5.swf.trace
index 4248228..ea83fe6 100644
--- a/test/trace/text-field-variable-5.swf.trace
+++ b/test/trace/text-field-variable-5.swf.trace
@@ -2,8 +2,8 @@ undefined
 undefined
 undefined
 3
-undefined
-2
 3
-undefined
+5
+6
+6
 undefined
diff --git a/test/trace/text-field-variable-6.swf b/test/trace/text-field-variable-6.swf
index 277d1b3..33e8340 100644
Binary files a/test/trace/text-field-variable-6.swf and b/test/trace/text-field-variable-6.swf differ
diff --git a/test/trace/text-field-variable-6.swf.trace b/test/trace/text-field-variable-6.swf.trace
index 2e92da2..e328516 100644
--- a/test/trace/text-field-variable-6.swf.trace
+++ b/test/trace/text-field-variable-6.swf.trace
@@ -1,9 +1,9 @@
 1
 2
 3
-1
-undefined
-3
-3
-undefined
+4
+4
+6
+6
+6
 undefined
diff --git a/test/trace/text-field-variable-7.swf b/test/trace/text-field-variable-7.swf
index 83d2875..ed5e508 100644
Binary files a/test/trace/text-field-variable-7.swf and b/test/trace/text-field-variable-7.swf differ
diff --git a/test/trace/text-field-variable-7.swf.trace b/test/trace/text-field-variable-7.swf.trace
index 2e92da2..e328516 100644
--- a/test/trace/text-field-variable-7.swf.trace
+++ b/test/trace/text-field-variable-7.swf.trace
@@ -1,9 +1,9 @@
 1
 2
 3
-1
-undefined
-3
-3
-undefined
+4
+4
+6
+6
+6
 undefined
diff --git a/test/trace/text-field-variable-8.swf b/test/trace/text-field-variable-8.swf
index a466b89..37f2db4 100644
Binary files a/test/trace/text-field-variable-8.swf and b/test/trace/text-field-variable-8.swf differ
diff --git a/test/trace/text-field-variable-8.swf.trace b/test/trace/text-field-variable-8.swf.trace
index 2e92da2..e328516 100644
--- a/test/trace/text-field-variable-8.swf.trace
+++ b/test/trace/text-field-variable-8.swf.trace
@@ -1,9 +1,9 @@
 1
 2
 3
-1
-undefined
-3
-3
-undefined
+4
+4
+6
+6
+6
 undefined
diff --git a/test/trace/text-field-variable.as b/test/trace/text-field-variable.as
index 68dee49..d73c8f6 100644
--- a/test/trace/text-field-variable.as
+++ b/test/trace/text-field-variable.as
@@ -14,22 +14,22 @@ trace (m.test);
 
 // object
 o = new Object();
-o.test = 1;
+o.test = 4;
 t.variable = "o.test";
 trace (t.text);
-o.test = 2;
-trace (o.text);
-t.text = 3;
+o.test = 5;
+trace (t.text);
+t.text = 6;
 trace (o.test);
 
 // nothing
 delete n;
-n.test = 1;
+n.test = 7;
 t.variable = "n.test";
 trace (t.text);
-n.test = 2;
-trace (o.text);
-t.text = 3;
+n.test = 8;
+trace (t.text);
+t.text = 9;
 trace (n.test);
 
 loadMovie ("FSCommand:quit", "");
commit 9ca0efb69a0462810bb5473e9e5546fd004afd39
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 21:44:34 2007 +0200

    Fix few small issues in text field code
    
    Earlier commit broke vertical scrolling
    Margin's didn't scale
    swfdec_text_field_movie_xy_to_index didn't take margins into account

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index fdbe9a3..19e4394 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -799,7 +799,7 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
   SwfdecRect limit;
   SwfdecColor color;
   SwfdecParagraph *paragraphs;
-  int i, y, x, pixels, skip;
+  int i, y, x, skip;
   gboolean first;
 
   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
@@ -852,13 +852,12 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
       paragraphs, trans);
 
   first = TRUE;
-  x = movie->original_extents.x0 + EXTRA_MARGIN +
+  x = movie->original_extents.x0 + SWFDEC_DOUBLE_TO_TWIPS (EXTRA_MARGIN) +
     MIN (text_movie->hscroll, text_movie->hscroll_max);
-  y = movie->original_extents.y0 + EXTRA_MARGIN;
+  y = movie->original_extents.y0 + SWFDEC_DOUBLE_TO_TWIPS (EXTRA_MARGIN);
 
   swfdec_text_field_movie_line_position (layouts,
-      MIN (text_movie->scroll, text_movie->scroll_max), &pixels, &i, &skip);
-  y += pixels;
+      MIN (text_movie->scroll, text_movie->scroll_max), NULL, &i, &skip);
 
   for (; layouts[i].layout != NULL && y < limit.y1; i++)
   {
@@ -1351,8 +1350,8 @@ swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
   if (layouts[0].layout == NULL)
     return FALSE;
 
-  layout_y = y;
-  layout_x = x;
+  layout_y = y - EXTRA_MARGIN;
+  layout_x = x - EXTRA_MARGIN;
 
   // take scrolling into account
   swfdec_text_field_movie_line_position (layouts,
commit 8d1fb9263ba961c1e10cb7febcd9406ea5177197
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 17:54:54 2007 +0200

    Some more fixes to the handling of P tags in TextField's HTML input

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 4f5390b..aff6a50 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -326,12 +326,20 @@ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
       }
 
       if (found != NULL) {
-	while (data->tags_open != found) {
-	  tag = data->tags_open->data;
+	iter = data->tags_open;
+	while (iter != found) {
+	  tag = iter->data;
+	  iter = iter->next;
+	  if ((tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2)) ||
+	      (tag->name_length == 10 &&
+	       !g_strncasecmp (tag->name, "textformat", 10)))
+	    continue;
 	  swfdec_text_field_movie_html_parse_close_tag (data, tag, TRUE);
 	}
+	if (data->multiline)
+	  data->text = g_string_append_c (data->text, '\n');
 	swfdec_text_field_movie_html_parse_close_tag (data, found->data,
-	    FALSE);
+	    TRUE);
       }
     } else {
       if (data->tags_open != NULL) {
diff --git a/test/trace/text-field-html-input-5.swf b/test/trace/text-field-html-input-5.swf
index 6a70b92..a0d642f 100644
Binary files a/test/trace/text-field-html-input-5.swf and b/test/trace/text-field-html-input-5.swf differ
diff --git a/test/trace/text-field-html-input-5.swf.trace b/test/trace/text-field-html-input-5.swf.trace
index 6299e5c..8890a81 100644
--- a/test/trace/text-field-html-input-5.swf.trace
+++ b/test/trace/text-field-html-input-5.swf.trace
@@ -310,3 +310,39 @@ a<u>b</p>c
 21: a<u>b</p>c: multiline: 1 condenseWhite: 2
 undefined
 a<u>b</p>c
+22: a<p>b<li>c</p>d: multiline: 0 condenseWhite: 0
+undefined
+a<p>b<li>c</p>d
+22: a<p>b<li>c</p>d: multiline: 1 condenseWhite: 0
+undefined
+a<p>b<li>c</p>d
+22: a<p>b<li>c</p>d: multiline: 0 condenseWhite: 2
+undefined
+a<p>b<li>c</p>d
+22: a<p>b<li>c</p>d: multiline: 1 condenseWhite: 2
+undefined
+a<p>b<li>c</p>d
+23: a<p>b<textformat indent='10'>c</p>d: multiline: 0 condenseWhite: 0
+undefined
+a<p>b<textformat indent='10'>c</p>d
+23: a<p>b<textformat indent='10'>c</p>d: multiline: 1 condenseWhite: 0
+undefined
+a<p>b<textformat indent='10'>c</p>d
+23: a<p>b<textformat indent='10'>c</p>d: multiline: 0 condenseWhite: 2
+undefined
+a<p>b<textformat indent='10'>c</p>d
+23: a<p>b<textformat indent='10'>c</p>d: multiline: 1 condenseWhite: 2
+undefined
+a<p>b<textformat indent='10'>c</p>d
+24: a<p>b<font size='10'>c</p>d: multiline: 0 condenseWhite: 0
+undefined
+a<p>b<font size='10'>c</p>d
+24: a<p>b<font size='10'>c</p>d: multiline: 1 condenseWhite: 0
+undefined
+a<p>b<font size='10'>c</p>d
+24: a<p>b<font size='10'>c</p>d: multiline: 0 condenseWhite: 2
+undefined
+a<p>b<font size='10'>c</p>d
+24: a<p>b<font size='10'>c</p>d: multiline: 1 condenseWhite: 2
+undefined
+a<p>b<font size='10'>c</p>d
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index a671bec..e7f8193 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 409450a..d3b3aaf 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -764,3 +764,103 @@ abc
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+22: a<p>b<li>c</p>d: multiline: false condenseWhite: false
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: true condenseWhite: false
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: false condenseWhite: true
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: true condenseWhite: true
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: false condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: false condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: false condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: false condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index 218e0ec..38a97cd 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index 38c779d..aae712b 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -708,3 +708,95 @@ abc
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+22: a<p>b<li>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: true condenseWhite: false
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: true condenseWhite: true
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=10 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=10 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index 0255924..c7cde07 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index 2f3d69d..82e685f 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -706,3 +706,95 @@ abc
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+22: a<p>b<li>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: true condenseWhite: false
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+22: a<p>b<li>c</p>d: multiline: true condenseWhite: true
+ab
c
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcd</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+23: a<p>b<textformat indent='10'>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><TEXTFORMAT INDENT="10"><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P></TEXTFORMAT>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=10 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=10 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=10 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+24: a<p>b<font size='10'>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<FONT SIZE="10">c</FONT></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=10 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index dd3922a..296c246 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -54,7 +54,10 @@ var texts = [
   "a<li>b<p>c</p>d</li>e",
   "a<p align='right'>b<p align='center'>c",
   "a<p>b<u>c</p>d",
-  "a<u>b</p>c"
+  "a<u>b</p>c",
+  "a<p>b<li>c</p>d",
+  "a<p>b<textformat indent='10'>c</p>d",
+  "a<p>b<font size='10'>c</p>d"
 ];
 
 for (var i = 0; i < texts.length; i++) {
commit 8b70e4c40b5f041ef0d51126f413154e071f83a0
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 17:36:57 2007 +0200

    Fix handling of P tags in TextField's HTML input
    
    And once again text-field-html-input test has been expanded

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 6a79930..4f5390b 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -313,11 +313,33 @@ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
 
   if (close)
   {
-    if (data->tags_open != NULL) {
-      tag = data->tags_open->data;
-      if (name_length == tag->name_length &&
-	  !g_strncasecmp (name, tag->name, name_length))
-	swfdec_text_field_movie_html_parse_close_tag (data, tag, FALSE);
+    if (name_length == 1 && !g_strncasecmp (name, "p", 1)) {
+      GSList *iter, *found;
+
+      found = NULL;
+      iter = data->tags_open;
+      while (iter != NULL) {
+	tag = iter->data;
+	if (tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1))
+	  found = iter;
+	iter = iter->next;
+      }
+
+      if (found != NULL) {
+	while (data->tags_open != found) {
+	  tag = data->tags_open->data;
+	  swfdec_text_field_movie_html_parse_close_tag (data, tag, TRUE);
+	}
+	swfdec_text_field_movie_html_parse_close_tag (data, found->data,
+	    FALSE);
+      }
+    } else {
+      if (data->tags_open != NULL) {
+	tag = data->tags_open->data;
+	if (name_length == tag->name_length &&
+	    !g_strncasecmp (name, tag->name, name_length))
+	  swfdec_text_field_movie_html_parse_close_tag (data, tag, FALSE);
+      }
     }
 
     end = strchr (end, '>');
@@ -341,19 +363,6 @@ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
 	    data->text->str[data->text->len - 1] != '\r')
 	  data->text = g_string_append_c (data->text, '\n');
       }
-      else if (name_length == 1 && !g_strncasecmp (name, "p", 1))
-      {
-	GSList *iter;
-
-	for (iter = data->tags_open; iter != NULL; iter = iter->next) {
-	  ParserTag *f = iter->data;
-	  if ((f->name_length == 1 && !g_strncasecmp (f->name, "p", 1)) ||
-	      (f->name_length == 2 && !g_strncasecmp (f->name, "li", 2))) {
-	    data->text = g_string_append_c (data->text, '\n');
-	    break;
-	  }
-	}
-      }
     }
 
     tag = g_new0 (ParserTag, 1);
diff --git a/test/trace/text-field-html-input-5.swf b/test/trace/text-field-html-input-5.swf
index 4ff80f5..6a70b92 100644
Binary files a/test/trace/text-field-html-input-5.swf and b/test/trace/text-field-html-input-5.swf differ
diff --git a/test/trace/text-field-html-input-5.swf.trace b/test/trace/text-field-html-input-5.swf.trace
index 2dfffb5..6299e5c 100644
--- a/test/trace/text-field-html-input-5.swf.trace
+++ b/test/trace/text-field-html-input-5.swf.trace
@@ -230,3 +230,83 @@ a<li>b<li>c</li>d</li>e
 15: a<li>b<li>c</li>d</li>e: multiline: 1 condenseWhite: 2
 undefined
 a<li>b<li>c</li>d</li>e
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: 0 condenseWhite: 0
+undefined
+a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: 1 condenseWhite: 0
+undefined
+a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: 0 condenseWhite: 2
+undefined
+a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: 1 condenseWhite: 2
+undefined
+a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i
+17: a<p>b<p>c</p>d</p>e: multiline: 0 condenseWhite: 0
+undefined
+a<p>b<p>c</p>d</p>e
+17: a<p>b<p>c</p>d</p>e: multiline: 1 condenseWhite: 0
+undefined
+a<p>b<p>c</p>d</p>e
+17: a<p>b<p>c</p>d</p>e: multiline: 0 condenseWhite: 2
+undefined
+a<p>b<p>c</p>d</p>e
+17: a<p>b<p>c</p>d</p>e: multiline: 1 condenseWhite: 2
+undefined
+a<p>b<p>c</p>d</p>e
+18: a<li>b<p>c</p>d</li>e: multiline: 0 condenseWhite: 0
+undefined
+a<li>b<p>c</p>d</li>e
+18: a<li>b<p>c</p>d</li>e: multiline: 1 condenseWhite: 0
+undefined
+a<li>b<p>c</p>d</li>e
+18: a<li>b<p>c</p>d</li>e: multiline: 0 condenseWhite: 2
+undefined
+a<li>b<p>c</p>d</li>e
+18: a<li>b<p>c</p>d</li>e: multiline: 1 condenseWhite: 2
+undefined
+a<li>b<p>c</p>d</li>e
+19: a<p align='right'>b<p align='center'>c: multiline: 0 condenseWhite: 0
+undefined
+a<p align='right'>b<p align='center'>c
+19: a<p align='right'>b<p align='center'>c: multiline: 1 condenseWhite: 0
+undefined
+a<p align='right'>b<p align='center'>c
+19: a<p align='right'>b<p align='center'>c: multiline: 0 condenseWhite: 2
+undefined
+a<p align='right'>b<p align='center'>c
+19: a<p align='right'>b<p align='center'>c: multiline: 1 condenseWhite: 2
+undefined
+a<p align='right'>b<p align='center'>c
+20: a<p>b<u>c</p>d: multiline: 0 condenseWhite: 0
+undefined
+a<p>b<u>c</p>d
+20: a<p>b<u>c</p>d: multiline: 1 condenseWhite: 0
+undefined
+a<p>b<u>c</p>d
+20: a<p>b<u>c</p>d: multiline: 0 condenseWhite: 2
+undefined
+a<p>b<u>c</p>d
+20: a<p>b<u>c</p>d: multiline: 1 condenseWhite: 2
+undefined
+a<p>b<u>c</p>d
+21: a<u>b</p>c: multiline: 0 condenseWhite: 0
+undefined
+a<u>b</p>c
+21: a<u>b</p>c: multiline: 1 condenseWhite: 0
+undefined
+a<u>b</p>c
+21: a<u>b</p>c: multiline: 0 condenseWhite: 2
+undefined
+a<u>b</p>c
+21: a<u>b</p>c: multiline: 1 condenseWhite: 2
+undefined
+a<u>b</p>c
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index f750f90..a671bec 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 8cc60a3..409450a 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -524,3 +524,243 @@ a
b
c
d
e
 6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: false condenseWhite: false
+ab
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: true condenseWhite: false
+ab
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: false condenseWhite: true
+ab
c d
e f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: true condenseWhite: true
+ab
c d
e f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: false condenseWhite: false
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: true condenseWhite: false
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: false condenseWhite: true
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: true condenseWhite: true
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: false condenseWhite: false
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: true condenseWhite: false
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: false condenseWhite: true
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: true condenseWhite: true
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: false condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: true condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: false condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: true condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: false condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: false condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+21: a<u>b</p>c: multiline: false condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: true condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: false condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: true condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index 8b3873e..218e0ec 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index da158ed..38c779d 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -488,3 +488,223 @@ a
b
c
d
e
 6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: false condenseWhite: false
+abcde
fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">fghi</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: true condenseWhite: false
+ab
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+12/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: false condenseWhite: true
+abc de fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc de fghi</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: true condenseWhite: true
+ab
c d
e f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: true condenseWhite: false
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: true condenseWhite: true
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: true condenseWhite: false
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: true condenseWhite: true
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: false condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: true condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: false condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: true condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+21: a<u>b</p>c: multiline: false condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: true condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: false condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: true condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index 167a047..0255924 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index ba18ed6..2f3d69d 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -486,3 +486,223 @@ a
b
c
d
e
 6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: false condenseWhite: false
+abcde
fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">fghi</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: true condenseWhite: false
+ab
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+12/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: false condenseWhite: true
+abc de fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc de fghi</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+16: a<p>b</p>c
<p>d</p>e
+<p>f</p>g<br><p>h</p>i: multiline: true condenseWhite: true
+ab
c d
e f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c d</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e f</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: true condenseWhite: false
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+17: a<p>b<p>c</p>d</p>e: multiline: true condenseWhite: true
+abc
de
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: true condenseWhite: false
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+18: a<li>b<p>c</p>d</li>e: multiline: true condenseWhite: true
+a
bc
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">bc</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: false condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: true condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: false condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+19: a<p align='right'>b<p align='center'>c: multiline: true condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=center blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: false condenseWhite: false
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: true condenseWhite: false
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: false condenseWhite: true
+abcd
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U>d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+20: a<p>b<u>c</p>d: multiline: true condenseWhite: true
+abc
d
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab<U>c</U></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+21: a<u>b</p>c: multiline: false condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: true condenseWhite: false
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: false condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+21: a<u>b</p>c: multiline: true condenseWhite: true
+abc
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>bc</U></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index aca8418..dd3922a 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -48,7 +48,13 @@ var texts = [
   "a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e",
   "a<p>b",
   "a<li>b</li>c\r<li>d</li>e\n<li>f</li>g<br><li>h</li>i",
-  "a<li>b<li>c</li>d</li>e"
+  "a<li>b<li>c</li>d</li>e",
+  "a<p>b</p>c\r<p>d</p>e\n<p>f</p>g<br><p>h</p>i",
+  "a<p>b<p>c</p>d</p>e",
+  "a<li>b<p>c</p>d</li>e",
+  "a<p align='right'>b<p align='center'>c",
+  "a<p>b<u>c</p>d",
+  "a<u>b</p>c"
 ];
 
 for (var i = 0; i < texts.length; i++) {
commit ed61439601f3c554e500fdf310009eac02c91719
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 17:11:11 2007 +0200

    LI tag in text field's HTML input adds a line break, if there isn't one already
    
    text-field-html-input test expanded once more

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 7fc1187..6a79930 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -334,9 +334,14 @@ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
       {
 	data->text = g_string_append_c (data->text, '\n');
       }
-      else if ((name_length == 1 && !g_strncasecmp (name, "p", 1)) ||
-	  (name_length == 2 && !g_strncasecmp (name, "li", 2)) ||
-	  (name_length == 2 && !g_strncasecmp (name, "br", 2)))
+      else if (name_length == 2 && !g_strncasecmp (name, "li", 1))
+      {
+	if (data->text->len > 0 &&
+	    data->text->str[data->text->len - 1] != '\n' &&
+	    data->text->str[data->text->len - 1] != '\r')
+	  data->text = g_string_append_c (data->text, '\n');
+      }
+      else if (name_length == 1 && !g_strncasecmp (name, "p", 1))
       {
 	GSList *iter;
 
diff --git a/test/trace/text-field-html-input-5.swf b/test/trace/text-field-html-input-5.swf
index 4a8f49b..4ff80f5 100644
Binary files a/test/trace/text-field-html-input-5.swf and b/test/trace/text-field-html-input-5.swf differ
diff --git a/test/trace/text-field-html-input-5.swf.trace b/test/trace/text-field-html-input-5.swf.trace
index e4efa9b..2dfffb5 100644
--- a/test/trace/text-field-html-input-5.swf.trace
+++ b/test/trace/text-field-html-input-5.swf.trace
@@ -198,3 +198,35 @@ a<p>b
 13: a<p>b: multiline: 1 condenseWhite: 2
 undefined
 a<p>b
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: 0 condenseWhite: 0
+undefined
+a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: 1 condenseWhite: 0
+undefined
+a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: 0 condenseWhite: 2
+undefined
+a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: 1 condenseWhite: 2
+undefined
+a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i
+15: a<li>b<li>c</li>d</li>e: multiline: 0 condenseWhite: 0
+undefined
+a<li>b<li>c</li>d</li>e
+15: a<li>b<li>c</li>d</li>e: multiline: 1 condenseWhite: 0
+undefined
+a<li>b<li>c</li>d</li>e
+15: a<li>b<li>c</li>d</li>e: multiline: 0 condenseWhite: 2
+undefined
+a<li>b<li>c</li>d</li>e
+15: a<li>b<li>c</li>d</li>e: multiline: 1 condenseWhite: 2
+undefined
+a<li>b<li>c</li>d</li>e
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index eba02b9..f750f90 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 56af520..8cc60a3 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -388,3 +388,139 @@ ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: false condenseWhite: false
+a
b
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: true condenseWhite: false
+a
b
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: false condenseWhite: true
+a
b
c 
d
e 
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/f: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16/h: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+17/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+18/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: true condenseWhite: true
+a
b
c 
d
e 
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12/f: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+14/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+16/h: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+17/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+18/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: false condenseWhite: false
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: true condenseWhite: false
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: false condenseWhite: true
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: true condenseWhite: true
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index d610926..8b3873e 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index 7a76c85..da158ed 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -374,3 +374,117 @@ ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: false condenseWhite: false
+abcde
fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">fghi</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/g: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/i: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: true condenseWhite: false
+a
b
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+16/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: false condenseWhite: true
+abc de fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc de fghi</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/f: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/h: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: true condenseWhite: true
+a
b
c 
d
e 
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+12/f: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+14/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+16/h: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+17/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+18/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: true condenseWhite: false
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: true condenseWhite: true
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index 39ac618..167a047 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index 0778418..ba18ed6 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -372,3 +372,117 @@ ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: false condenseWhite: false
+abcde
fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">de</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">fghi</FONT></LI>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/g: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/i: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: true condenseWhite: false
+a
b
cd
e
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/e: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/f: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+11/g: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+12/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13/h: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15/i: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+16/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: false condenseWhite: true
+abc de fghi
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc de fghi</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/f: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/h: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14: a<li>b</li>c
<li>d</li>e
+<li>f</li>g<br><li>h</li>i: multiline: true condenseWhite: true
+a
b
c 
d
e 
f
g
h
i
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e </FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">f</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">g</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">h</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">i</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+11/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+12/f: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+14/g: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+16/h: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+17/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+18/i: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: true condenseWhite: false
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+15: a<li>b<li>c</li>d</li>e: multiline: true condenseWhite: true
+a
b
c
d
e
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></LI><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">d</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/c: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+6/d: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+7/
: align=left blockIndent=0 bold=false bullet=true color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+8/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index 7a5f8c9..aca8418 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -46,7 +46,9 @@ var texts = [
   "a\r<br>\nb",
   "a<u>b<b>c</b>d</u>e",
   "a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e",
-  "a<p>b"
+  "a<p>b",
+  "a<li>b</li>c\r<li>d</li>e\n<li>f</li>g<br><li>h</li>i",
+  "a<li>b<li>c</li>d</li>e"
 ];
 
 for (var i = 0; i < texts.length; i++) {
commit 000dc3a6e89e1ffb379507a63d3fb07d9eb8dc70
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 16:51:08 2007 +0200

    Don't add newline when closing p and li tags at the end of the input
    
    Expanded text-field-html-input test to check for it

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 4d365b7..7fc1187 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -52,12 +52,13 @@ typedef struct {
 } ParserData;
 
 static void
-swfdec_text_field_movie_html_parse_close_tag (ParserData *data, ParserTag *tag)
+swfdec_text_field_movie_html_parse_close_tag (ParserData *data, ParserTag *tag,
+    gboolean end)
 {
   g_return_if_fail (data != NULL);
   g_return_if_fail (tag != NULL);
 
-  if (data->multiline &&
+  if (data->multiline && !end &&
       ((tag->name_length == 1 && !g_strncasecmp (tag->name, "p", 1)) ||
        (tag->name_length == 2 && !g_strncasecmp (tag->name, "li", 2))))
   {
@@ -316,7 +317,7 @@ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
       tag = data->tags_open->data;
       if (name_length == tag->name_length &&
 	  !g_strncasecmp (name, tag->name, name_length))
-	swfdec_text_field_movie_html_parse_close_tag (data, tag);
+	swfdec_text_field_movie_html_parse_close_tag (data, tag, FALSE);
     }
 
     end = strchr (end, '>');
@@ -491,7 +492,7 @@ swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie *text, const char *str)
     swfdec_text_format_add (text->format_new,
 	((ParserTag *)data.tags_open->data)->format);
     swfdec_text_field_movie_html_parse_close_tag (&data,
-	(ParserTag *)data.tags_open->data);
+	(ParserTag *)data.tags_open->data, TRUE);
   }
 
   // add parsed styles
diff --git a/test/trace/text-field-html-input-5.swf b/test/trace/text-field-html-input-5.swf
index a7d1c33..4a8f49b 100644
Binary files a/test/trace/text-field-html-input-5.swf and b/test/trace/text-field-html-input-5.swf differ
diff --git a/test/trace/text-field-html-input-5.swf.trace b/test/trace/text-field-html-input-5.swf.trace
index d95938e..e4efa9b 100644
--- a/test/trace/text-field-html-input-5.swf.trace
+++ b/test/trace/text-field-html-input-5.swf.trace
@@ -186,3 +186,15 @@ a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0
 12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: 1 condenseWhite: 2
 undefined
 a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e
+13: a<p>b: multiline: 0 condenseWhite: 0
+undefined
+a<p>b
+13: a<p>b: multiline: 1 condenseWhite: 0
+undefined
+a<p>b
+13: a<p>b: multiline: 0 condenseWhite: 2
+undefined
+a<p>b
+13: a<p>b: multiline: 1 condenseWhite: 2
+undefined
+a<p>b
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index 0872af7..eba02b9 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 66cec8f..56af520 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -368,3 +368,23 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=true url=
+13: a<p>b: multiline: false condenseWhite: false
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: true condenseWhite: false
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: false condenseWhite: true
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: true condenseWhite: true
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index 6773c3a..d610926 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index 9271f59..7a76c85 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -354,3 +354,23 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=true url=
+13: a<p>b: multiline: false condenseWhite: false
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: true condenseWhite: false
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: false condenseWhite: true
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: true condenseWhite: true
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index da7a74b..39ac618 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index 4802dc8..0778418 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -352,3 +352,23 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=true url=
+13: a<p>b: multiline: false condenseWhite: false
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: true condenseWhite: false
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: false condenseWhite: true
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+13: a<p>b: multiline: true condenseWhite: true
+ab
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index 5707d86..7a5f8c9 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -1,4 +1,4 @@
-// makeswf -v 7 -r 1 -o test-7.swf test.as
+// makeswf -v 7 -r 1 -o text-field-html-input-7.swf text-field-html-input.as
 
 var properties = [
   "align",
@@ -45,7 +45,8 @@ var texts = [
   "a<br><li>b</li>c<p>d</p>e<br>",
   "a\r<br>\nb",
   "a<u>b<b>c</b>d</u>e",
-  "a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e"
+  "a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e",
+  "a<p>b"
 ];
 
 for (var i = 0; i < texts.length; i++) {
commit 83158fa7be87b6e0fd3148495d37fba1cea3c62c
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 16:40:44 2007 +0200

    Add tags that are left open in TextField's HTML input to the new text format
    
    Also added a test

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 2c0288c..4d365b7 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -488,6 +488,8 @@ swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie *text, const char *str)
 
   // close remaining tags
   while (data.tags_open != NULL) {
+    swfdec_text_format_add (text->format_new,
+	((ParserTag *)data.tags_open->data)->format);
     swfdec_text_field_movie_html_parse_close_tag (&data,
 	(ParserTag *)data.tags_open->data);
   }
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 78f3853..948f4ed 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -2757,6 +2757,15 @@ EXTRA_DIST = \
 	text-field-html-input-7.swf.trace \
 	text-field-html-input-8.swf \
 	text-field-html-input-8.swf.trace \
+	text-field-html-new-format.as \
+	text-field-html-new-format-5.swf \
+	text-field-html-new-format-5.swf.trace \
+	text-field-html-new-format-6.swf \
+	text-field-html-new-format-6.swf.trace \
+	text-field-html-new-format-7.swf \
+	text-field-html-new-format-7.swf.trace \
+	text-field-html-new-format-8.swf \
+	text-field-html-new-format-8.swf.trace \
 	text-field-init.as \
 	text-field-init-5.swf \
 	text-field-init-5.swf.trace \
diff --git a/test/trace/text-field-html-new-format-5.swf b/test/trace/text-field-html-new-format-5.swf
new file mode 100644
index 0000000..3794edc
Binary files /dev/null and b/test/trace/text-field-html-new-format-5.swf differ
diff --git a/test/trace/text-field-html-new-format-5.swf.trace b/test/trace/text-field-html-new-format-5.swf.trace
new file mode 100644
index 0000000..15c66d8
--- /dev/null
+++ b/test/trace/text-field-html-new-format-5.swf.trace
@@ -0,0 +1,6 @@
+hello<font size='100'>world
+hello<font size='100'>world
+hello<font size='100'>world
+hello<font size='100'>world
+hello<font size='100'>world
+hello<font size='100'>world
diff --git a/test/trace/text-field-html-new-format-6.swf b/test/trace/text-field-html-new-format-6.swf
new file mode 100644
index 0000000..1cacf1b
Binary files /dev/null and b/test/trace/text-field-html-new-format-6.swf differ
diff --git a/test/trace/text-field-html-new-format-6.swf.trace b/test/trace/text-field-html-new-format-6.swf.trace
new file mode 100644
index 0000000..6990cd3
--- /dev/null
+++ b/test/trace/text-field-html-new-format-6.swf.trace
@@ -0,0 +1,6 @@
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="100" COLOR="#000000" LETTERSPACING="0" KERNING="0">terve</FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="50" COLOR="#000000" LETTERSPACING="0" KERNING="0">terve</FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
diff --git a/test/trace/text-field-html-new-format-7.swf b/test/trace/text-field-html-new-format-7.swf
new file mode 100644
index 0000000..9568a76
Binary files /dev/null and b/test/trace/text-field-html-new-format-7.swf differ
diff --git a/test/trace/text-field-html-new-format-7.swf.trace b/test/trace/text-field-html-new-format-7.swf.trace
new file mode 100644
index 0000000..6990cd3
--- /dev/null
+++ b/test/trace/text-field-html-new-format-7.swf.trace
@@ -0,0 +1,6 @@
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="100" COLOR="#000000" LETTERSPACING="0" KERNING="0">terve</FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="50" COLOR="#000000" LETTERSPACING="0" KERNING="0">terve</FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
diff --git a/test/trace/text-field-html-new-format-8.swf b/test/trace/text-field-html-new-format-8.swf
new file mode 100644
index 0000000..627aae9
Binary files /dev/null and b/test/trace/text-field-html-new-format-8.swf differ
diff --git a/test/trace/text-field-html-new-format-8.swf.trace b/test/trace/text-field-html-new-format-8.swf.trace
new file mode 100644
index 0000000..a5b1f42
--- /dev/null
+++ b/test/trace/text-field-html-new-format-8.swf.trace
@@ -0,0 +1,6 @@
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="100" COLOR="#000000" LETTERSPACING="0" KERNING="0">terve</FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="50" COLOR="#000000" LETTERSPACING="0" KERNING="0">terve</FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello<FONT SIZE="100">world</FONT></FONT></P>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="100" COLOR="#000000" LETTERSPACING="0" KERNING="0">helloworld</FONT></P>
diff --git a/test/trace/text-field-html-new-format.as b/test/trace/text-field-html-new-format.as
new file mode 100644
index 0000000..51e26fd
--- /dev/null
+++ b/test/trace/text-field-html-new-format.as
@@ -0,0 +1,41 @@
+// makeswf -v 7 -r 1 -o text-field-html-new-format-7.swf text-field-html-new-format.as
+
+// open tags in HTML input change the new text format of the text field
+
+var fmt = new TextFormat ();
+fmt.size = 50;
+
+
+this.createTextField ("t", 0, 0, 0, 150, 150);
+t.html = true;
+
+t.htmlText = "hello<font size='100'>world";
+trace (t.htmlText);
+
+t.text = "terve";
+trace (t.htmlText);
+
+
+this.createTextField ("t", 0, 0, 0, 150, 150);
+t.html = true;
+
+t.htmlText = "hello<font size='100'>world";
+trace (t.htmlText);
+
+t.setNewTextFormat (fmt);
+t.text = "terve";
+trace (t.htmlText);
+
+
+this.createTextField ("t", 0, 0, 0, 150, 150);
+t.html = true;
+
+t.htmlText = "hello<font size='100'>world";
+trace (t.htmlText);
+
+t.htmlText = "hello<font size='100'>world";
+trace (t.htmlText);
+
+
+loadMovie ("FSCommand:quit", "");
+
commit d4719a883f8d16151e221f1a765d036ce68460f8
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 16:28:13 2007 +0200

    Fix an oops from last commit, improve the test and add v5 version of it

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 2760e5e..2c0288c 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -419,7 +419,7 @@ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
 
   // condense the space with previous text also, if version >= 8
   if (data->condense_white && data->cx->version >= 8) {
-    if (data->text->len > 0
+    if (data->text->len > 0 &&
 	g_ascii_isspace (data->text->str[data->text->len - 1]))
       p += strspn (p, " \n\r\t");
   }
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index b8231c0..78f3853 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -2749,6 +2749,8 @@ EXTRA_DIST = \
 	text-field-get-text-format-8.swf \
 	text-field-get-text-format-8.swf.trace \
 	text-field-html-input.as \
+	text-field-html-input-5.swf \
+	text-field-html-input-5.swf.trace \
 	text-field-html-input-6.swf \
 	text-field-html-input-6.swf.trace \
 	text-field-html-input-7.swf \
diff --git a/test/trace/text-field-html-input-5.swf b/test/trace/text-field-html-input-5.swf
new file mode 100644
index 0000000..a7d1c33
Binary files /dev/null and b/test/trace/text-field-html-input-5.swf differ
diff --git a/test/trace/text-field-html-input-5.swf.trace b/test/trace/text-field-html-input-5.swf.trace
new file mode 100644
index 0000000..d95938e
--- /dev/null
+++ b/test/trace/text-field-html-input-5.swf.trace
@@ -0,0 +1,188 @@
+0: a: multiline: 0 condenseWhite: 0
+undefined
+a
+0: a: multiline: 1 condenseWhite: 0
+undefined
+a
+0: a: multiline: 0 condenseWhite: 2
+undefined
+a
+0: a: multiline: 1 condenseWhite: 2
+undefined
+a
+1: a
b: multiline: 0 condenseWhite: 0
+undefined
+a
b
+1: a
b: multiline: 1 condenseWhite: 0
+undefined
+a
b
+1: a
b: multiline: 0 condenseWhite: 2
+undefined
+a
b
+1: a
b: multiline: 1 condenseWhite: 2
+undefined
+a
b
+2: a
+
b: multiline: 0 condenseWhite: 0
+undefined
+a
+
b
+2: a
+
b: multiline: 1 condenseWhite: 0
+undefined
+a
+
b
+2: a
+
b: multiline: 0 condenseWhite: 2
+undefined
+a
+
b
+2: a
+
b: multiline: 1 condenseWhite: 2
+undefined
+a
+
b
+3: a

b: multiline: 0 condenseWhite: 0
+undefined
+a

b
+3: a

b: multiline: 1 condenseWhite: 0
+undefined
+a

b
+3: a

b: multiline: 0 condenseWhite: 2
+undefined
+a

b
+3: a

b: multiline: 1 condenseWhite: 2
+undefined
+a

b
+4: a
+
+b: multiline: 0 condenseWhite: 0
+undefined
+a
+
+b
+4: a
+
+b: multiline: 1 condenseWhite: 0
+undefined
+a
+
+b
+4: a
+
+b: multiline: 0 condenseWhite: 2
+undefined
+a
+
+b
+4: a
+
+b: multiline: 1 condenseWhite: 2
+undefined
+a
+
+b
+5: a<p align='right'>b</p>c: multiline: 0 condenseWhite: 0
+undefined
+a<p align='right'>b</p>c
+5: a<p align='right'>b</p>c: multiline: 1 condenseWhite: 0
+undefined
+a<p align='right'>b</p>c
+5: a<p align='right'>b</p>c: multiline: 0 condenseWhite: 2
+undefined
+a<p align='right'>b</p>c
+5: a<p align='right'>b</p>c: multiline: 1 condenseWhite: 2
+undefined
+a<p align='right'>b</p>c
+6: a<p align='right'>ä</p>c: multiline: 0 condenseWhite: 0
+undefined
+a<p align='right'>ä</p>c
+6: a<p align='right'>ä</p>c: multiline: 1 condenseWhite: 0
+undefined
+a<p align='right'>ä</p>c
+6: a<p align='right'>ä</p>c: multiline: 0 condenseWhite: 2
+undefined
+a<p align='right'>ä</p>c
+6: a<p align='right'>ä</p>c: multiline: 1 condenseWhite: 2
+undefined
+a<p align='right'>ä</p>c
+7: a<!-- b -->c: multiline: 0 condenseWhite: 0
+undefined
+a<!-- b -->c
+7: a<!-- b -->c: multiline: 1 condenseWhite: 0
+undefined
+a<!-- b -->c
+7: a<!-- b -->c: multiline: 0 condenseWhite: 2
+undefined
+a<!-- b -->c
+7: a<!-- b -->c: multiline: 1 condenseWhite: 2
+undefined
+a<!-- b -->c
+8: a<!--->b: multiline: 0 condenseWhite: 0
+undefined
+a<!--->b
+8: a<!--->b: multiline: 1 condenseWhite: 0
+undefined
+a<!--->b
+8: a<!--->b: multiline: 0 condenseWhite: 2
+undefined
+a<!--->b
+8: a<!--->b: multiline: 1 condenseWhite: 2
+undefined
+a<!--->b
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: 0 condenseWhite: 0
+undefined
+a<br><li>b</li>c<p>d</p>e<br>
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: 1 condenseWhite: 0
+undefined
+a<br><li>b</li>c<p>d</p>e<br>
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: 0 condenseWhite: 2
+undefined
+a<br><li>b</li>c<p>d</p>e<br>
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: 1 condenseWhite: 2
+undefined
+a<br><li>b</li>c<p>d</p>e<br>
+10: a
<br>
+b: multiline: 0 condenseWhite: 0
+undefined
+a
<br>
+b
+10: a
<br>
+b: multiline: 1 condenseWhite: 0
+undefined
+a
<br>
+b
+10: a
<br>
+b: multiline: 0 condenseWhite: 2
+undefined
+a
<br>
+b
+10: a
<br>
+b: multiline: 1 condenseWhite: 2
+undefined
+a
<br>
+b
+11: a<u>b<b>c</b>d</u>e: multiline: 0 condenseWhite: 0
+undefined
+a<u>b<b>c</b>d</u>e
+11: a<u>b<b>c</b>d</u>e: multiline: 1 condenseWhite: 0
+undefined
+a<u>b<b>c</b>d</u>e
+11: a<u>b<b>c</b>d</u>e: multiline: 0 condenseWhite: 2
+undefined
+a<u>b<b>c</b>d</u>e
+11: a<u>b<b>c</b>d</u>e: multiline: 1 condenseWhite: 2
+undefined
+a<u>b<b>c</b>d</u>e
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: 0 condenseWhite: 0
+undefined
+a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: 1 condenseWhite: 0
+undefined
+a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: 0 condenseWhite: 2
+undefined
+a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: 1 condenseWhite: 2
+undefined
+a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index dec0edb..0872af7 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index f390a79..66cec8f 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -1,188 +1,226 @@
-0: multiline: false condenseWhite: false
+0: a: multiline: false condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: true condenseWhite: false
+0: a: multiline: true condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: false condenseWhite: true
+0: a: multiline: false condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: true condenseWhite: true
+0: a: multiline: true condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: false condenseWhite: false
+1: a
b: multiline: false condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: true condenseWhite: false
+1: a
b: multiline: true condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: false condenseWhite: true
+1: a
b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: true condenseWhite: true
+1: a
b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: false condenseWhite: false
+2: a
+
b: multiline: false condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: true condenseWhite: false
+2: a
+
b: multiline: true condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: false condenseWhite: true
+2: a
+
b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: true condenseWhite: true
+2: a
+
b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: false condenseWhite: false
+3: a

b: multiline: false condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: true condenseWhite: false
+3: a

b: multiline: true condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: false condenseWhite: true
+3: a

b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: true condenseWhite: true
+3: a

b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: false condenseWhite: false
+4: a
+
+b: multiline: false condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: true condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: false condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: true condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+5: a<p align='right'>b</p>c: multiline: false condenseWhite: false
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: true condenseWhite: false
+5: a<p align='right'>b</p>c: multiline: true condenseWhite: false
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: false condenseWhite: true
+5: a<p align='right'>b</p>c: multiline: false condenseWhite: true
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: true condenseWhite: true
+5: a<p align='right'>b</p>c: multiline: true condenseWhite: true
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: false condenseWhite: false
+6: a<p align='right'>ä</p>c: multiline: false condenseWhite: false
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: true condenseWhite: false
+6: a<p align='right'>ä</p>c: multiline: true condenseWhite: false
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: false condenseWhite: true
+6: a<p align='right'>ä</p>c: multiline: false condenseWhite: true
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: true condenseWhite: true
+6: a<p align='right'>ä</p>c: multiline: true condenseWhite: true
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: false condenseWhite: false
+7: a<!-- b -->c: multiline: false condenseWhite: false
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: true condenseWhite: false
+7: a<!-- b -->c: multiline: true condenseWhite: false
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: false condenseWhite: true
+7: a<!-- b -->c: multiline: false condenseWhite: true
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: true condenseWhite: true
+7: a<!-- b -->c: multiline: true condenseWhite: true
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: false condenseWhite: false
+8: a<!--->b: multiline: false condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: true condenseWhite: false
+8: a<!--->b: multiline: true condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: false condenseWhite: true
+8: a<!--->b: multiline: false condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: true condenseWhite: true
+8: a<!--->b: multiline: true condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: false condenseWhite: false
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: false condenseWhite: false
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -194,7 +232,7 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: true condenseWhite: false
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: true condenseWhite: false
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -206,7 +244,7 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: false condenseWhite: true
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: false condenseWhite: true
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -218,7 +256,7 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: true condenseWhite: true
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: true condenseWhite: true
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -230,7 +268,8 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: false
+10: a
<br>
+b: multiline: false condenseWhite: false
 a

b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -238,7 +277,8 @@ a

b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: false
+10: a
<br>
+b: multiline: true condenseWhite: false
 a

b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -246,7 +286,8 @@ a

b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: true
+10: a
<br>
+b: multiline: false condenseWhite: true
 a 
 b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -254,7 +295,8 @@ a 
 b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 4/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: true
+10: a
<br>
+b: multiline: true condenseWhite: true
 a 
 b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -262,7 +304,7 @@ a 
 b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 4/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: false condenseWhite: false
+11: a<u>b<b>c</b>d</u>e: multiline: false condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -270,7 +312,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: true condenseWhite: false
+11: a<u>b<b>c</b>d</u>e: multiline: true condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -278,7 +320,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: false condenseWhite: true
+11: a<u>b<b>c</b>d</u>e: multiline: false condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -286,7 +328,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: true condenseWhite: true
+11: a<u>b<b>c</b>d</u>e: multiline: true condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -294,3 +336,35 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=2 tabStops= target= underline=true url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index f1f1493..6773c3a 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index aad9945..9271f59 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -1,184 +1,222 @@
-0: multiline: false condenseWhite: false
+0: a: multiline: false condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: true condenseWhite: false
+0: a: multiline: true condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: false condenseWhite: true
+0: a: multiline: false condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: true condenseWhite: true
+0: a: multiline: true condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: false condenseWhite: false
+1: a
b: multiline: false condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: true condenseWhite: false
+1: a
b: multiline: true condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: false condenseWhite: true
+1: a
b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: true condenseWhite: true
+1: a
b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: false condenseWhite: false
+2: a
+
b: multiline: false condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: true condenseWhite: false
+2: a
+
b: multiline: true condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: false condenseWhite: true
+2: a
+
b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: true condenseWhite: true
+2: a
+
b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: false condenseWhite: false
+3: a

b: multiline: false condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: true condenseWhite: false
+3: a

b: multiline: true condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: false condenseWhite: true
+3: a

b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: true condenseWhite: true
+3: a

b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: false condenseWhite: false
+4: a
+
+b: multiline: false condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: true condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: false condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: true condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+5: a<p align='right'>b</p>c: multiline: false condenseWhite: false
 abc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: true condenseWhite: false
+5: a<p align='right'>b</p>c: multiline: true condenseWhite: false
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: false condenseWhite: true
+5: a<p align='right'>b</p>c: multiline: false condenseWhite: true
 abc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: true condenseWhite: true
+5: a<p align='right'>b</p>c: multiline: true condenseWhite: true
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: false condenseWhite: false
+6: a<p align='right'>ä</p>c: multiline: false condenseWhite: false
 aäc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aäc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: true condenseWhite: false
+6: a<p align='right'>ä</p>c: multiline: true condenseWhite: false
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: false condenseWhite: true
+6: a<p align='right'>ä</p>c: multiline: false condenseWhite: true
 aäc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aäc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: true condenseWhite: true
+6: a<p align='right'>ä</p>c: multiline: true condenseWhite: true
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: false condenseWhite: false
+7: a<!-- b -->c: multiline: false condenseWhite: false
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: true condenseWhite: false
+7: a<!-- b -->c: multiline: true condenseWhite: false
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: false condenseWhite: true
+7: a<!-- b -->c: multiline: false condenseWhite: true
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: true condenseWhite: true
+7: a<!-- b -->c: multiline: true condenseWhite: true
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: false condenseWhite: false
+8: a<!--->b: multiline: false condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: true condenseWhite: false
+8: a<!--->b: multiline: true condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: false condenseWhite: true
+8: a<!--->b: multiline: false condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: true condenseWhite: true
+8: a<!--->b: multiline: true condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: false condenseWhite: false
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: false condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -186,7 +224,7 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: true condenseWhite: false
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: true condenseWhite: false
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -198,7 +236,7 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: false condenseWhite: true
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: false condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -206,7 +244,7 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: true condenseWhite: true
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: true condenseWhite: true
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -218,14 +256,16 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: false
+10: a
<br>
+b: multiline: false condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: false
+10: a
<br>
+b: multiline: true condenseWhite: false
 a

b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -233,14 +273,16 @@ a

b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: true
+10: a
<br>
+b: multiline: false condenseWhite: true
 a  b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a  b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 2/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: true
+10: a
<br>
+b: multiline: true condenseWhite: true
 a 
 b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -248,7 +290,7 @@ a 
 b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 4/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: false condenseWhite: false
+11: a<u>b<b>c</b>d</u>e: multiline: false condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -256,7 +298,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: true condenseWhite: false
+11: a<u>b<b>c</b>d</u>e: multiline: true condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -264,7 +306,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: false condenseWhite: true
+11: a<u>b<b>c</b>d</u>e: multiline: false condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -272,7 +314,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: true condenseWhite: true
+11: a<u>b<b>c</b>d</u>e: multiline: true condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -280,3 +322,35 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=2 tabStops= target= underline=true url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index 50adb0a..da7a74b 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index d88ca30..4802dc8 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -1,184 +1,222 @@
-0: multiline: false condenseWhite: false
+0: a: multiline: false condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: true condenseWhite: false
+0: a: multiline: true condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: false condenseWhite: true
+0: a: multiline: false condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-0: multiline: true condenseWhite: true
+0: a: multiline: true condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: false condenseWhite: false
+1: a
b: multiline: false condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: true condenseWhite: false
+1: a
b: multiline: true condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: false condenseWhite: true
+1: a
b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1: multiline: true condenseWhite: true
+1: a
b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: false condenseWhite: false
+2: a
+
b: multiline: false condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: true condenseWhite: false
+2: a
+
b: multiline: true condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: false condenseWhite: true
+2: a
+
b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2: multiline: true condenseWhite: true
+2: a
+
b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: false condenseWhite: false
+3: a

b: multiline: false condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: true condenseWhite: false
+3: a

b: multiline: true condenseWhite: false
 ab
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: false condenseWhite: true
+3: a

b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3: multiline: true condenseWhite: true
+3: a

b: multiline: true condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: false condenseWhite: false
+4: a
+
+b: multiline: false condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: true condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: false condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4: a
+
+b: multiline: true condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+5: a<p align='right'>b</p>c: multiline: false condenseWhite: false
 abc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: true condenseWhite: false
+5: a<p align='right'>b</p>c: multiline: true condenseWhite: false
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: false condenseWhite: true
+5: a<p align='right'>b</p>c: multiline: false condenseWhite: true
 abc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4: multiline: true condenseWhite: true
+5: a<p align='right'>b</p>c: multiline: true condenseWhite: true
 ab
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ab</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/b: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: false condenseWhite: false
+6: a<p align='right'>ä</p>c: multiline: false condenseWhite: false
 aäc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aäc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: true condenseWhite: false
+6: a<p align='right'>ä</p>c: multiline: true condenseWhite: false
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: false condenseWhite: true
+6: a<p align='right'>ä</p>c: multiline: false condenseWhite: true
 aäc
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aäc</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-5: multiline: true condenseWhite: true
+6: a<p align='right'>ä</p>c: multiline: true condenseWhite: true
 aä
c
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aä</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">c</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ä: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=right blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: false condenseWhite: false
+7: a<!-- b -->c: multiline: false condenseWhite: false
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: true condenseWhite: false
+7: a<!-- b -->c: multiline: true condenseWhite: false
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: false condenseWhite: true
+7: a<!-- b -->c: multiline: false condenseWhite: true
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-6: multiline: true condenseWhite: true
+7: a<!-- b -->c: multiline: true condenseWhite: true
 ac
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">ac</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: false condenseWhite: false
+8: a<!--->b: multiline: false condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: true condenseWhite: false
+8: a<!--->b: multiline: true condenseWhite: false
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: false condenseWhite: true
+8: a<!--->b: multiline: false condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-7: multiline: true condenseWhite: true
+8: a<!--->b: multiline: true condenseWhite: true
 a
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: false condenseWhite: false
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: false condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -186,7 +224,7 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: true condenseWhite: false
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: true condenseWhite: false
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -198,7 +236,7 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: false condenseWhite: true
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: false condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">abcde</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -206,7 +244,7 @@ abcde
 2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-8: multiline: true condenseWhite: true
+9: a<br><li>b</li>c<p>d</p>e<br>: multiline: true condenseWhite: true
 a
b
cd
e
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><LI><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></LI><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">cd</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -218,14 +256,16 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: false
+10: a
<br>
+b: multiline: false condenseWhite: false
 a
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: false
+10: a
<br>
+b: multiline: true condenseWhite: false
 a

b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -233,20 +273,22 @@ a

b
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: true
+10: a
<br>
+b: multiline: false condenseWhite: true
 a b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: true
+10: a
<br>
+b: multiline: true condenseWhite: true
 a 
b
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: false condenseWhite: false
+11: a<u>b<b>c</b>d</u>e: multiline: false condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -254,7 +296,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: true condenseWhite: false
+11: a<u>b<b>c</b>d</u>e: multiline: true condenseWhite: false
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -262,7 +304,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: false condenseWhite: true
+11: a<u>b<b>c</b>d</u>e: multiline: false condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -270,7 +312,7 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-10: multiline: true condenseWhite: true
+11: a<u>b<b>c</b>d</u>e: multiline: true condenseWhite: true
 abcde
 <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
 0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
@@ -278,3 +320,35 @@ abcde
 2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
 4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=true url=
+12: a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT SIZE="1" COLOR="#FF0000">b<FONT SIZE="2" COLOR="#00FF00">c<FONT COLOR="#0000FF">d<U>e</U></FONT></FONT></FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=16711680 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=1 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=2 tabStops= target= underline=true url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index 351d896..5707d86 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -30,31 +30,33 @@ function format_to_string (fmt) {
   return str;
 }
 
-this.createTextField ("t", 1, 0, 0, 200, 200);
-
 var texts = [
   "a",
   "a\rb",
-  "a\r\nb",
+  // causes problems in my scritps, when converting from dos to unix newlines
+  //"a\r\nb",
+  "a\n\rb",
   "a\r\rb",
+  "a\n\nb",
   "a<p align='right'>b</p>c",
   "a<p align='right'>ä</p>c",
   "a<!-- b -->c",
   "a<!--->b",
   "a<br><li>b</li>c<p>d</p>e<br>",
   "a\r<br>\nb",
-  "a<u>b<b>c</b>d</u>e"
+  "a<u>b<b>c</b>d</u>e",
+  "a<font size='1' color='#ff0000'>b<font size='2' color='#00ff00'>c<font color='#0000ff'>d<u>e"
 ];
 
-t.html = true;
-
 for (var i = 0; i < texts.length; i++) {
   for (var j = 0; j <= 3; j++) {
+    this.createTextField ("t", 1, 0, 0, 200, 200);
+    t.html = true;
     t.multiline = j & 1;
     t.condenseWhite = j & 2;
     t.htmlText = texts[i];
 
-    trace (i + ": multiline: " + t.multiline + " condenseWhite: " + t.condenseWhite);
+    trace (i + ": " + texts[i] + ": multiline: " + t.multiline + " condenseWhite: " + t.condenseWhite);
 
     trace (t.text);
     trace (t.htmlText);
commit 3b964f38dec65fbb54899f3c39ee4c417f2348cb
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 13:29:14 2007 +0200

    Fix to condenseWhite in version 8 on TextField's HTML input
    
    In version 8 we take into account if the last character of previously added
    text was a space. Expanded text-field-html-input test to check this

diff --git a/libswfdec/swfdec_text_field_movie_html.c b/libswfdec/swfdec_text_field_movie_html.c
index 1a007a9..2760e5e 100644
--- a/libswfdec/swfdec_text_field_movie_html.c
+++ b/libswfdec/swfdec_text_field_movie_html.c
@@ -337,7 +337,7 @@ swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
 	  (name_length == 2 && !g_strncasecmp (name, "li", 2)) ||
 	  (name_length == 2 && !g_strncasecmp (name, "br", 2)))
       {
-	    GSList *iter;
+	GSList *iter;
 
 	for (iter = data->tags_open; iter != NULL; iter = iter->next) {
 	  ParserTag *f = iter->data;
@@ -417,6 +417,13 @@ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
   g_return_val_if_fail (p != NULL, NULL);
   g_return_val_if_fail (*p != '\0' && *p != '<', NULL);
 
+  // condense the space with previous text also, if version >= 8
+  if (data->condense_white && data->cx->version >= 8) {
+    if (data->text->len > 0
+	g_ascii_isspace (data->text->str[data->text->len - 1]))
+      p += strspn (p, " \n\r\t");
+  }
+
   // get the text
   // if condense_white: all whitespace blocks are converted to a single space
   while (*p != '\0' && *p != '<') {
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index c08f64c..dec0edb 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 3093e99..f390a79 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -230,3 +230,67 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: true
+a 
 b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: true
+a 
 b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index 787d500..f1f1493 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index acd8f59..aad9945 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -218,3 +218,65 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: false
+a
b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: true
+a  b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a  b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: true
+a 
 b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index dc640a1..50adb0a 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index 4e97379..d88ca30 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -218,3 +218,63 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: false
+a
b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: false
+a

b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: true
+a b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: true
+a 
b
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a </FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">b</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/ : align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+10: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<U>b</U><B><U>c</U></B><U>d</U>e</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+2/c: align=left blockIndent=0 bold=true bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=true url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index fc0754c..351d896 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -41,7 +41,9 @@ var texts = [
   "a<p align='right'>ä</p>c",
   "a<!-- b -->c",
   "a<!--->b",
-  "a<br><li>b</li>c<p>d</p>e<br>"
+  "a<br><li>b</li>c<p>d</p>e<br>",
+  "a\r<br>\nb",
+  "a<u>b<b>c</b>d</u>e"
 ];
 
 t.html = true;
commit f2d57b2aa18d6b5d00764bac34c67f9f603294da
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 12:20:18 2007 +0200

    Add some comments to SwfdecLayout

diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index cec614f..9c3b222 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -39,11 +39,19 @@ typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
 #define SWFDEC_TEXT_FIELD_MOVIE_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovieClass))
 
 typedef struct {
-  PangoLayout *		layout;
+  PangoLayout *		layout;		// layout to render
+
+  // the byte offset where this layout's text starts in text->input->str
   guint			index_;
-  int			offset_x;
-  int			height;
+
+  int			offset_x;	// x offset to apply before rendering
+
+  // dimensions for this layout, including offset_x, might be bigger than the
+  // rendering of PangoLayout needs
   int			width;
+  int			height;
+
+  // whether the layout starts with bullet point to be rendered separately
   gboolean		bullet;
 } SwfdecLayout;
 
commit 15063b710094aeacea446f9413fcdd1215ffbab9
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 12:11:10 2007 +0200

    Oops. Didn't mean to commit these...

diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index bd7311c..c08f64c 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 0db4bea..3093e99 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -230,35 +230,3 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: false
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: false
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: true
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: true
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index 769dae9..787d500 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index 6f70af0..acd8f59 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -218,35 +218,3 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: false
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: false
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: true
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: true
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index 986cd75..dc640a1 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index 0c498d3..4e97379 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -218,35 +218,3 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: false
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: false
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#0000FF" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>cde</FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: false condenseWhite: true
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#0000FF" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>cde</FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-9: multiline: true condenseWhite: true
-abcde
-<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#0000FF" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>cde</FONT></P>
-0/a: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-2/c: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
-4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index 0c61afb..fc0754c 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -41,8 +41,7 @@ var texts = [
   "a<p align='right'>ä</p>c",
   "a<!-- b -->c",
   "a<!--->b",
-  "a<br><li>b</li>c<p>d</p>e<br>",
-  'a<font color="#00ff00">b</font>c<font color="#0000ff">d<font>e'
+  "a<br><li>b</li>c<p>d</p>e<br>"
 ];
 
 t.html = true;
commit aa15a8e4353e63dc6b44fae5c67605f23ae0dad4
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 11:19:15 2007 +0200

    Use shape attributes for paragraph ending newline characters in text fields

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index e368b88..fdbe9a3 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -444,25 +444,6 @@ swfdec_text_field_movie_paragraph_get_attr_list (
   return attr_list;
 }
 
-static int
-swfdec_text_field_movie_layout_get_last_line_baseline (PangoLayout *playout)
-{
-  int baseline;
-  PangoLayoutIter *iter;
-
-  g_return_val_if_fail (playout != NULL, 0);
-
-  iter = pango_layout_get_iter (playout);
-  while (!pango_layout_iter_at_last_line (iter))
-    pango_layout_iter_next_line (iter);
-
-  baseline = pango_layout_iter_get_baseline (iter) / PANGO_SCALE;
-
-  pango_layout_iter_free (iter);
-
-  return baseline;
-}
-
 static void
 swfdec_text_field_movie_attr_list_get_ascent_descent (PangoAttrList *attr_list,
     guint pos, int *ascent, int *descent)
@@ -543,7 +524,6 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
       SwfdecBlock *block;
       int width;
       guint length;
-      gboolean end_of_paragraph;
 
       block = (SwfdecBlock *)iter->data;
       if (iter->next != NULL) {
@@ -639,19 +619,39 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 	pango_attr_list_insert (attr_list, attr_bg);
       }
 
+      // add shape for newline character at the end
+      if (paragraphs[i].newline) {
+	int ascent, descent;
+	PangoRectangle rect;
+	PangoAttribute *attr;
+
+	swfdec_text_field_movie_attr_list_get_ascent_descent (attr_list,
+	    paragraphs[i].length - block->index_ - skip, &ascent, &descent);
+
+	rect.x = 0;
+	rect.width = 0;
+	rect.y = -descent;
+	rect.height = ascent;
+
+	attr = pango_attr_shape_new (&rect, &rect);
+
+	attr->end_index = paragraphs[i].length - block->index_ - skip;
+	attr->start_index = attr->end_index - 1;
+
+	pango_attr_list_insert (attr_list, attr);
+      }
+
       pango_layout_set_attributes (playout, attr_list);
 
       if (text->text->password) {
 	pango_layout_set_text (playout, text->asterisks, paragraphs[i].length -
-	    block->index_ - skip - (paragraphs[i].newline ? 1 : 0));
+	    block->index_ - skip);
       } else {
 	pango_layout_set_text (playout,
 	    text->input->str + paragraphs[i].index_ + block->index_ + skip,
-	    paragraphs[i].length - block->index_ - skip -
-	    (paragraphs[i].newline ? 1 : 0));
+	    paragraphs[i].length - block->index_ - skip);
       }
 
-      end_of_paragraph = TRUE;
       if (iter->next != NULL && text->text->word_wrap)
       {
 	PangoLayoutLine *line;
@@ -661,7 +661,6 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 	pango_layout_index_to_line_x (playout, length - skip, FALSE, &line_num,
 	    NULL);
 	if (line_num < pango_layout_get_line_count (playout) - 1) {
-	  end_of_paragraph = FALSE;
 	  line = pango_layout_get_line_readonly (playout, line_num);
 	  skip_new = line->start_index + line->length - (length - skip);
 	  pango_layout_set_text (playout,
@@ -691,24 +690,6 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 
       pango_layout_get_pixel_size (playout, &layout.width, &layout.height);
       layout.width += layout.offset_x + block->right_margin;
-      layout.last_line_offset_y = 0;
-
-      // figure out if we need to add extra height because of the size of the
-      // line break character
-      if (end_of_paragraph && paragraphs[i].newline)
-      {
-	int ascent, descent;
-
-	swfdec_text_field_movie_attr_list_get_ascent_descent (attr_list,
-	    paragraphs[i].length - block->index_ - skip, &ascent, &descent);
-
-	if (ascent + descent > layout.height) {
-	  int baseline =
-	    swfdec_text_field_movie_layout_get_last_line_baseline (playout);
-	  layout.last_line_offset_y = ascent - baseline;
-	  layout.height = ascent + descent;
-	}
-      }
 
       pango_attr_list_unref (attr_list);
 
@@ -951,8 +932,6 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
 	continue;
 
       cairo_move_to (cr, x, y);
-      if (pango_layout_iter_at_last_line (iter_line))
-	cairo_rel_move_to (cr, 0, layout->last_line_offset_y);
       cairo_rel_move_to (cr, layout->offset_x + rect.x,
 	  pango_layout_iter_get_baseline (iter_line) / PANGO_SCALE - skipped);
 
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index ae47fc2..cec614f 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -42,7 +42,6 @@ typedef struct {
   PangoLayout *		layout;
   guint			index_;
   int			offset_x;
-  int			last_line_offset_y;
   int			height;
   int			width;
   gboolean		bullet;
commit d98e4010cc5677051f23de5fd5728124e9fea284
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 10:51:22 2007 +0200

    Clean up swfdec_text_field_movie_line_position function's code

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 053affd..e368b88 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -749,12 +749,10 @@ swfdec_text_field_movie_free_layouts (SwfdecLayout *layouts)
 }
 
 static void
-swfdec_text_field_movie_line_position (SwfdecTextFieldMovie *text,
-    SwfdecLayout *layouts_, int line_num, int *pixels, int *layout_num,
-    int *line_in_layout)
+swfdec_text_field_movie_line_position (SwfdecLayout *layouts, int line_num,
+    int *pixels, int *layout_num, int *line_in_layout)
 {
-  SwfdecLayout *layouts;
-  int linenum, i;
+  int current, i;
 
   if (pixels != NULL)
     *pixels = 0;
@@ -765,52 +763,49 @@ swfdec_text_field_movie_line_position (SwfdecTextFieldMovie *text,
   if (line_in_layout != NULL)
     *line_in_layout = 0;
 
-  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+  g_return_if_fail (layouts != NULL);
 
-  if (layouts_ != NULL) {
-    layouts = layouts_;
-  } else {
-    layouts =
-      swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
+  current = 0;
+  for (i = 0; layouts[i].layout != NULL && current < line_num; i++) {
+    current += pango_layout_get_line_count (layouts[i].layout);
+
+    if (pixels != NULL)
+      *pixels += layouts[i].height;
   }
 
-  linenum = 0;
-  for (i = 0; layouts[i].layout != NULL && linenum < line_num; i++)
-  {
+  if (current > line_num) {
     PangoLayoutIter *iter_line;
-    int layout_lines;
+
+    i--;
+    current -= pango_layout_get_line_count (layouts[i].layout);
+
+    if (pixels != NULL)
+      *pixels -= layouts[i].height;
 
     iter_line = pango_layout_get_iter (layouts[i].layout);
 
-    layout_lines = 0;
-    do {
-      if (++linenum >= line_num) {
-	if (pixels != NULL) {
-	  PangoRectangle rect;
+    while (++current < line_num) {
+      g_assert (!pango_layout_iter_at_last_line (iter_line));
+      pango_layout_iter_next_line (iter_line);
 
-	  pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
-	  pango_extents_to_pixels (NULL, &rect);
+      if (line_in_layout != NULL)
+	(*line_in_layout)++;
+    }
 
-	  *pixels += rect.y;
-	}
-	if (line_in_layout != NULL)
-	  *line_in_layout = layout_lines;
-	break;
-      }
-      layout_lines++;
-    } while (pango_layout_iter_next_line (iter_line));
+    if (pixels != NULL) {
+      PangoRectangle rect;
 
-    if (linenum < line_num && pixels != NULL)
-      *pixels += layouts[i].height;
+      pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+      pango_extents_to_pixels (NULL, &rect);
+
+      *pixels += rect.y;
+    }
 
     pango_layout_iter_free (iter_line);
   }
 
   if (layout_num != NULL)
     *layout_num = i;
-
-  if (layouts_ == NULL)
-    swfdec_text_field_movie_free_layouts (layouts);
 }
 
 static void
@@ -880,7 +875,7 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
     MIN (text_movie->hscroll, text_movie->hscroll_max);
   y = movie->original_extents.y0 + EXTRA_MARGIN;
 
-  swfdec_text_field_movie_line_position (text_movie, layouts,
+  swfdec_text_field_movie_line_position (layouts,
       MIN (text_movie->scroll, text_movie->scroll_max), &pixels, &i, &skip);
   y += pixels;
 
@@ -1381,7 +1376,7 @@ swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
   layout_x = x;
 
   // take scrolling into account
-  swfdec_text_field_movie_line_position (text, layouts,
+  swfdec_text_field_movie_line_position (layouts,
       MIN (text->scroll, text->scroll_max), &pixels, NULL, NULL);
   layout_y += pixels;
   layout_x += MIN (text->hscroll, text->hscroll_max);
commit ddcaf0c7bcfd837c4302096f364fc0b113fa0082
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 10:30:30 2007 +0200

    Use the new swfdec_text_field_movie_line_position in render function also

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 183011f..053affd 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -749,6 +749,71 @@ swfdec_text_field_movie_free_layouts (SwfdecLayout *layouts)
 }
 
 static void
+swfdec_text_field_movie_line_position (SwfdecTextFieldMovie *text,
+    SwfdecLayout *layouts_, int line_num, int *pixels, int *layout_num,
+    int *line_in_layout)
+{
+  SwfdecLayout *layouts;
+  int linenum, i;
+
+  if (pixels != NULL)
+    *pixels = 0;
+
+  if (layout_num != NULL)
+    *layout_num = 0;
+
+  if (line_in_layout != NULL)
+    *line_in_layout = 0;
+
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+
+  if (layouts_ != NULL) {
+    layouts = layouts_;
+  } else {
+    layouts =
+      swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
+  }
+
+  linenum = 0;
+  for (i = 0; layouts[i].layout != NULL && linenum < line_num; i++)
+  {
+    PangoLayoutIter *iter_line;
+    int layout_lines;
+
+    iter_line = pango_layout_get_iter (layouts[i].layout);
+
+    layout_lines = 0;
+    do {
+      if (++linenum >= line_num) {
+	if (pixels != NULL) {
+	  PangoRectangle rect;
+
+	  pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+	  pango_extents_to_pixels (NULL, &rect);
+
+	  *pixels += rect.y;
+	}
+	if (line_in_layout != NULL)
+	  *line_in_layout = layout_lines;
+	break;
+      }
+      layout_lines++;
+    } while (pango_layout_iter_next_line (iter_line));
+
+    if (linenum < line_num && pixels != NULL)
+      *pixels += layouts[i].height;
+
+    pango_layout_iter_free (iter_line);
+  }
+
+  if (layout_num != NULL)
+    *layout_num = i;
+
+  if (layouts_ == NULL)
+    swfdec_text_field_movie_free_layouts (layouts);
+}
+
+static void
 swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
     const SwfdecColorTransform *trans, const SwfdecRect *inval)
 {
@@ -758,7 +823,7 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
   SwfdecRect limit;
   SwfdecColor color;
   SwfdecParagraph *paragraphs;
-  int i, y, x, linenum;
+  int i, y, x, pixels, skip;
   gboolean first;
 
   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
@@ -811,12 +876,15 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
       paragraphs, trans);
 
   first = TRUE;
-  linenum = 0;
   x = movie->original_extents.x0 + EXTRA_MARGIN +
     MIN (text_movie->hscroll, text_movie->hscroll_max);
   y = movie->original_extents.y0 + EXTRA_MARGIN;
 
-  for (i = 0; layouts[i].layout != NULL && y < limit.y1; i++)
+  swfdec_text_field_movie_line_position (text_movie, layouts,
+      MIN (text_movie->scroll, text_movie->scroll_max), &pixels, &i, &skip);
+  y += pixels;
+
+  for (; layouts[i].layout != NULL && y < limit.y1; i++)
   {
     SwfdecLayout *layout = &layouts[i];
     PangoLayoutIter *iter_line;
@@ -826,8 +894,7 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
 
     iter_line = pango_layout_get_iter (layout->layout);
 
-    if (layout->bullet && linenum + 1 >=
-	MIN (text_movie->scroll, text_movie->scroll_max)) {
+    if (layout->bullet && skip == 0) {
       PangoColor color_p;
       PangoAttribute *attr;
       PangoAttrIterator *attr_iter;
@@ -856,16 +923,24 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
       cairo_fill (cr);
     }
 
-    skipped = 0;
-    do {
-      if (++linenum < MIN (text_movie->scroll, text_movie->scroll_max))
-	continue;
+    if (skip > 0) {
+      for (skipped = 0; skipped < skip; skipped++) {
+	g_assert (!pango_layout_iter_at_last_line (iter_line));
+	pango_layout_iter_next_line (iter_line);
+      }
 
       pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
       pango_extents_to_pixels (NULL, &rect);
 
-      if (linenum == MIN (text_movie->scroll, text_movie->scroll_max))
-	skipped = rect.y;
+      skipped = rect.y;
+      skip = 0;
+    } else {
+      skipped = 0;
+    }
+
+    do {
+      pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+      pango_extents_to_pixels (NULL, &rect);
 
       if (!first && y + rect.y + rect.height > movie->original_extents.y1)
 	break;
@@ -881,7 +956,6 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
 	continue;
 
       cairo_move_to (cr, x, y);
-
       if (pango_layout_iter_at_last_line (iter_line))
 	cairo_rel_move_to (cr, 0, layout->last_line_offset_y);
       cairo_rel_move_to (cr, layout->offset_x + rect.x,
@@ -891,10 +965,7 @@ swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
       pango_cairo_show_layout_line (cr, line);
     } while (pango_layout_iter_next_line (iter_line));
 
-    if (linenum >= MIN (text_movie->scroll, text_movie->scroll_max)) {
-      y += layout->height - skipped;
-      skipped = 0;
-    }
+    y += layout->height - skipped;
 
     pango_layout_iter_free (iter_line);
   }
@@ -1285,71 +1356,6 @@ swfdec_text_field_movie_letter_clicked (SwfdecTextFieldMovie *text,
   }
 }
 
-static void
-swfdec_text_field_movie_line_position (SwfdecTextFieldMovie *text,
-    SwfdecLayout *layouts_, int line_num, int *pixels, int *layout_num,
-    int *line_in_layout)
-{
-  SwfdecLayout *layouts;
-  int linenum, i;
-
-  if (pixels != NULL)
-    *pixels = 0;
-
-  if (layout_num != NULL)
-    *layout_num = 0;
-
-  if (line_in_layout != NULL)
-    *line_in_layout = 0;
-
-  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
-
-  if (layouts_ != NULL) {
-    layouts = layouts_;
-  } else {
-    layouts =
-      swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
-  }
-
-  linenum = 0;
-  for (i = 0; layouts[i].layout != NULL && linenum < line_num; i++)
-  {
-    PangoLayoutIter *iter_line;
-    int layout_lines;
-
-    iter_line = pango_layout_get_iter (layouts[i].layout);
-
-    layout_lines = 0;
-    do {
-      if (++linenum >= line_num) {
-	if (pixels != NULL) {
-	  PangoRectangle rect;
-
-	  pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
-	  pango_extents_to_pixels (NULL, &rect);
-
-	  *pixels += rect.y;
-	}
-	if (line_in_layout != NULL)
-	  *line_in_layout = layout_lines;
-	break;
-      }
-      layout_lines++;
-    } while (pango_layout_iter_next_line (iter_line));
-
-    if (linenum < line_num && pixels != NULL)
-      *pixels += layouts[i].height;
-
-    pango_layout_iter_free (iter_line);
-  }
-
-  if (layout_num != NULL)
-    *layout_num = i;
-
-  if (layouts_ == NULL)
-    swfdec_text_field_movie_free_layouts (layouts);
-}
-
 static gboolean
 swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
     double y, guint *index_, gboolean *before)
commit 05279827d7675572a2fdd71422f1b8b9673aa5ba
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 18 10:09:08 2007 +0200

    Take scrolling into account in swfdec_text_field_movie_xy_to_index

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 512cb3a..183011f 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -1285,12 +1285,77 @@ swfdec_text_field_movie_letter_clicked (SwfdecTextFieldMovie *text,
   }
 }
 
+static void
+swfdec_text_field_movie_line_position (SwfdecTextFieldMovie *text,
+    SwfdecLayout *layouts_, int line_num, int *pixels, int *layout_num,
+    int *line_in_layout)
+{
+  SwfdecLayout *layouts;
+  int linenum, i;
+
+  if (pixels != NULL)
+    *pixels = 0;
+
+  if (layout_num != NULL)
+    *layout_num = 0;
+
+  if (line_in_layout != NULL)
+    *line_in_layout = 0;
+
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+
+  if (layouts_ != NULL) {
+    layouts = layouts_;
+  } else {
+    layouts =
+      swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
+  }
+
+  linenum = 0;
+  for (i = 0; layouts[i].layout != NULL && linenum < line_num; i++)
+  {
+    PangoLayoutIter *iter_line;
+    int layout_lines;
+
+    iter_line = pango_layout_get_iter (layouts[i].layout);
+
+    layout_lines = 0;
+    do {
+      if (++linenum >= line_num) {
+	if (pixels != NULL) {
+	  PangoRectangle rect;
+
+	  pango_layout_iter_get_line_extents (iter_line, NULL, &rect);
+	  pango_extents_to_pixels (NULL, &rect);
+
+	  *pixels += rect.y;
+	}
+	if (line_in_layout != NULL)
+	  *line_in_layout = layout_lines;
+	break;
+      }
+      layout_lines++;
+    } while (pango_layout_iter_next_line (iter_line));
+
+    if (linenum < line_num && pixels != NULL)
+      *pixels += layouts[i].height;
+
+    pango_layout_iter_free (iter_line);
+  }
+
+  if (layout_num != NULL)
+    *layout_num = i;
+
+  if (layouts_ == NULL)
+    swfdec_text_field_movie_free_layouts (layouts);
+}
+
 static gboolean
 swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
     double y, guint *index_, gboolean *before)
 {
   SwfdecLayout *layouts;
-  int i, layout_index, trailing;
+  int i, layout_index, trailing, pixels;
   double layout_y, layout_x;
   gboolean direct;
 
@@ -1306,14 +1371,22 @@ swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
   if (layouts[0].layout == NULL)
     return FALSE;
 
-  i = 0;
   layout_y = y;
+  layout_x = x;
+
+  // take scrolling into account
+  swfdec_text_field_movie_line_position (text, layouts,
+      MIN (text->scroll, text->scroll_max), &pixels, NULL, NULL);
+  layout_y += pixels;
+  layout_x += MIN (text->hscroll, text->hscroll_max);
+
+  i = 0;
   while (layout_y > layouts[i].height && layouts[i + 1].layout != NULL) {
     layout_y -= layouts[i].height;
     i++;
   }
 
-  layout_x = x - layouts[i].offset_x;
+  layout_x -= layouts[i].offset_x;
 
   direct = pango_layout_xy_to_index (layouts[i].layout, layout_x * PANGO_SCALE,
       layout_y * PANGO_SCALE, &layout_index, &trailing);
diff --git a/test/trace/text-field-html-input-6.swf b/test/trace/text-field-html-input-6.swf
index c08f64c..bd7311c 100644
Binary files a/test/trace/text-field-html-input-6.swf and b/test/trace/text-field-html-input-6.swf differ
diff --git a/test/trace/text-field-html-input-6.swf.trace b/test/trace/text-field-html-input-6.swf.trace
index 3093e99..0db4bea 100644
--- a/test/trace/text-field-html-input-6.swf.trace
+++ b/test/trace/text-field-html-input-6.swf.trace
@@ -230,3 +230,35 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning= leading=0 leftMargin=0 letterSpacing= rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-7.swf b/test/trace/text-field-html-input-7.swf
index 787d500..769dae9 100644
Binary files a/test/trace/text-field-html-input-7.swf and b/test/trace/text-field-html-input-7.swf differ
diff --git a/test/trace/text-field-html-input-7.swf.trace b/test/trace/text-field-html-input-7.swf.trace
index acd8f59..6f70af0 100644
--- a/test/trace/text-field-html-input-7.swf.trace
+++ b/test/trace/text-field-html-input-7.swf.trace
@@ -218,3 +218,35 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=undefined leading=0 leftMargin=0 letterSpacing=undefined rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input-8.swf b/test/trace/text-field-html-input-8.swf
index dc640a1..986cd75 100644
Binary files a/test/trace/text-field-html-input-8.swf and b/test/trace/text-field-html-input-8.swf differ
diff --git a/test/trace/text-field-html-input-8.swf.trace b/test/trace/text-field-html-input-8.swf.trace
index 4e97379..0c498d3 100644
--- a/test/trace/text-field-html-input-8.swf.trace
+++ b/test/trace/text-field-html-input-8.swf.trace
@@ -218,3 +218,35 @@ a
b
cd
e
 6/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 7/e: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
 8/
: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>c<FONT COLOR="#0000FF">de</FONT></FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=0 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: false
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#0000FF" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>cde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: false condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#0000FF" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>cde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+9: multiline: true condenseWhite: true
+abcde
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#0000FF" LETTERSPACING="0" KERNING="0">a<FONT COLOR="#00FF00">b</FONT>cde</FONT></P>
+0/a: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+1/b: align=left blockIndent=0 bold=false bullet=false color=65280 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+2/c: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+3/d: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
+4/e: align=left blockIndent=0 bold=false bullet=false color=255 display=block font=Times New Roman indent=0 italic=false kerning=false leading=0 leftMargin=0 letterSpacing=0 rightMargin=0 size=12 tabStops= target= underline=false url=
diff --git a/test/trace/text-field-html-input.as b/test/trace/text-field-html-input.as
index fc0754c..0c61afb 100644
--- a/test/trace/text-field-html-input.as
+++ b/test/trace/text-field-html-input.as
@@ -41,7 +41,8 @@ var texts = [
   "a<p align='right'>ä</p>c",
   "a<!-- b -->c",
   "a<!--->b",
-  "a<br><li>b</li>c<p>d</p>e<br>"
+  "a<br><li>b</li>c<p>d</p>e<br>",
+  'a<font color="#00ff00">b</font>c<font color="#0000ff">d<font>e'
 ];
 
 t.html = true;
commit ae45f8807445c99248074dbae19417d540b68952
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 11 20:12:49 2007 +0200

    Oops, fix stupid mistake in last commit

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 1a90cb6..512cb3a 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -1254,7 +1254,7 @@ swfdec_text_field_movie_format_for_index (SwfdecTextFieldMovie *text,
   GSList *iter;
 
   g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), NULL);
-  g_return_val_if_fail (index_ > text->input->len, NULL);
+  g_return_val_if_fail (index_ <= text->input->len, NULL);
 
   if (text->formats == NULL)
     return NULL;
@@ -1274,7 +1274,7 @@ swfdec_text_field_movie_letter_clicked (SwfdecTextFieldMovie *text,
   SwfdecTextFormat *format;
 
   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
-  g_return_if_fail (index_ > text->input->len);
+  g_return_if_fail (index_ <= text->input->len);
 
   format = swfdec_text_field_movie_format_for_index (text, index_);
 
commit afda13374bd04ea64184bf9650d37708da70cf10
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Dec 11 20:11:40 2007 +0200

    More work on TextField selecting and link clicking

diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c
index 62c3e38..e675ba4 100644
--- a/libswfdec/swfdec_player.c
+++ b/libswfdec/swfdec_player.c
@@ -1087,6 +1087,14 @@ swfdec_player_do_mouse_move (SwfdecPlayer *player, double x, double y)
   swfdec_player_grab_mouse_movie (player);
   swfdec_player_update_drag_movie (player);
 
+  if (player->mouse_grab) {
+    SwfdecMovieClass *klass = SWFDEC_MOVIE_GET_CLASS (player->mouse_grab);
+    if (klass->mouse_move) {
+      swfdec_movie_get_mouse (player->mouse_grab, &x, &y);
+      klass->mouse_move (player->mouse_grab, x, y);
+    }
+  }
+
   /* FIXME: allow events to pass through */
   return TRUE;
 }
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 095ab63..1a90cb6 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -542,7 +542,7 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
       PangoAttrList *attr_list;
       SwfdecBlock *block;
       int width;
-      guint length, start_index;
+      guint length;
       gboolean end_of_paragraph;
 
       block = (SwfdecBlock *)iter->data;
@@ -608,32 +608,32 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 	  &paragraphs[i], block->index_ + skip, trans);
 
       // add background for selection
-      start_index = paragraphs[i].index_ + block->index_ + skip;
+      layout.index_ = paragraphs[i].index_ + block->index_ + skip;
       if (text->text->selectable && text->cursor != text->selection_end &&
-	  start_index < MAX (text->cursor, text->selection_end)) {
+	  layout.index_ < MAX (text->cursor, text->selection_end)) {
 	SwfdecColor color;
 	PangoAttribute *attr_fg, *attr_bg;
 
-	color = SWFDEC_COLOR_COMBINE (0, 0, 0, 255);
+	color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
 	if (trans != NULL)
 	  color = swfdec_color_apply_transform (color, trans);
 	attr_fg = pango_attr_foreground_new (SWFDEC_COLOR_R (color) << 8,
 	    SWFDEC_COLOR_G (color) << 8, SWFDEC_COLOR_B (color) << 8);
 
-	color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
+	color = SWFDEC_COLOR_COMBINE (0, 0, 0, 255);
 	if (trans != NULL)
 	  color = swfdec_color_apply_transform (color, trans);
 	attr_bg = pango_attr_background_new (SWFDEC_COLOR_R (color) << 8,
 	    SWFDEC_COLOR_G (color) << 8, SWFDEC_COLOR_B (color) << 8);
 
-	if (MIN (text->cursor, text->selection_end) > start_index) {
+	if (MIN (text->cursor, text->selection_end) > layout.index_) {
 	  attr_fg->start_index = attr_bg->start_index =
-	    MIN (text->cursor, text->selection_end) - start_index;
+	    MIN (text->cursor, text->selection_end) - layout.index_;
 	} else {
 	  attr_fg->start_index = attr_bg->start_index = 0;
 	}
 	attr_bg->end_index = attr_fg->end_index =
-	  MAX (text->cursor, text->selection_end) - start_index;
+	  MAX (text->cursor, text->selection_end) - layout.index_;
 
 	pango_attr_list_insert (attr_list, attr_fg);
 	pango_attr_list_insert (attr_list, attr_bg);
@@ -1247,11 +1247,52 @@ swfdec_text_field_movie_contains (SwfdecMovie *movie, double x, double y,
   return movie;
 }
 
+static SwfdecTextFormat *
+swfdec_text_field_movie_format_for_index (SwfdecTextFieldMovie *text,
+    guint index_)
+{
+  GSList *iter;
+
+  g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), NULL);
+  g_return_val_if_fail (index_ > text->input->len, NULL);
+
+  if (text->formats == NULL)
+    return NULL;
+
+  // get current format
+  for (iter = text->formats; iter != NULL && iter->next != NULL &&
+      ((SwfdecFormatIndex *)iter->next->data)->index_ < index_;
+      iter = iter->next);
+
+  return ((SwfdecFormatIndex *)iter->data)->format;
+}
+
+static void
+swfdec_text_field_movie_letter_clicked (SwfdecTextFieldMovie *text,
+    guint index_)
+{
+  SwfdecTextFormat *format;
+
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+  g_return_if_fail (index_ > text->input->len);
+
+  format = swfdec_text_field_movie_format_for_index (text, index_);
+
+  if (format != NULL && format->url != NULL &&
+      format->url != SWFDEC_AS_STR_EMPTY) {
+    swfdec_player_launch (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (text)->context),
+	SWFDEC_LOADER_REQUEST_DEFAULT, format->url, format->target, NULL);
+  }
+}
+
 static gboolean
 swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
     double y, guint *index_, gboolean *before)
 {
   SwfdecLayout *layouts;
+  int i, layout_index, trailing;
+  double layout_y, layout_x;
+  gboolean direct;
 
   g_return_val_if_fail (index_ != NULL, FALSE);
   g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), FALSE);
@@ -1262,9 +1303,54 @@ swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
 
   layouts = swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
 
+  if (layouts[0].layout == NULL)
+    return FALSE;
+
+  i = 0;
+  layout_y = y;
+  while (layout_y > layouts[i].height && layouts[i + 1].layout != NULL) {
+    layout_y -= layouts[i].height;
+    i++;
+  }
+
+  layout_x = x - layouts[i].offset_x;
+
+  direct = pango_layout_xy_to_index (layouts[i].layout, layout_x * PANGO_SCALE,
+      layout_y * PANGO_SCALE, &layout_index, &trailing);
+
+  *index_ = layouts[i].index_ + layout_index;
+  if (before)
+    *before = (trailing == 0);
+
   swfdec_text_field_movie_free_layouts (layouts);
 
-  return TRUE;
+  return direct;
+}
+
+static SwfdecMouseCursor
+swfdec_text_field_movie_mouse_cursor (SwfdecMovie *movie)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  double x, y;
+  guint index_;
+  SwfdecTextFormat *format;
+
+  swfdec_movie_get_mouse (movie, &x, &y);
+
+  if (swfdec_text_field_movie_xy_to_index (text, x, y, &index_, NULL)) {
+    format = swfdec_text_field_movie_format_for_index (text, index_);
+  } else {
+    format = NULL;
+  }
+
+  if (format != NULL && format->url != NULL &&
+      format->url != SWFDEC_AS_STR_EMPTY) {
+    return SWFDEC_MOUSE_CURSOR_CLICK;
+  } else if (text->text->editable || text->text->selectable) {
+    return SWFDEC_MOUSE_CURSOR_TEXT;
+  } else{
+    return SWFDEC_MOUSE_CURSOR_NORMAL;
+  }
 }
 
 static gboolean
@@ -1295,7 +1381,10 @@ swfdec_text_field_movie_mouse_press (SwfdecMovie *movie, guint button)
 
   text->mouse_pressed = TRUE;
   text->cursor = index_;
-  text->selection_end = index_;
+  if (!before && text->cursor < text->input->len)
+    text->cursor++;
+  text->selection_end = text->cursor;
+  swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
 
   if (direct) {
     text->character_pressed = index_ + 1;
@@ -1307,46 +1396,60 @@ swfdec_text_field_movie_mouse_press (SwfdecMovie *movie, guint button)
 }
 
 static void
-swfdec_text_field_movie_mouse_release (SwfdecMovie *movie, guint button)
+swfdec_text_field_movie_mouse_move (SwfdecMovie *movie, double x, double y)
 {
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-  double x, y;
   guint index_;
   gboolean direct, before;
 
   g_return_if_fail (text->text->editable || text->text->selectable);
 
-  if (button != 0)
+  if (!text->text->selectable)
     return;
 
-  text->mouse_pressed = FALSE;
-
-  swfdec_movie_get_mouse (movie, &x, &y);
+  if (!text->mouse_pressed)
+    return;
 
   direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
 
-  if (direct && text->character_pressed == index_ + 1 - (before ? 1 : 0)) {
-    SWFDEC_FIXME ("Clicking links in TextFields not implemented");
-  }
+  text->selection_end = index_;
+
+  if (!before && text->selection_end < text->input->len)
+    text->selection_end++;
+
+  swfdec_movie_invalidate_last (SWFDEC_MOVIE (text));
 }
 
 static void
-swfdec_text_field_movie_mouse_move (SwfdecMovie *movie, double x, double y)
+swfdec_text_field_movie_mouse_release (SwfdecMovie *movie, guint button)
 {
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  double x, y;
   guint index_;
+  gboolean direct, before;
 
   g_return_if_fail (text->text->editable || text->text->selectable);
 
-  if (!text->text->selectable)
+  if (button != 0)
     return;
 
-  if (!text->mouse_pressed)
-    return;
+  swfdec_movie_get_mouse (movie, &x, &y);
 
-  swfdec_text_field_movie_xy_to_index (text, x, y, &index_, NULL);
+  //FIXME
+  swfdec_text_field_movie_mouse_move (movie, x, y);
 
-  text->selection_end = index_;
+  text->mouse_pressed = FALSE;
+
+  direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
+
+  if (text->character_pressed != 0) {
+    if (direct && text->character_pressed == index_ + 1 - (before ? 1 : 0)) {
+      swfdec_text_field_movie_letter_clicked (text,
+	  text->character_pressed - 1);
+    }
+
+    text->character_pressed = 0;
+  }
 }
 
 static void
@@ -1368,6 +1471,7 @@ swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
   movie_class->invalidate = swfdec_text_field_movie_invalidate;
   movie_class->contains = swfdec_text_field_movie_contains;
 
+  movie_class->mouse_cursor = swfdec_text_field_movie_mouse_cursor;
   movie_class->mouse_events = swfdec_text_field_movie_mouse_events;
   movie_class->mouse_press = swfdec_text_field_movie_mouse_press;
   movie_class->mouse_release = swfdec_text_field_movie_mouse_release;
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index c016a4b..ae47fc2 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -40,6 +40,7 @@ typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
 
 typedef struct {
   PangoLayout *		layout;
+  guint			index_;
   int			offset_x;
   int			last_line_offset_y;
   int			height;
commit 9096e26baeaa47a2b4ac9583f6ed4dea698392ff
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Dec 10 20:12:11 2007 +0200

    Fix rendering of selection in TextField. Add swfdec_text_field_movie_contains

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index b7f841c..095ab63 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -542,7 +542,7 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
       PangoAttrList *attr_list;
       SwfdecBlock *block;
       int width;
-      guint length;
+      guint length, start_index;
       gboolean end_of_paragraph;
 
       block = (SwfdecBlock *)iter->data;
@@ -608,26 +608,35 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
 	  &paragraphs[i], block->index_ + skip, trans);
 
       // add background for selection
+      start_index = paragraphs[i].index_ + block->index_ + skip;
       if (text->text->selectable && text->cursor != text->selection_end &&
-	  block->index_ + skip < MAX (text->cursor, text->selection_end)) {
+	  start_index < MAX (text->cursor, text->selection_end)) {
 	SwfdecColor color;
-	PangoAttribute *attr;
-
-	color = SWFDEC_COLOR_COMBINE (0, 0, 255, 255);
-	color = swfdec_color_apply_transform (color, trans);
-	attr = pango_attr_background_new (SWFDEC_COLOR_R (color),
-	    SWFDEC_COLOR_G (color), SWFDEC_COLOR_B (color));
-
-	if (MIN (text->cursor, text->selection_end) > block->index_ + skip) {
-	  attr->start_index =
-	    MIN (text->cursor, text->selection_end) - block->index_ + skip;
+	PangoAttribute *attr_fg, *attr_bg;
+
+	color = SWFDEC_COLOR_COMBINE (0, 0, 0, 255);
+	if (trans != NULL)
+	  color = swfdec_color_apply_transform (color, trans);
+	attr_fg = pango_attr_foreground_new (SWFDEC_COLOR_R (color) << 8,
+	    SWFDEC_COLOR_G (color) << 8, SWFDEC_COLOR_B (color) << 8);
+
+	color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
+	if (trans != NULL)
+	  color = swfdec_color_apply_transform (color, trans);
+	attr_bg = pango_attr_background_new (SWFDEC_COLOR_R (color) << 8,
+	    SWFDEC_COLOR_G (color) << 8, SWFDEC_COLOR_B (color) << 8);
+
+	if (MIN (text->cursor, text->selection_end) > start_index) {
+	  attr_fg->start_index = attr_bg->start_index =
+	    MIN (text->cursor, text->selection_end) - start_index;
 	} else {
-	  attr->start_index = 0;
+	  attr_fg->start_index = attr_bg->start_index = 0;
 	}
-	attr->end_index =
-	  MAX (text->cursor, text->selection_end) - block->index_ + skip;
+	attr_bg->end_index = attr_fg->end_index =
+	  MAX (text->cursor, text->selection_end) - start_index;
 
-	pango_attr_list_insert (attr_list, attr);
+	pango_attr_list_insert (attr_list, attr_fg);
+	pango_attr_list_insert (attr_list, attr_bg);
       }
 
       pango_layout_set_attributes (playout, attr_list);
@@ -1222,6 +1231,22 @@ swfdec_text_field_movie_iterate (SwfdecMovie *movie)
   }
 }
 
+static SwfdecMovie *
+swfdec_text_field_movie_contains (SwfdecMovie *movie, double x, double y,
+    gboolean events)
+{
+  if (events) {
+    /* check for movies in a higher layer that react to events */
+    SwfdecMovie *ret;
+    ret = SWFDEC_MOVIE_CLASS (swfdec_text_field_movie_parent_class)->contains (
+	movie, x, y, TRUE);
+    if (ret && ret != movie && swfdec_movie_get_mouse_events (ret))
+      return ret;
+  }
+  
+  return movie;
+}
+
 static gboolean
 swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
     double y, guint *index_, gboolean *before)
@@ -1341,6 +1366,7 @@ swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
   movie_class->update_extents = swfdec_text_field_movie_update_extents;
   movie_class->render = swfdec_text_field_movie_render;
   movie_class->invalidate = swfdec_text_field_movie_invalidate;
+  movie_class->contains = swfdec_text_field_movie_contains;
 
   movie_class->mouse_events = swfdec_text_field_movie_mouse_events;
   movie_class->mouse_press = swfdec_text_field_movie_mouse_press;
commit 2bd22479fcfb7f76eb4258f0824766f6a7dc948f
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Dec 10 16:04:55 2007 +0200

    More work on TextField's selection support. Set selection's background color

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 16cb0ed..b7f841c 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -606,6 +606,30 @@ swfdec_text_field_movie_get_layouts (SwfdecTextFieldMovie *text, int *num,
       // set text attributes
       attr_list = swfdec_text_field_movie_paragraph_get_attr_list (
 	  &paragraphs[i], block->index_ + skip, trans);
+
+      // add background for selection
+      if (text->text->selectable && text->cursor != text->selection_end &&
+	  block->index_ + skip < MAX (text->cursor, text->selection_end)) {
+	SwfdecColor color;
+	PangoAttribute *attr;
+
+	color = SWFDEC_COLOR_COMBINE (0, 0, 255, 255);
+	color = swfdec_color_apply_transform (color, trans);
+	attr = pango_attr_background_new (SWFDEC_COLOR_R (color),
+	    SWFDEC_COLOR_G (color), SWFDEC_COLOR_B (color));
+
+	if (MIN (text->cursor, text->selection_end) > block->index_ + skip) {
+	  attr->start_index =
+	    MIN (text->cursor, text->selection_end) - block->index_ + skip;
+	} else {
+	  attr->start_index = 0;
+	}
+	attr->end_index =
+	  MAX (text->cursor, text->selection_end) - block->index_ + skip;
+
+	pango_attr_list_insert (attr_list, attr);
+      }
+
       pango_layout_set_attributes (playout, attr_list);
 
       if (text->text->password) {
@@ -1200,7 +1224,7 @@ swfdec_text_field_movie_iterate (SwfdecMovie *movie)
 
 static gboolean
 swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
-    double y, int *index_, gboolean *before)
+    double y, guint *index_, gboolean *before)
 {
   SwfdecLayout *layouts;
 
@@ -1232,7 +1256,7 @@ swfdec_text_field_movie_mouse_press (SwfdecMovie *movie, guint button)
 {
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
   double x, y;
-  int index_;
+  guint index_;
   gboolean direct, before;
 
   g_return_if_fail (text->text->editable || text->text->selectable);
@@ -1249,9 +1273,11 @@ swfdec_text_field_movie_mouse_press (SwfdecMovie *movie, guint button)
   text->selection_end = index_;
 
   if (direct) {
-    text->character_pressed = index_;
+    text->character_pressed = index_ + 1;
     if (before)
       text->character_pressed--;
+  } else {
+    text->character_pressed = 0;
   }
 }
 
@@ -1260,7 +1286,7 @@ swfdec_text_field_movie_mouse_release (SwfdecMovie *movie, guint button)
 {
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
   double x, y;
-  int index_;
+  guint index_;
   gboolean direct, before;
 
   g_return_if_fail (text->text->editable || text->text->selectable);
@@ -1268,13 +1294,13 @@ swfdec_text_field_movie_mouse_release (SwfdecMovie *movie, guint button)
   if (button != 0)
     return;
 
+  text->mouse_pressed = FALSE;
+
   swfdec_movie_get_mouse (movie, &x, &y);
 
   direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
 
-  text->mouse_pressed = FALSE;
-
-  if (direct && text->character_pressed == index_ - (before ? 1 : 0)) {
+  if (direct && text->character_pressed == index_ + 1 - (before ? 1 : 0)) {
     SWFDEC_FIXME ("Clicking links in TextFields not implemented");
   }
 }
@@ -1283,7 +1309,7 @@ static void
 swfdec_text_field_movie_mouse_move (SwfdecMovie *movie, double x, double y)
 {
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-  int index_;
+  guint index_;
 
   g_return_if_fail (text->text->editable || text->text->selectable);
 
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 6fd9cf9..c016a4b 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -111,9 +111,9 @@ struct _SwfdecTextFieldMovie {
   SwfdecColor		background_color;
 
   gboolean		mouse_pressed;
-  int			cursor;
-  int			selection_end;
-  int			character_pressed;
+  guint			cursor;
+  guint			selection_end;
+  guint			character_pressed;
 
   // FIXME: Temporary using image surface, until there is a way to get cairo_t
   // outside the rendering functions
commit 5f64dd5eb916718af4fbea490f01ab0eb85d8d2e
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Mon Dec 10 14:43:24 2007 +0200

    Start working on selecting text and handling links in TextFields

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 50b7a57..16cb0ed 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -1198,6 +1198,106 @@ swfdec_text_field_movie_iterate (SwfdecMovie *movie)
   }
 }
 
+static gboolean
+swfdec_text_field_movie_xy_to_index (SwfdecTextFieldMovie *text, double x,
+    double y, int *index_, gboolean *before)
+{
+  SwfdecLayout *layouts;
+
+  g_return_val_if_fail (index_ != NULL, FALSE);
+  g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), FALSE);
+
+  *index_ = 0;
+  if (before != NULL)
+    *before = FALSE;
+
+  layouts = swfdec_text_field_movie_get_layouts (text, NULL, NULL, NULL, NULL);
+
+  swfdec_text_field_movie_free_layouts (layouts);
+
+  return TRUE;
+}
+
+static gboolean
+swfdec_text_field_movie_mouse_events (SwfdecMovie *movie)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+
+  // FIXME: is this correct?
+  return (text->text->editable || text->text->selectable);
+}
+
+static void
+swfdec_text_field_movie_mouse_press (SwfdecMovie *movie, guint button)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  double x, y;
+  int index_;
+  gboolean direct, before;
+
+  g_return_if_fail (text->text->editable || text->text->selectable);
+
+  if (button != 0)
+    return;
+
+  swfdec_movie_get_mouse (movie, &x, &y);
+
+  direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
+
+  text->mouse_pressed = TRUE;
+  text->cursor = index_;
+  text->selection_end = index_;
+
+  if (direct) {
+    text->character_pressed = index_;
+    if (before)
+      text->character_pressed--;
+  }
+}
+
+static void
+swfdec_text_field_movie_mouse_release (SwfdecMovie *movie, guint button)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  double x, y;
+  int index_;
+  gboolean direct, before;
+
+  g_return_if_fail (text->text->editable || text->text->selectable);
+
+  if (button != 0)
+    return;
+
+  swfdec_movie_get_mouse (movie, &x, &y);
+
+  direct = swfdec_text_field_movie_xy_to_index (text, x, y, &index_, &before);
+
+  text->mouse_pressed = FALSE;
+
+  if (direct && text->character_pressed == index_ - (before ? 1 : 0)) {
+    SWFDEC_FIXME ("Clicking links in TextFields not implemented");
+  }
+}
+
+static void
+swfdec_text_field_movie_mouse_move (SwfdecMovie *movie, double x, double y)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  int index_;
+
+  g_return_if_fail (text->text->editable || text->text->selectable);
+
+  if (!text->text->selectable)
+    return;
+
+  if (!text->mouse_pressed)
+    return;
+
+  swfdec_text_field_movie_xy_to_index (text, x, y, &index_, NULL);
+
+  text->selection_end = index_;
+}
+
 static void
 swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
 {
@@ -1215,6 +1315,11 @@ swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
   movie_class->update_extents = swfdec_text_field_movie_update_extents;
   movie_class->render = swfdec_text_field_movie_render;
   movie_class->invalidate = swfdec_text_field_movie_invalidate;
+
+  movie_class->mouse_events = swfdec_text_field_movie_mouse_events;
+  movie_class->mouse_press = swfdec_text_field_movie_mouse_press;
+  movie_class->mouse_release = swfdec_text_field_movie_mouse_release;
+  movie_class->mouse_move = swfdec_text_field_movie_mouse_move;
 }
 
 static void
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 8d719d3..6fd9cf9 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -110,6 +110,11 @@ struct _SwfdecTextFieldMovie {
   SwfdecColor		border_color;
   SwfdecColor		background_color;
 
+  gboolean		mouse_pressed;
+  int			cursor;
+  int			selection_end;
+  int			character_pressed;
+
   // FIXME: Temporary using image surface, until there is a way to get cairo_t
   // outside the rendering functions
   cairo_surface_t *	surface;


More information about the Swfdec-commits mailing list