[Swfdec] 77 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_edittext.c libswfdec/swfdec_edittext.h libswfdec/swfdec_edittext_movie.c libswfdec/swfdec_edittext_movie.h libswfdec/swfdec_graphic_movie.c libswfdec/swfdec_html_parser.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_player_internal.h libswfdec/swfdec_tag.c libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field.h libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c libswfdec/swfdec_text_field_movie.h libswfdec/swfdec_text_format.c libswfdec/swfdec_text_format.h libswfdec/swfdec_text.h libswfdec/swfdec_xml.c libswfdec/swfdec_xml.h test/dump.c test/trace

Pekka Lampila medar at kemper.freedesktop.org
Sat Oct 13 02:29:23 PDT 2007


 libswfdec/Makefile.am                  |    9 
 libswfdec/swfdec_as_interpret.c        |    7 
 libswfdec/swfdec_as_strings.c          |   10 
 libswfdec/swfdec_edittext.c            |  178 ------
 libswfdec/swfdec_edittext.h            |   97 ---
 libswfdec/swfdec_edittext_movie.c      |  164 -----
 libswfdec/swfdec_edittext_movie.h      |   56 --
 libswfdec/swfdec_graphic_movie.c       |    4 
 libswfdec/swfdec_html_parser.c         |  670 ++++++++++++------------
 libswfdec/swfdec_initialize.as         |    7 
 libswfdec/swfdec_initialize.h          |  347 ++++++------
 libswfdec/swfdec_player_internal.h     |    1 
 libswfdec/swfdec_tag.c                 |    2 
 libswfdec/swfdec_text.h                |    1 
 libswfdec/swfdec_text_field.c          |  397 ++++++++++++++
 libswfdec/swfdec_text_field.h          |  138 ++++
 libswfdec/swfdec_text_field_movie.c    |  716 +++++++++++++++++++++++++
 libswfdec/swfdec_text_field_movie.h    |  112 ++++
 libswfdec/swfdec_text_field_movie_as.c |  810 +++++++++++++++++++++++++++++
 libswfdec/swfdec_text_format.c         |  913 +++++++++++++++++++++------------
 libswfdec/swfdec_text_format.h         |   63 +-
 libswfdec/swfdec_xml.c                 |   24 
 libswfdec/swfdec_xml.h                 |    2 
 test/dump.c                            |   10 
 test/trace/textformat-5.swf            |binary
 test/trace/textformat-5.swf.trace      |   76 ++
 test/trace/textformat-6.swf            |binary
 test/trace/textformat-6.swf.trace      |   76 ++
 test/trace/textformat-7.swf            |binary
 test/trace/textformat-7.swf.trace      |   76 ++
 test/trace/textformat-8.swf            |binary
 test/trace/textformat-8.swf.trace      |   76 ++
 test/trace/textformat.as               |    6 
 33 files changed, 3677 insertions(+), 1371 deletions(-)

New commits:
diff-tree 203f8cf3a29b5fd407abf1c93ac139d38a142d1a (from df08f79f1a4f119c646922cecac83fbed966ade1)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 12:20:20 2007 +0300

    Fix earlier merge error causing createEmptyMovieClip to be added twice

diff --git a/libswfdec/swfdec_initialize.as b/libswfdec/swfdec_initialize.as
index de5f48f..3b9ad10 100644
--- a/libswfdec/swfdec_initialize.as
+++ b/libswfdec/swfdec_initialize.as
@@ -274,9 +274,8 @@ MovieClip.prototype["duplicateMovieClip"
 MovieClip.prototype["removeMovieClip"] = ASnative (900, 19);
 MovieClip.prototype.startDrag = ASnative (900, 20);
 MovieClip.prototype.stopDrag = ASnative (900, 21);
-MovieClip.prototype.createEmptyMovieClip = ASnative (901, 0);
 MovieClip.prototype.createTextField = ASnative (104, 200);
-ASSetPropFlags (MovieClip.prototype, "getDepth,createEmptyMovieClip", 128);
+ASSetPropFlags (MovieClip.prototype, "getDepth", 128);
 
 ASSetNative (MovieClip.prototype, 901, "6createEmptyMovieClip,6beginFill,6beginGradientFill,6moveTo,6lineTo,6curveTo,6lineStyle,6endFill,6clear");
 ASSetPropFlags (MovieClip.prototype, null, 3);
diff --git a/libswfdec/swfdec_initialize.h b/libswfdec/swfdec_initialize.h
index 0921de8..889393b 100644
--- a/libswfdec/swfdec_initialize.h
+++ b/libswfdec/swfdec_initialize.h
@@ -2,7 +2,7 @@
 
 /* compiled from swfdec_initialize.as */
 const unsigned char swfdec_initialize[] = {
-  0x88, 0x76, 0x07, 0xB8,  0x00, 0x41, 0x53, 0x53,  0x65, 0x74, 0x4E, 0x61,  0x74, 0x69, 0x76, 0x65,
+  0x88, 0x43, 0x07, 0xB6,  0x00, 0x41, 0x53, 0x53,  0x65, 0x74, 0x4E, 0x61,  0x74, 0x69, 0x76, 0x65,
   0x00, 0x41, 0x53, 0x6E,  0x61, 0x74, 0x69, 0x76,  0x65, 0x00, 0x41, 0x53,  0x53, 0x65, 0x74, 0x4E,
   0x61, 0x74, 0x69, 0x76,  0x65, 0x41, 0x63, 0x63,  0x65, 0x73, 0x73, 0x6F,  0x72, 0x00, 0x4F, 0x62,
   0x6A, 0x65, 0x63, 0x74,  0x00, 0x72, 0x65, 0x67,  0x69, 0x73, 0x74, 0x65,  0x72, 0x43, 0x6C, 0x61,
@@ -75,472 +75,466 @@ const unsigned char swfdec_initialize[] 
   0x4D, 0x6F, 0x76, 0x69,  0x65, 0x43, 0x6C, 0x69,  0x70, 0x00, 0x72, 0x65,  0x6D, 0x6F, 0x76, 0x65,
   0x4D, 0x6F, 0x76, 0x69,  0x65, 0x43, 0x6C, 0x69,  0x70, 0x00, 0x73, 0x74,  0x61, 0x72, 0x74, 0x44,
   0x72, 0x61, 0x67, 0x00,  0x73, 0x74, 0x6F, 0x70,  0x44, 0x72, 0x61, 0x67,  0x00, 0x63, 0x72, 0x65,
-  0x61, 0x74, 0x65, 0x45,  0x6D, 0x70, 0x74, 0x79,  0x4D, 0x6F, 0x76, 0x69,  0x65, 0x43, 0x6C, 0x69,
-  0x70, 0x00, 0x63, 0x72,  0x65, 0x61, 0x74, 0x65,  0x54, 0x65, 0x78, 0x74,  0x46, 0x69, 0x65, 0x6C,
-  0x64, 0x00, 0x67, 0x65,  0x74, 0x44, 0x65, 0x70,  0x74, 0x68, 0x2C, 0x63,  0x72, 0x65, 0x61, 0x74,
-  0x65, 0x45, 0x6D, 0x70,  0x74, 0x79, 0x4D, 0x6F,  0x76, 0x69, 0x65, 0x43,  0x6C, 0x69, 0x70, 0x00,
-  0x36, 0x63, 0x72, 0x65,  0x61, 0x74, 0x65, 0x45,  0x6D, 0x70, 0x74, 0x79,  0x4D, 0x6F, 0x76, 0x69,
-  0x65, 0x43, 0x6C, 0x69,  0x70, 0x2C, 0x36, 0x62,  0x65, 0x67, 0x69, 0x6E,  0x46, 0x69, 0x6C, 0x6C,
-  0x2C, 0x36, 0x62, 0x65,  0x67, 0x69, 0x6E, 0x47,  0x72, 0x61, 0x64, 0x69,  0x65, 0x6E, 0x74, 0x46,
-  0x69, 0x6C, 0x6C, 0x2C,  0x36, 0x6D, 0x6F, 0x76,  0x65, 0x54, 0x6F, 0x2C,  0x36, 0x6C, 0x69, 0x6E,
-  0x65, 0x54, 0x6F, 0x2C,  0x36, 0x63, 0x75, 0x72,  0x76, 0x65, 0x54, 0x6F,  0x2C, 0x36, 0x6C, 0x69,
-  0x6E, 0x65, 0x53, 0x74,  0x79, 0x6C, 0x65, 0x2C,  0x36, 0x65, 0x6E, 0x64,  0x46, 0x69, 0x6C, 0x6C,
-  0x2C, 0x36, 0x63, 0x6C,  0x65, 0x61, 0x72, 0x00,  0x54, 0x65, 0x78, 0x74,  0x46, 0x69, 0x65, 0x6C,
-  0x64, 0x00, 0x73, 0x65,  0x74, 0x54, 0x65, 0x78,  0x74, 0x46, 0x6F, 0x72,  0x6D, 0x61, 0x74, 0x00,
-  0x67, 0x65, 0x74, 0x4E,  0x65, 0x77, 0x54, 0x65,  0x78, 0x74, 0x46, 0x6F,  0x72, 0x6D, 0x61, 0x74,
-  0x00, 0x73, 0x65, 0x74,  0x4E, 0x65, 0x77, 0x54,  0x65, 0x78, 0x74, 0x46,  0x6F, 0x72, 0x6D, 0x61,
-  0x74, 0x00, 0x54, 0x65,  0x78, 0x74, 0x46, 0x6F,  0x72, 0x6D, 0x61, 0x74,  0x00, 0x53, 0x74, 0x79,
-  0x6C, 0x65, 0x53, 0x68,  0x65, 0x65, 0x74, 0x00,  0x5F, 0x63, 0x6F, 0x70,  0x79, 0x00, 0x6F, 0x62,
-  0x6A, 0x65, 0x63, 0x74,  0x00, 0x6F, 0x5F, 0x6E,  0x65, 0x77, 0x00, 0x70,  0x72, 0x6F, 0x70, 0x00,
-  0x63, 0x6C, 0x65, 0x61,  0x72, 0x00, 0x5F, 0x63,  0x73, 0x73, 0x00, 0x5F,  0x73, 0x74, 0x79, 0x6C,
-  0x65, 0x73, 0x00, 0x67,  0x65, 0x74, 0x53, 0x74,  0x79, 0x6C, 0x65, 0x00,  0x6E, 0x61, 0x6D, 0x65,
-  0x00, 0x73, 0x65, 0x74,  0x53, 0x74, 0x79, 0x6C,  0x65, 0x00, 0x73, 0x74,  0x79, 0x6C, 0x65, 0x00,
-  0x64, 0x6F, 0x54, 0x72,  0x61, 0x6E, 0x73, 0x66,  0x6F, 0x72, 0x6D, 0x00,  0x67, 0x65, 0x74, 0x53,
-  0x74, 0x79, 0x6C, 0x65,  0x4E, 0x61, 0x6D, 0x65,  0x73, 0x00, 0x74, 0x6D,  0x70, 0x00, 0x6E, 0x61,
-  0x6D, 0x65, 0x73, 0x00,  0x74, 0x72, 0x61, 0x6E,  0x73, 0x66, 0x6F, 0x72,  0x6D, 0x00, 0x66, 0x6F,
-  0x72, 0x6D, 0x61, 0x74,  0x00, 0x74, 0x65, 0x78,  0x74, 0x41, 0x6C, 0x69,  0x67, 0x6E, 0x00, 0x61,
-  0x6C, 0x69, 0x67, 0x6E,  0x00, 0x66, 0x6F, 0x6E,  0x74, 0x57, 0x65, 0x69,  0x67, 0x68, 0x74, 0x00,
-  0x62, 0x6F, 0x6C, 0x64,  0x00, 0x6E, 0x6F, 0x72,  0x6D, 0x61, 0x6C, 0x00,  0x63, 0x6F, 0x6C, 0x6F,
-  0x72, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x43,  0x6F, 0x6C, 0x6F, 0x72,  0x00, 0x64, 0x69, 0x73,
-  0x70, 0x6C, 0x61, 0x79,  0x00, 0x66, 0x6F, 0x6E,  0x74, 0x46, 0x61, 0x6D,  0x69, 0x6C, 0x79, 0x00,
-  0x66, 0x6F, 0x6E, 0x74,  0x00, 0x70, 0x61, 0x72,  0x73, 0x65, 0x43, 0x53,  0x53, 0x46, 0x6F, 0x6E,
-  0x74, 0x46, 0x61, 0x6D,  0x69, 0x6C, 0x79, 0x00,  0x74, 0x65, 0x78, 0x74,  0x49, 0x6E, 0x64, 0x65,
-  0x6E, 0x74, 0x00, 0x69,  0x6E, 0x64, 0x65, 0x6E,  0x74, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x49,
-  0x6E, 0x74, 0x00, 0x66,  0x6F, 0x6E, 0x74, 0x53,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x69, 0x74, 0x61,
-  0x6C, 0x69, 0x63, 0x00,  0x6B, 0x65, 0x72, 0x6E,  0x69, 0x6E, 0x67, 0x00,  0x74, 0x72, 0x75, 0x65,
-  0x00, 0x66, 0x61, 0x6C,  0x73, 0x65, 0x00, 0x6C,  0x65, 0x61, 0x64, 0x69,  0x6E, 0x67, 0x00, 0x6D,
-  0x61, 0x72, 0x67, 0x69,  0x6E, 0x4C, 0x65, 0x66,  0x74, 0x00, 0x6C, 0x65,  0x66, 0x74, 0x4D, 0x61,
-  0x72, 0x67, 0x69, 0x6E,  0x00, 0x6C, 0x65, 0x74,  0x74, 0x65, 0x72, 0x53,  0x70, 0x61, 0x63, 0x69,
-  0x6E, 0x67, 0x00, 0x6D,  0x61, 0x72, 0x67, 0x69,  0x6E, 0x52, 0x69, 0x67,  0x68, 0x74, 0x00, 0x72,
-  0x69, 0x67, 0x68, 0x74,  0x4D, 0x61, 0x72, 0x67,  0x69, 0x6E, 0x00, 0x66,  0x6F, 0x6E, 0x74, 0x53,
-  0x69, 0x7A, 0x65, 0x00,  0x73, 0x69, 0x7A, 0x65,  0x00, 0x74, 0x65, 0x78,  0x74, 0x44, 0x65, 0x63,
-  0x6F, 0x72, 0x61, 0x74,  0x69, 0x6F, 0x6E, 0x00,  0x75, 0x6E, 0x64, 0x65,  0x72, 0x6C, 0x69, 0x6E,
-  0x65, 0x00, 0x6E, 0x6F,  0x6E, 0x65, 0x00, 0x70,  0x61, 0x72, 0x73, 0x65,  0x43, 0x53, 0x53, 0x00,
-  0x63, 0x73, 0x73, 0x00,  0x70, 0x61, 0x72, 0x73,  0x65, 0x43, 0x53, 0x53,  0x49, 0x6E, 0x74, 0x65,
-  0x72, 0x6E, 0x61, 0x6C,  0x00, 0x72, 0x65, 0x73,  0x75, 0x6C, 0x74, 0x00,  0x6E, 0x75, 0x6C, 0x6C,
-  0x00, 0x70, 0x61, 0x72,  0x73, 0x65, 0x00, 0x73,  0x65, 0x74, 0x49, 0x6E,  0x74, 0x65, 0x72, 0x76,
-  0x61, 0x6C, 0x00, 0x63,  0x6C, 0x65, 0x61, 0x72,  0x49, 0x6E, 0x74, 0x65,  0x72, 0x76, 0x61, 0x6C,
-  0x00, 0x73, 0x65, 0x74,  0x54, 0x69, 0x6D, 0x65,  0x6F, 0x75, 0x74, 0x00,  0x63, 0x6C, 0x65, 0x61,
-  0x72, 0x54, 0x69, 0x6D,  0x65, 0x6F, 0x75, 0x74,  0x00, 0x9B, 0x12, 0x00,  0x41, 0x73, 0x42, 0x72,
-  0x6F, 0x61, 0x64, 0x63,  0x61, 0x73, 0x74, 0x65,  0x72, 0x00, 0x00, 0x00,  0x00, 0x00, 0x9B, 0x0D,
-  0x00, 0x4C, 0x6F, 0x61,  0x64, 0x56, 0x61, 0x72,  0x73, 0x00, 0x00, 0x00,  0x00, 0x00, 0x96, 0x13,
-  0x00, 0x08, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
-  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x13,  0x00, 0x08, 0x02, 0x07,  0x01, 0x00, 0x00, 0x00,
-  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x02,
-  0x00, 0x08, 0x03, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x04, 0x07, 0x08, 0x00,  0x00, 0x00, 0x07, 0x65,
-  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x08, 0x00, 0x07,
-  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x03, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-  0x08, 0x05, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x07, 0x07,
-  0x0C, 0x00, 0x00, 0x00,  0x07, 0x65, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x06, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x08, 0x9B, 0x07, 0x00,
-  0x00, 0x01, 0x00, 0x78,  0x00, 0x3C, 0x00, 0x96,  0x02, 0x00, 0x08, 0x0A,  0x1C, 0x96, 0x07, 0x00,
-  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x0B, 0x52, 0x17, 0x96,
-  0x02, 0x00, 0x08, 0x0A,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x0C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x0D, 0x52,  0x17, 0x96, 0x02, 0x00,
-  0x05, 0x01, 0x3E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0B, 0x9B,
-  0x07, 0x00, 0x00, 0x01,  0x00, 0x78, 0x00, 0x8F,  0x00, 0x96, 0x04, 0x00,  0x08, 0x0E, 0x08, 0x09,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0C, 0x4E, 0x3C,  0x96, 0x02, 0x00, 0x08,  0x0F, 0x41, 0x96, 0x07,
-  0x00, 0x08, 0x0F, 0x07,  0x00, 0x00, 0x00, 0x00,  0x3C, 0x99, 0x02, 0x00,  0x09, 0x00, 0x96, 0x02,
-  0x00, 0x08, 0x0F, 0x4C,  0x1C, 0x50, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x0F,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x0E, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x10,  0x4E, 0x48, 0x12, 0x9D,  0x02, 0x00, 0x42, 0x00,
-  0x96, 0x02, 0x00, 0x08,  0x0E, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0F, 0x1C,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0x0A, 0x1C, 0x49,  0x12, 0x9D, 0x02, 0x00,  0x23, 0x00, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
-  0x00, 0x00, 0x08, 0x0F,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x0E, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x11, 0x52, 0x17, 0x96,  0x02, 0x00, 0x05, 0x01,  0x3E, 0x99, 0x02, 0x00,
-  0x9C, 0xFF, 0x96, 0x02,  0x00, 0x05, 0x00, 0x3E,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x06, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x12,  0x9B, 0x07, 0x00, 0x00,  0x01, 0x00, 0x6F, 0x00,  0x73, 0x00, 0x96, 0x02,
-  0x00, 0x08, 0x13, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x07, 0x07, 0x0C, 0x00,  0x00, 0x00, 0x07, 0x65,
+  0x61, 0x74, 0x65, 0x54,  0x65, 0x78, 0x74, 0x46,  0x69, 0x65, 0x6C, 0x64,  0x00, 0x36, 0x63, 0x72,
+  0x65, 0x61, 0x74, 0x65,  0x45, 0x6D, 0x70, 0x74,  0x79, 0x4D, 0x6F, 0x76,  0x69, 0x65, 0x43, 0x6C,
+  0x69, 0x70, 0x2C, 0x36,  0x62, 0x65, 0x67, 0x69,  0x6E, 0x46, 0x69, 0x6C,  0x6C, 0x2C, 0x36, 0x62,
+  0x65, 0x67, 0x69, 0x6E,  0x47, 0x72, 0x61, 0x64,  0x69, 0x65, 0x6E, 0x74,  0x46, 0x69, 0x6C, 0x6C,
+  0x2C, 0x36, 0x6D, 0x6F,  0x76, 0x65, 0x54, 0x6F,  0x2C, 0x36, 0x6C, 0x69,  0x6E, 0x65, 0x54, 0x6F,
+  0x2C, 0x36, 0x63, 0x75,  0x72, 0x76, 0x65, 0x54,  0x6F, 0x2C, 0x36, 0x6C,  0x69, 0x6E, 0x65, 0x53,
+  0x74, 0x79, 0x6C, 0x65,  0x2C, 0x36, 0x65, 0x6E,  0x64, 0x46, 0x69, 0x6C,  0x6C, 0x2C, 0x36, 0x63,
+  0x6C, 0x65, 0x61, 0x72,  0x00, 0x54, 0x65, 0x78,  0x74, 0x46, 0x69, 0x65,  0x6C, 0x64, 0x00, 0x73,
+  0x65, 0x74, 0x54, 0x65,  0x78, 0x74, 0x46, 0x6F,  0x72, 0x6D, 0x61, 0x74,  0x00, 0x67, 0x65, 0x74,
+  0x4E, 0x65, 0x77, 0x54,  0x65, 0x78, 0x74, 0x46,  0x6F, 0x72, 0x6D, 0x61,  0x74, 0x00, 0x73, 0x65,
+  0x74, 0x4E, 0x65, 0x77,  0x54, 0x65, 0x78, 0x74,  0x46, 0x6F, 0x72, 0x6D,  0x61, 0x74, 0x00, 0x54,
+  0x65, 0x78, 0x74, 0x46,  0x6F, 0x72, 0x6D, 0x61,  0x74, 0x00, 0x53, 0x74,  0x79, 0x6C, 0x65, 0x53,
+  0x68, 0x65, 0x65, 0x74,  0x00, 0x5F, 0x63, 0x6F,  0x70, 0x79, 0x00, 0x6F,  0x62, 0x6A, 0x65, 0x63,
+  0x74, 0x00, 0x6F, 0x5F,  0x6E, 0x65, 0x77, 0x00,  0x70, 0x72, 0x6F, 0x70,  0x00, 0x63, 0x6C, 0x65,
+  0x61, 0x72, 0x00, 0x5F,  0x63, 0x73, 0x73, 0x00,  0x5F, 0x73, 0x74, 0x79,  0x6C, 0x65, 0x73, 0x00,
+  0x67, 0x65, 0x74, 0x53,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x6E, 0x61, 0x6D,  0x65, 0x00, 0x73, 0x65,
+  0x74, 0x53, 0x74, 0x79,  0x6C, 0x65, 0x00, 0x73,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x64, 0x6F, 0x54,
+  0x72, 0x61, 0x6E, 0x73,  0x66, 0x6F, 0x72, 0x6D,  0x00, 0x67, 0x65, 0x74,  0x53, 0x74, 0x79, 0x6C,
+  0x65, 0x4E, 0x61, 0x6D,  0x65, 0x73, 0x00, 0x74,  0x6D, 0x70, 0x00, 0x6E,  0x61, 0x6D, 0x65, 0x73,
+  0x00, 0x74, 0x72, 0x61,  0x6E, 0x73, 0x66, 0x6F,  0x72, 0x6D, 0x00, 0x66,  0x6F, 0x72, 0x6D, 0x61,
+  0x74, 0x00, 0x74, 0x65,  0x78, 0x74, 0x41, 0x6C,  0x69, 0x67, 0x6E, 0x00,  0x61, 0x6C, 0x69, 0x67,
+  0x6E, 0x00, 0x66, 0x6F,  0x6E, 0x74, 0x57, 0x65,  0x69, 0x67, 0x68, 0x74,  0x00, 0x62, 0x6F, 0x6C,
+  0x64, 0x00, 0x6E, 0x6F,  0x72, 0x6D, 0x61, 0x6C,  0x00, 0x63, 0x6F, 0x6C,  0x6F, 0x72, 0x00, 0x70,
+  0x61, 0x72, 0x73, 0x65,  0x43, 0x6F, 0x6C, 0x6F,  0x72, 0x00, 0x64, 0x69,  0x73, 0x70, 0x6C, 0x61,
+  0x79, 0x00, 0x66, 0x6F,  0x6E, 0x74, 0x46, 0x61,  0x6D, 0x69, 0x6C, 0x79,  0x00, 0x66, 0x6F, 0x6E,
+  0x74, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x43,  0x53, 0x53, 0x46, 0x6F,  0x6E, 0x74, 0x46, 0x61,
+  0x6D, 0x69, 0x6C, 0x79,  0x00, 0x74, 0x65, 0x78,  0x74, 0x49, 0x6E, 0x64,  0x65, 0x6E, 0x74, 0x00,
+  0x69, 0x6E, 0x64, 0x65,  0x6E, 0x74, 0x00, 0x70,  0x61, 0x72, 0x73, 0x65,  0x49, 0x6E, 0x74, 0x00,
+  0x66, 0x6F, 0x6E, 0x74,  0x53, 0x74, 0x79, 0x6C,  0x65, 0x00, 0x69, 0x74,  0x61, 0x6C, 0x69, 0x63,
+  0x00, 0x6B, 0x65, 0x72,  0x6E, 0x69, 0x6E, 0x67,  0x00, 0x74, 0x72, 0x75,  0x65, 0x00, 0x66, 0x61,
+  0x6C, 0x73, 0x65, 0x00,  0x6C, 0x65, 0x61, 0x64,  0x69, 0x6E, 0x67, 0x00,  0x6D, 0x61, 0x72, 0x67,
+  0x69, 0x6E, 0x4C, 0x65,  0x66, 0x74, 0x00, 0x6C,  0x65, 0x66, 0x74, 0x4D,  0x61, 0x72, 0x67, 0x69,
+  0x6E, 0x00, 0x6C, 0x65,  0x74, 0x74, 0x65, 0x72,  0x53, 0x70, 0x61, 0x63,  0x69, 0x6E, 0x67, 0x00,
+  0x6D, 0x61, 0x72, 0x67,  0x69, 0x6E, 0x52, 0x69,  0x67, 0x68, 0x74, 0x00,  0x72, 0x69, 0x67, 0x68,
+  0x74, 0x4D, 0x61, 0x72,  0x67, 0x69, 0x6E, 0x00,  0x66, 0x6F, 0x6E, 0x74,  0x53, 0x69, 0x7A, 0x65,
+  0x00, 0x73, 0x69, 0x7A,  0x65, 0x00, 0x74, 0x65,  0x78, 0x74, 0x44, 0x65,  0x63, 0x6F, 0x72, 0x61,
+  0x74, 0x69, 0x6F, 0x6E,  0x00, 0x75, 0x6E, 0x64,  0x65, 0x72, 0x6C, 0x69,  0x6E, 0x65, 0x00, 0x6E,
+  0x6F, 0x6E, 0x65, 0x00,  0x70, 0x61, 0x72, 0x73,  0x65, 0x43, 0x53, 0x53,  0x00, 0x63, 0x73, 0x73,
+  0x00, 0x70, 0x61, 0x72,  0x73, 0x65, 0x43, 0x53,  0x53, 0x49, 0x6E, 0x74,  0x65, 0x72, 0x6E, 0x61,
+  0x6C, 0x00, 0x72, 0x65,  0x73, 0x75, 0x6C, 0x74,  0x00, 0x6E, 0x75, 0x6C,  0x6C, 0x00, 0x70, 0x61,
+  0x72, 0x73, 0x65, 0x00,  0x73, 0x65, 0x74, 0x49,  0x6E, 0x74, 0x65, 0x72,  0x76, 0x61, 0x6C, 0x00,
+  0x63, 0x6C, 0x65, 0x61,  0x72, 0x49, 0x6E, 0x74,  0x65, 0x72, 0x76, 0x61,  0x6C, 0x00, 0x73, 0x65,
+  0x74, 0x54, 0x69, 0x6D,  0x65, 0x6F, 0x75, 0x74,  0x00, 0x63, 0x6C, 0x65,  0x61, 0x72, 0x54, 0x69,
+  0x6D, 0x65, 0x6F, 0x75,  0x74, 0x00, 0x9B, 0x12,  0x00, 0x41, 0x73, 0x42,  0x72, 0x6F, 0x61, 0x64,
+  0x63, 0x61, 0x73, 0x74,  0x65, 0x72, 0x00, 0x00,  0x00, 0x00, 0x00, 0x9B,  0x0D, 0x00, 0x4C, 0x6F,
+  0x61, 0x64, 0x56, 0x61,  0x72, 0x73, 0x00, 0x00,  0x00, 0x00, 0x00, 0x96,  0x13, 0x00, 0x08, 0x00,
+  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
+  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x02,  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0x04, 0x00,
+  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x03,
+  0x1C, 0x96, 0x13, 0x00,  0x08, 0x04, 0x07, 0x08,  0x00, 0x00, 0x00, 0x07,  0x65, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
+  0x00, 0x02, 0x08, 0x03,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
+  0x17, 0x96, 0x02, 0x00,  0x08, 0x06, 0x1C, 0x96,  0x13, 0x00, 0x08, 0x07,  0x07, 0x0C, 0x00, 0x00,
+  0x00, 0x07, 0x65, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
+  0x02, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x08, 0x9B, 0x07,  0x00, 0x00, 0x01, 0x00,
+  0x78, 0x00, 0x3C, 0x00,  0x96, 0x02, 0x00, 0x08,  0x0A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
+  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0B, 0x52, 0x17,  0x96, 0x02, 0x00, 0x08,
+  0x0A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x0C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x0D,  0x52, 0x17, 0x96, 0x02,  0x00, 0x05, 0x01, 0x3E,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x06, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x0B,  0x9B, 0x07, 0x00, 0x00,
+  0x01, 0x00, 0x78, 0x00,  0x8F, 0x00, 0x96, 0x04,  0x00, 0x08, 0x0E, 0x08,  0x09, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x0C, 0x4E,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x0F, 0x41, 0x96,  0x07, 0x00, 0x08, 0x0F,
+  0x07, 0x00, 0x00, 0x00,  0x00, 0x3C, 0x99, 0x02,  0x00, 0x09, 0x00, 0x96,  0x02, 0x00, 0x08, 0x0F,
+  0x4C, 0x1C, 0x50, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x0F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0E, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x10, 0x4E, 0x48, 0x12,  0x9D, 0x02, 0x00, 0x42,  0x00, 0x96, 0x02, 0x00,
+  0x08, 0x0E, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x0F,  0x1C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x0A, 0x1C,
+  0x49, 0x12, 0x9D, 0x02,  0x00, 0x23, 0x00, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
+  0x0F, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0E,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x11, 0x52, 0x17,  0x96, 0x02, 0x00, 0x05,  0x01, 0x3E, 0x99, 0x02,  0x00, 0x9C, 0xFF, 0x96,
+  0x02, 0x00, 0x05, 0x00,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x06, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x12, 0x9B, 0x07, 0x00,  0x00, 0x01, 0x00, 0x6F,  0x00, 0x73, 0x00, 0x96,  0x02, 0x00, 0x08, 0x13,
+  0x1C, 0x96, 0x13, 0x00,  0x08, 0x07, 0x07, 0x0C,  0x00, 0x00, 0x00, 0x07,  0x65, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,
+  0x04, 0x00, 0x08, 0x08,  0x08, 0x06, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x08,  0x4E, 0x4F, 0x96, 0x02,
+  0x00, 0x08, 0x13, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x0B, 0x08, 0x06, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x0B, 0x4E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x13,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x0C, 0x07, 0x00,
+  0x00, 0x00, 0x00, 0x42,  0x4F, 0x96, 0x09, 0x00,  0x07, 0x83, 0x00, 0x00,  0x00, 0x08, 0x14, 0x08,
+  0x13, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x4F, 0x96,
+  0x08, 0x00, 0x07, 0x83,  0x00, 0x00, 0x00, 0x02,  0x08, 0x06, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,
+  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,  0x8C, 0x00, 0x08, 0x15,  0x08, 0x16, 0x07, 0x12,
+  0x00, 0x00, 0x00, 0x08,  0x17, 0x07, 0x08, 0x00,  0x00, 0x00, 0x08, 0x18,  0x07, 0x14, 0x00, 0x00,
+  0x00, 0x08, 0x19, 0x07,  0x11, 0x00, 0x00, 0x00,  0x08, 0x1A, 0x07, 0x2E,  0x00, 0x00, 0x00, 0x08,
+  0x1B, 0x07, 0x28, 0x00,  0x00, 0x00, 0x08, 0x1C,  0x07, 0x23, 0x00, 0x00,  0x00, 0x08, 0x1D, 0x07,
+  0x0D, 0x00, 0x00, 0x00,  0x08, 0x1E, 0x07, 0x1B,  0x00, 0x00, 0x00, 0x08,  0x1F, 0x07, 0x24, 0x00,
+  0x00, 0x00, 0x08, 0x20,  0x07, 0x2D, 0x00, 0x00,  0x00, 0x08, 0x21, 0x07,  0x25, 0x00, 0x00, 0x00,
+  0x08, 0x22, 0x07, 0x22,  0x00, 0x00, 0x00, 0x08,  0x23, 0x07, 0x21, 0x00,  0x00, 0x00, 0x08, 0x24,
+  0x07, 0x27, 0x00, 0x00,  0x00, 0x08, 0x25, 0x07,  0x10, 0x00, 0x00, 0x00,  0x08, 0x26, 0x07, 0x20,
+  0x00, 0x00, 0x00, 0x08,  0x27, 0x07, 0x09, 0x00,  0x00, 0x00, 0x08, 0x28,  0x07, 0x26, 0x00, 0x00,
+  0x00, 0x07, 0x13, 0x00,  0x00, 0x00, 0x43, 0x1D,  0x96, 0x09, 0x00, 0x08,  0x29, 0x07, 0x20, 0x03,
+  0x00, 0x00, 0x08, 0x15,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
+  0x17, 0x96, 0x02, 0x00,  0x08, 0x15, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
+  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x12, 0x52,  0x17, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
+  0x00, 0x02, 0x08, 0x15,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
+  0x17, 0x96, 0x07, 0x00,  0x08, 0x2A, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x02, 0x00,
+  0x08, 0x2A, 0x1C, 0x96,  0x13, 0x00, 0x08, 0x2B,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x05, 0x00,
+  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2A,
+  0x1C, 0x96, 0x13, 0x00,  0x08, 0x2C, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,  0x05, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x2A, 0x1C, 0x96,
+  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x12, 0x52,
+  0x17, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,  0x00, 0x02, 0x08, 0x2A,  0x1C, 0x96, 0x07, 0x00,
+  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x07, 0x00,  0x08, 0x2D, 0x07, 0x00,
+  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x02, 0x00,  0x08, 0x2D, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,
+  0x00, 0x00, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x12, 0x52,  0x17, 0x96, 0x0E, 0x00,
+  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x2E, 0x07,  0x9A, 0x02, 0x00, 0x00,  0x08, 0x2D, 0x1C, 0x96,
+  0x07, 0x00, 0x07, 0x04,  0x00, 0x00, 0x00, 0x08,  0x02, 0x3D, 0x17, 0x96,  0x02, 0x00, 0x08, 0x2F,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x04, 0x00, 0x08, 0x31,  0x08, 0x32, 0x4F, 0x96,
+  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x33,
+  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
+  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
+  0x13, 0x00, 0x08, 0x34,  0x07, 0x03, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,
+  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x35,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x2F, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0x36, 0x9B, 0x09,  0x00, 0x00, 0x01, 0x00,  0x73, 0x72, 0x63, 0x00,  0x64, 0x00, 0x96, 0x02,
+  0x00, 0x08, 0x09, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x37, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,
+  0x38, 0x1C, 0x96, 0x01,  0x00, 0x02, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x19,  0x00, 0x96, 0x09, 0x00,
+  0x05, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x35, 0x52,
+  0x17, 0x99, 0x02, 0x00,  0x2C, 0x00, 0x96, 0x02,  0x00, 0x08, 0x38, 0x1C,  0x96, 0x07, 0x00, 0x07,
+  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x34,  0x52, 0x17, 0x96, 0x09,
+  0x00, 0x05, 0x01, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x35,
+  0x52, 0x17, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
+  0x02, 0x00, 0x08, 0x39,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0xB3, 0x00,  0x96, 0x03, 0x00, 0x08,
+  0x3A, 0x02, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x46, 0x87, 0x01, 0x00,  0x00, 0x96, 0x01, 0x00,
+  0x02, 0x49, 0x9D, 0x02,  0x00, 0x91, 0x00, 0x96,  0x04, 0x00, 0x08, 0x0A,  0x04, 0x00, 0x3C, 0x96,
+  0x02, 0x00, 0x08, 0x3A,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x9D, 0x02,  0x00, 0x41, 0x00, 0x96,
+  0x02, 0x00, 0x08, 0x3A,  0x4C, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x3D, 0x08,  0x0A, 0x1C, 0x96, 0x07,
+  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x3B,  0x3D, 0x47, 0x96, 0x02,  0x00, 0x08, 0x3C, 0x47,
+  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0A, 0x1C,  0x4E, 0x96, 0x07, 0x00,
+  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x3B, 0x3D,  0x47, 0x47, 0x1D, 0x99,  0x02, 0x00, 0x33, 0x00,
+  0x96, 0x04, 0x00, 0x08,  0x3A, 0x08, 0x0A, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
+  0x08, 0x3B, 0x3D, 0x96,  0x02, 0x00, 0x08, 0x3C,  0x47, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x0A,  0x1C, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x3B,
+  0x3D, 0x47, 0x1D, 0x99,  0x02, 0x00, 0x61, 0xFF,  0x96, 0x02, 0x00, 0x08,  0x3A, 0x1C, 0x3E, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x2F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
+  0x3E, 0x9B, 0x05, 0x00,  0x00, 0x00, 0x00, 0x0D,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x3F,  0x4E, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x40,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x0D, 0x00,
+  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x41, 0x4E,  0x3E, 0x4F, 0x96, 0x08,
+  0x00, 0x07, 0x83, 0x00,  0x00, 0x00, 0x02, 0x08,  0x2F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,
+  0x42, 0x07, 0x10, 0x00,  0x00, 0x00, 0x07, 0xF4,  0x01, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
+  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x0E, 0x00, 0x07,  0x06, 0x00, 0x00, 0x00,  0x08, 0x44, 0x07, 0xF4,
+  0x01, 0x00, 0x00, 0x08,  0x42, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,
+  0x04, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0x45, 0x07, 0x00, 0x00,
+  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,
+  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
+  0x46, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
+  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x13, 0x00, 0x08,  0x47, 0x07, 0x02, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
+  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x48, 0x07, 0x03, 0x00,  0x00, 0x00, 0x07, 0xFD,
   0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x13, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x08, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x08, 0x4E,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x0B,  0x08, 0x06, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x0B,  0x4E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x13, 0x1C,  0x96, 0x07, 0x00, 0x08,
-  0x0C, 0x07, 0x00, 0x00,  0x00, 0x00, 0x42, 0x4F,  0x96, 0x09, 0x00, 0x07,  0x83, 0x00, 0x00, 0x00,
-  0x08, 0x14, 0x08, 0x13,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
-  0x17, 0x4F, 0x96, 0x08,  0x00, 0x07, 0x83, 0x00,  0x00, 0x00, 0x02, 0x08,  0x06, 0x1C, 0x96, 0x07,
-  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x96, 0x8C,  0x00, 0x08, 0x15, 0x08,
-  0x16, 0x07, 0x12, 0x00,  0x00, 0x00, 0x08, 0x17,  0x07, 0x08, 0x00, 0x00,  0x00, 0x08, 0x18, 0x07,
-  0x14, 0x00, 0x00, 0x00,  0x08, 0x19, 0x07, 0x11,  0x00, 0x00, 0x00, 0x08,  0x1A, 0x07, 0x2E, 0x00,
-  0x00, 0x00, 0x08, 0x1B,  0x07, 0x28, 0x00, 0x00,  0x00, 0x08, 0x1C, 0x07,  0x23, 0x00, 0x00, 0x00,
-  0x08, 0x1D, 0x07, 0x0D,  0x00, 0x00, 0x00, 0x08,  0x1E, 0x07, 0x1B, 0x00,  0x00, 0x00, 0x08, 0x1F,
-  0x07, 0x24, 0x00, 0x00,  0x00, 0x08, 0x20, 0x07,  0x2D, 0x00, 0x00, 0x00,  0x08, 0x21, 0x07, 0x25,
-  0x00, 0x00, 0x00, 0x08,  0x22, 0x07, 0x22, 0x00,  0x00, 0x00, 0x08, 0x23,  0x07, 0x21, 0x00, 0x00,
-  0x00, 0x08, 0x24, 0x07,  0x27, 0x00, 0x00, 0x00,  0x08, 0x25, 0x07, 0x10,  0x00, 0x00, 0x00, 0x08,
-  0x26, 0x07, 0x20, 0x00,  0x00, 0x00, 0x08, 0x27,  0x07, 0x09, 0x00, 0x00,  0x00, 0x08, 0x28, 0x07,
-  0x26, 0x00, 0x00, 0x00,  0x07, 0x13, 0x00, 0x00,  0x00, 0x43, 0x1D, 0x96,  0x09, 0x00, 0x08, 0x29,
-  0x07, 0x20, 0x03, 0x00,  0x00, 0x08, 0x15, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,  0x15, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
-  0x00, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x12, 0x52, 0x17,  0x96, 0x08, 0x00, 0x07,
-  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x15, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-  0x08, 0x05, 0x3D, 0x17,  0x96, 0x07, 0x00, 0x08,  0x2A, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x1D,
-  0x96, 0x02, 0x00, 0x08,  0x2A, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x2B, 0x07,  0x00, 0x00, 0x00, 0x00,
-  0x07, 0x05, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-  0x00, 0x08, 0x2A, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x2C, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0x05,
+  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x49, 0x07, 0x04, 0x00,
+  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
+  0x4A, 0x07, 0x05, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
+  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x13, 0x00, 0x08,  0x39, 0x07, 0x06, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
+  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x4B, 0x07, 0x07, 0x00,  0x00, 0x00, 0x07, 0xFD,
   0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x2A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x12, 0x52, 0x17,  0x96, 0x08, 0x00, 0x07,  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x2A, 0x1C,
-  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x07, 0x00, 0x08,
-  0x2D, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x2D, 0x1C, 0x96, 0x07,
-  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x12, 0x52, 0x17,
-  0x96, 0x0E, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x2E, 0x07, 0x9A,  0x02, 0x00, 0x00, 0x08,
-  0x2D, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x02,  0x3D, 0x17, 0x96, 0x02,
-  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x04,  0x00, 0x08, 0x31, 0x08,
-  0x32, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-  0x00, 0x08, 0x33, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x2D, 0x01, 0x00,  0x00, 0x07, 0x02, 0x00,
-  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x34, 0x07,  0x03, 0x00, 0x00, 0x00,  0x07, 0x2D, 0x01, 0x00,
-  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x35, 0x9B,  0x05, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x2F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x02, 0x00, 0x08,  0x36, 0x9B, 0x09, 0x00,  0x00, 0x01, 0x00, 0x73,  0x72, 0x63, 0x00, 0x64,
-  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x37,  0x05, 0x01, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x38,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x12, 0x9D,  0x02, 0x00, 0x19, 0x00,
-  0x96, 0x09, 0x00, 0x05,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x35, 0x52, 0x17,  0x99, 0x02, 0x00, 0x2C,  0x00, 0x96, 0x02, 0x00,  0x08, 0x38, 0x1C, 0x96,
-  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x34, 0x52,
+  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x4C, 0x07, 0x08, 0x00,
+  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
+  0x96, 0x13, 0x00, 0x08,  0x4D, 0x07, 0x09, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
+  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x10,
+  0x00, 0x08, 0x30, 0x08,  0x4E, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
+  0x45, 0x40, 0x4F, 0x96,  0x09, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x30, 0x08, 0x4D, 0x1C,
+  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,
+  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x33, 0x07, 0x00, 0x00,
+  0x00, 0x00, 0x07, 0x2D,  0x01, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
+  0x4F, 0x07, 0x0A, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
+  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x13, 0x00, 0x08,  0x50, 0x07, 0x0B, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
+  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x51, 0x07, 0x0C, 0x00,  0x00, 0x00, 0x07, 0xFD,
+  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
+  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x35, 0x9B, 0x05, 0x00,
+  0x00, 0x00, 0x00, 0x00,  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x4D, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x36, 0x9B,  0x09, 0x00, 0x00, 0x01,  0x00, 0x73, 0x72, 0x63,
+  0x00, 0x72, 0x00, 0x96,  0x02, 0x00, 0x08, 0x38,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x12, 0x9D,
+  0x02, 0x00, 0x27, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x37, 0x05,
+  0x00, 0x4F, 0x96, 0x09,  0x00, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x35,  0x52, 0x17, 0x99, 0x02,  0x00, 0x3A, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
+  0x1C, 0x96, 0x04, 0x00,  0x08, 0x37, 0x05, 0x01,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x38, 0x1C, 0x96,
+  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x51, 0x52,
   0x17, 0x96, 0x09, 0x00,  0x05, 0x01, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x35, 0x52,  0x17, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x39, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0xB3, 0x00, 0x96,
-  0x03, 0x00, 0x08, 0x3A,  0x02, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x46,  0x87, 0x01, 0x00, 0x00,
-  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,  0x91, 0x00, 0x96, 0x04,  0x00, 0x08, 0x0A, 0x04,
-  0x00, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x3A, 0x1C,  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,
-  0x41, 0x00, 0x96, 0x02,  0x00, 0x08, 0x3A, 0x4C,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x3D, 0x08, 0x0A,
-  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x3B, 0x3D,  0x47, 0x96, 0x02, 0x00,
-  0x08, 0x3C, 0x47, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0A, 0x1C, 0x4E,
-  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x3B, 0x3D, 0x47,  0x47, 0x1D, 0x99, 0x02,
-  0x00, 0x33, 0x00, 0x96,  0x04, 0x00, 0x08, 0x3A,  0x08, 0x0A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,
-  0x00, 0x00, 0x00, 0x08,  0x3B, 0x3D, 0x96, 0x02,  0x00, 0x08, 0x3C, 0x47,  0x96, 0x02, 0x00, 0x08,
-  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0A, 0x1C,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,
-  0x00, 0x08, 0x3B, 0x3D,  0x47, 0x1D, 0x99, 0x02,  0x00, 0x61, 0xFF, 0x96,  0x02, 0x00, 0x08, 0x3A,
-  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
-  0x02, 0x00, 0x08, 0x3E,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x0D, 0x00,  0x96, 0x02, 0x00, 0x08,
-  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x3F, 0x4E,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x40, 0x9B,  0x05, 0x00, 0x00, 0x00,
-  0x00, 0x0D, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x41, 0x4E, 0x3E,
-  0x4F, 0x96, 0x08, 0x00,  0x07, 0x83, 0x00, 0x00,  0x00, 0x02, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
-  0x13, 0x00, 0x08, 0x42,  0x07, 0x10, 0x00, 0x00,  0x00, 0x07, 0xF4, 0x01,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x43, 0x3D, 0x1D, 0x96,  0x0E, 0x00, 0x07, 0x06,  0x00, 0x00, 0x00, 0x08,
-  0x44, 0x07, 0xF4, 0x01,  0x00, 0x00, 0x08, 0x42,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x04,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,  0x13, 0x00, 0x08, 0x45,
-  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
-  0x43, 0x3D, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
-  0x13, 0x00, 0x08, 0x46,  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x47,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x48,  0x07, 0x03, 0x00, 0x00,
-  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x49,
-  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
-  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
-  0x13, 0x00, 0x08, 0x4A,  0x07, 0x05, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x39,  0x07, 0x06, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x4B,  0x07, 0x07, 0x00, 0x00,
-  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x4C,
-  0x07, 0x08, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
-  0x01, 0x3D, 0x4F, 0x96,  0x13, 0x00, 0x08, 0x4D,  0x07, 0x09, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x43, 0x3D, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x4D,
-  0x1C, 0x96, 0x10, 0x00,  0x08, 0x30, 0x08, 0x4E,  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
-  0x00, 0x00, 0x08, 0x45,  0x40, 0x4F, 0x96, 0x09,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x30,
-  0x08, 0x4D, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
-  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x33,
-  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
-  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
-  0x13, 0x00, 0x08, 0x4F,  0x07, 0x0A, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x50,  0x07, 0x0B, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x4D,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x51,  0x07, 0x0C, 0x00, 0x00,
-  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x35,
-  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x4D, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x36, 0x9B, 0x09,  0x00, 0x00, 0x01, 0x00,
-  0x73, 0x72, 0x63, 0x00,  0x72, 0x00, 0x96, 0x02,  0x00, 0x08, 0x38, 0x1C,  0x96, 0x01, 0x00, 0x02,
-  0x49, 0x12, 0x9D, 0x02,  0x00, 0x27, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x04, 0x00,
-  0x08, 0x37, 0x05, 0x00,  0x4F, 0x96, 0x09, 0x00,  0x05, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
-  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x35, 0x52,  0x17, 0x99, 0x02, 0x00,  0x3A, 0x00, 0x96, 0x02,
-  0x00, 0x08, 0x09, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x37, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x38, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x51, 0x52, 0x17,  0x96, 0x09, 0x00, 0x05,  0x01, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x35, 0x52, 0x17,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x4D, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x3E, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,
-  0x0D, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x3F, 0x4E, 0x3E, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
-  0x40, 0x9B, 0x05, 0x00,  0x00, 0x00, 0x00, 0x0D,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x41,  0x4E, 0x3E, 0x4F, 0x96,  0x07, 0x00, 0x08, 0x52,  0x07, 0x00, 0x00, 0x00,
-  0x00, 0x43, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x52,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x53, 0x07, 0x00,
-  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x52, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x53,
-  0x4E, 0x96, 0x13, 0x00,  0x08, 0x54, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x0B, 0x00, 0x00, 0x00,
-  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x07, 0x00,  0x07, 0x00, 0x00, 0x00,
-  0x00, 0x08, 0x52, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x53, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x54, 0x52,
-  0x17, 0x96, 0x02, 0x00,  0x08, 0x52, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x53,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0x54, 0x3A, 0x17,  0x96, 0x02, 0x00, 0x08,  0x55, 0x9B, 0x0C, 0x00,  0x00, 0x01, 0x00, 0x74,
-  0x61, 0x72, 0x67, 0x65,  0x74, 0x00, 0x27, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x04,
-  0x00, 0x08, 0x56, 0x08,  0x56, 0x1C, 0x4F, 0x96,  0x08, 0x00, 0x07, 0x07,  0x00, 0x00, 0x00, 0x02,
-  0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x1D,
-  0x96, 0x09, 0x00, 0x08,  0x57, 0x07, 0xBC, 0x02,  0x00, 0x00, 0x08, 0x55,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,
-  0x08, 0x00, 0x07, 0x07,  0x00, 0x00, 0x00, 0x02,  0x08, 0x55, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
-  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x02, 0x00,
-  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x59, 0x9B, 0x0C,
-  0x00, 0x00, 0x01, 0x00,  0x6D, 0x65, 0x74, 0x68,  0x6F, 0x64, 0x00, 0x5B,  0x00, 0x96, 0x09, 0x00,
-  0x08, 0x5C, 0x07, 0x00,  0x00, 0x00, 0x00, 0x08,  0x5A, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x5B, 0x52,
-  0x3C, 0x96, 0x02, 0x00,  0x08, 0x5C, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x5D,  0x49, 0x9D, 0x02, 0x00,
-  0x2D, 0x00, 0x96, 0x02,  0x00, 0x08, 0x5C, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x5E, 0x49, 0x9D, 0x02,
-  0x00, 0x0E, 0x00, 0x96,  0x05, 0x00, 0x07, 0x00,  0x00, 0x00, 0x00, 0x3E,  0x99, 0x02, 0x00, 0x09,
-  0x00, 0x96, 0x05, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x3E, 0x99, 0x02,  0x00, 0x09, 0x00, 0x96,
-  0x05, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x3E,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x5F, 0x9B, 0x17,  0x00, 0x00, 0x03, 0x00,
-  0x75, 0x72, 0x6C, 0x00,  0x74, 0x61, 0x72, 0x67,  0x65, 0x74, 0x00, 0x6D,  0x65, 0x74, 0x68, 0x6F,
-  0x64, 0x00, 0x97, 0x00,  0x96, 0x02, 0x00, 0x08,  0x56, 0x1C, 0x44, 0x96,  0x02, 0x00, 0x08, 0x60,
-  0x49, 0x12, 0x9D, 0x02,  0x00, 0x08, 0x00, 0x96,  0x04, 0x00, 0x08, 0x56,  0x08, 0x4E, 0x1D, 0x96,
-  0x04, 0x00, 0x08, 0x61,  0x08, 0x5A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
-  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x59, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x61, 0x1C, 0x96,
-  0x05, 0x00, 0x07, 0x00,  0x00, 0x00, 0x00, 0x49,  0x9D, 0x02, 0x00, 0x3E,  0x00, 0x96, 0x02, 0x00,
-  0x08, 0x61, 0x1C, 0x96,  0x05, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x49,  0x9D, 0x02, 0x00, 0x15,
-  0x00, 0x96, 0x02, 0x00,  0x08, 0x62, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x56,  0x1C, 0x9A, 0x01, 0x00,
-  0x02, 0x99, 0x02, 0x00,  0x10, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x56, 0x1C, 0x9A, 0x01,  0x00, 0x01, 0x99, 0x02,  0x00, 0x10, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x56, 0x1C, 0x9A,  0x01, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x63, 0x9B, 0x10, 0x00,
-  0x00, 0x02, 0x00, 0x75,  0x72, 0x6C, 0x00, 0x6D,  0x65, 0x74, 0x68, 0x6F,  0x64, 0x00, 0x99, 0x00,
-  0x96, 0x04, 0x00, 0x08,  0x61, 0x08, 0x5A, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
-  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x59,  0x52, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
-  0x20, 0x96, 0x02, 0x00,  0x08, 0x61, 0x1C, 0x96,  0x05, 0x00, 0x07, 0x00,  0x00, 0x00, 0x00, 0x49,
-  0x9D, 0x02, 0x00, 0x4A,  0x00, 0x96, 0x02, 0x00,  0x08, 0x61, 0x1C, 0x96,  0x05, 0x00, 0x07, 0x01,
-  0x00, 0x00, 0x00, 0x49,  0x9D, 0x02, 0x00, 0x1B,  0x00, 0x96, 0x02, 0x00,  0x08, 0x62, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x64, 0x4E, 0x9A,  0x01, 0x00, 0xC2, 0x99,
-  0x02, 0x00, 0x16, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,  0x00, 0xC1, 0x99, 0x02,  0x00, 0x16, 0x00, 0x96,
+  0x00, 0x08, 0x35, 0x52,  0x17, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x4D, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x3E, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0x0D, 0x00, 0x96,
+  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x3F, 0x4E, 0x3E,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x4D, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x40, 0x9B, 0x05,
+  0x00, 0x00, 0x00, 0x00,  0x0D, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x41, 0x4E, 0x3E, 0x4F,  0x96, 0x07, 0x00, 0x08,  0x52, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x1D,
+  0x96, 0x02, 0x00, 0x08,  0x52, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x53, 0x07,  0x00, 0x00, 0x00, 0x00,
+  0x43, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x52, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x53, 0x4E, 0x96, 0x13,
+  0x00, 0x08, 0x54, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x0B, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
+  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x07,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x08, 0x52,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x53, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x54,  0x52, 0x17, 0x96, 0x02,
+  0x00, 0x08, 0x52, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x53, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x54, 0x3A,
+  0x17, 0x96, 0x02, 0x00,  0x08, 0x55, 0x9B, 0x0C,  0x00, 0x00, 0x01, 0x00,  0x74, 0x61, 0x72, 0x67,
+  0x65, 0x74, 0x00, 0x27,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x56,
+  0x08, 0x56, 0x1C, 0x4F,  0x96, 0x08, 0x00, 0x07,  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x09, 0x1C,
+  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x1D, 0x96, 0x09, 0x00,
+  0x08, 0x57, 0x07, 0xBC,  0x02, 0x00, 0x00, 0x08,  0x55, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,  0x96, 0x08, 0x00, 0x07,
+  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x55, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,
+  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x59, 0x9B,  0x0C, 0x00, 0x00, 0x01,
+  0x00, 0x6D, 0x65, 0x74,  0x68, 0x6F, 0x64, 0x00,  0x5B, 0x00, 0x96, 0x09,  0x00, 0x08, 0x5C, 0x07,
+  0x00, 0x00, 0x00, 0x00,  0x08, 0x5A, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x5B,  0x52, 0x3C, 0x96, 0x02,
+  0x00, 0x08, 0x5C, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x5D, 0x49, 0x9D, 0x02,  0x00, 0x2D, 0x00, 0x96,
+  0x02, 0x00, 0x08, 0x5C,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x5E, 0x49, 0x9D,  0x02, 0x00, 0x0E, 0x00,
+  0x96, 0x05, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x3E, 0x99, 0x02, 0x00,  0x09, 0x00, 0x96, 0x05,
+  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x3E, 0x99,  0x02, 0x00, 0x09, 0x00,  0x96, 0x05, 0x00, 0x07,
+  0x02, 0x00, 0x00, 0x00,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x5F, 0x9B,  0x17, 0x00, 0x00, 0x03,  0x00, 0x75, 0x72, 0x6C,
+  0x00, 0x74, 0x61, 0x72,  0x67, 0x65, 0x74, 0x00,  0x6D, 0x65, 0x74, 0x68,  0x6F, 0x64, 0x00, 0x97,
+  0x00, 0x96, 0x02, 0x00,  0x08, 0x56, 0x1C, 0x44,  0x96, 0x02, 0x00, 0x08,  0x60, 0x49, 0x12, 0x9D,
+  0x02, 0x00, 0x08, 0x00,  0x96, 0x04, 0x00, 0x08,  0x56, 0x08, 0x4E, 0x1D,  0x96, 0x04, 0x00, 0x08,
+  0x61, 0x08, 0x5A, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x59,  0x52, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x61, 0x1C,  0x96, 0x05, 0x00, 0x07,
+  0x00, 0x00, 0x00, 0x00,  0x49, 0x9D, 0x02, 0x00,  0x3E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x61, 0x1C,
+  0x96, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x49, 0x9D, 0x02, 0x00,  0x15, 0x00, 0x96, 0x02,
+  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x56, 0x1C, 0x9A, 0x01,  0x00, 0x02, 0x99, 0x02,
+  0x00, 0x10, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x56, 0x1C, 0x9A,
+  0x01, 0x00, 0x01, 0x99,  0x02, 0x00, 0x10, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x56, 0x1C,  0x9A, 0x01, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x63, 0x9B, 0x10,  0x00, 0x00, 0x02, 0x00,
+  0x75, 0x72, 0x6C, 0x00,  0x6D, 0x65, 0x74, 0x68,  0x6F, 0x64, 0x00, 0x99,  0x00, 0x96, 0x04, 0x00,
+  0x08, 0x61, 0x08, 0x5A,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x59, 0x52, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x20, 0x96, 0x02,
+  0x00, 0x08, 0x61, 0x1C,  0x96, 0x05, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x49, 0x9D, 0x02, 0x00,
+  0x4A, 0x00, 0x96, 0x02,  0x00, 0x08, 0x61, 0x1C,  0x96, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
+  0x49, 0x9D, 0x02, 0x00,  0x1B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x64, 0x4E,  0x9A, 0x01, 0x00, 0xC2,  0x99, 0x02, 0x00, 0x16,
+  0x00, 0x96, 0x02, 0x00,  0x08, 0x62, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x64, 0x4E, 0x9A,  0x01, 0x00, 0xC1, 0x99,  0x02, 0x00, 0x16, 0x00,  0x96, 0x02, 0x00, 0x08,
+  0x62, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,
+  0x00, 0xC0, 0x8B, 0x01,  0x00, 0x00, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x58,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x65,  0x9B, 0x10, 0x00, 0x00,  0x02, 0x00, 0x75, 0x72,
+  0x6C, 0x00, 0x6D, 0x65,  0x74, 0x68, 0x6F, 0x64,  0x00, 0x99, 0x00, 0x96,  0x04, 0x00, 0x08, 0x61,
+  0x08, 0x5A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x59, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x20,  0x96, 0x02, 0x00, 0x08,
+  0x61, 0x1C, 0x96, 0x05,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x49, 0x9D,  0x02, 0x00, 0x4A, 0x00,
+  0x96, 0x02, 0x00, 0x08,  0x61, 0x1C, 0x96, 0x05,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x49, 0x9D,
+  0x02, 0x00, 0x1B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,  0x00, 0x42, 0x99, 0x02,  0x00, 0x16, 0x00, 0x96,
   0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x64,
-  0x4E, 0x9A, 0x01, 0x00,  0xC0, 0x8B, 0x01, 0x00,  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x65, 0x9B,  0x10, 0x00, 0x00, 0x02,
-  0x00, 0x75, 0x72, 0x6C,  0x00, 0x6D, 0x65, 0x74,  0x68, 0x6F, 0x64, 0x00,  0x99, 0x00, 0x96, 0x04,
-  0x00, 0x08, 0x61, 0x08,  0x5A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x59, 0x52, 0x3C,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x20, 0x96,
-  0x02, 0x00, 0x08, 0x61,  0x1C, 0x96, 0x05, 0x00,  0x07, 0x00, 0x00, 0x00,  0x00, 0x49, 0x9D, 0x02,
-  0x00, 0x4A, 0x00, 0x96,  0x02, 0x00, 0x08, 0x61,  0x1C, 0x96, 0x05, 0x00,  0x07, 0x01, 0x00, 0x00,
-  0x00, 0x49, 0x9D, 0x02,  0x00, 0x1B, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x64,  0x4E, 0x9A, 0x01, 0x00,  0x42, 0x99, 0x02, 0x00,
-  0x16, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x64, 0x4E,  0x9A, 0x01, 0x00, 0x41,  0x99, 0x02, 0x00, 0x16,  0x00, 0x96, 0x02, 0x00,
-  0x08, 0x62, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x64, 0x4E, 0x9A,
-  0x01, 0x00, 0x40, 0x8B,  0x01, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x66, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x84,
-  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x67, 0x07, 0x01, 0x00,
-  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-  0x68, 0x07, 0x04, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x13, 0x00, 0x08,  0x69, 0x07, 0x05, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
-  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x40, 0x07, 0x06, 0x00,  0x00, 0x00, 0x07, 0x84,
-  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x3E, 0x07, 0x07, 0x00,
-  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-  0x6A, 0x07, 0x0A, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x13, 0x00, 0x08,  0x6B, 0x07, 0x0C, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
-  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x6C, 0x07, 0x0D, 0x00,  0x00, 0x00, 0x07, 0x84,
-  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x6D, 0x07, 0x0E, 0x00,
-  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-  0x6E, 0x07, 0x0F, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x13, 0x00, 0x08,  0x6F, 0x07, 0x10, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
-  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x70, 0x07, 0x11, 0x00,  0x00, 0x00, 0x07, 0x84,
-  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x71, 0x07, 0x12, 0x00,
-  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-  0x72, 0x07, 0x13, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x13, 0x00, 0x08,  0x73, 0x07, 0x14, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
-  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x74, 0x07, 0x15, 0x00,  0x00, 0x00, 0x07, 0x84,
-  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x75, 0x07, 0x00, 0x00,
-  0x00, 0x00, 0x07, 0x85,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-  0x76, 0x07, 0xC8, 0x00,  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x09, 0x00, 0x07,  0x80, 0x00, 0x00, 0x00,  0x08, 0x77, 0x08, 0x58,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,
-  0x05, 0x3D, 0x17, 0x96,  0x09, 0x00, 0x08, 0x78,  0x07, 0x85, 0x03, 0x00,  0x00, 0x08, 0x58, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,
-  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x58, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,
-  0x96, 0x13, 0x00, 0x08,  0x79, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,
-  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x7A, 0x07, 0x66, 0x00,  0x00, 0x00, 0x07, 0x68,
-  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x7B, 0x07, 0x68, 0x00,
-  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-  0x7C, 0x07, 0x69, 0x00,  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x13, 0x00, 0x08,  0x7D, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x6E,
-  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x02, 0x00, 0x08,
-  0x79, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x7E, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x71, 0x00, 0x00,
-  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x43,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
-  0x7F, 0x9B, 0x07, 0x00,  0x00, 0x01, 0x00, 0x6F,  0x00, 0x67, 0x00, 0x96,  0x02, 0x00, 0x08, 0x13,
-  0x1C, 0x44, 0x96, 0x02,  0x00, 0x08, 0x80, 0x49,  0x12, 0x12, 0x9D, 0x02,  0x00, 0x05, 0x00, 0x96,
-  0x01, 0x00, 0x02, 0x3E,  0x96, 0x07, 0x00, 0x08,  0x81, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x3C,
-  0x96, 0x02, 0x00, 0x08,  0x13, 0x46, 0x87, 0x01,  0x00, 0x00, 0x96, 0x01,  0x00, 0x02, 0x49, 0x9D,
-  0x02, 0x00, 0x27, 0x00,  0x96, 0x04, 0x00, 0x08,  0x82, 0x04, 0x00, 0x3C,  0x96, 0x02, 0x00, 0x08,
-  0x81, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x82, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x13, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x82, 0x1C,  0x4E, 0x4F, 0x99, 0x02,  0x00, 0xCB, 0xFF, 0x96,  0x02, 0x00, 0x08, 0x81,
-  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,
-  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x83, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,
-  0x24, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x84, 0x07, 0x00, 0x00,
-  0x00, 0x00, 0x43, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x85, 0x07,
-  0x00, 0x00, 0x00, 0x00,  0x43, 0x4F, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x86, 0x9B, 0x0A,
-  0x00, 0x00, 0x01, 0x00,  0x6E, 0x61, 0x6D, 0x65,  0x00, 0x25, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x84, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x87,  0x1C, 0x4E, 0x96, 0x07,
-  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7F, 0x52, 0x3E,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x88,  0x9B, 0x10, 0x00, 0x00,  0x02, 0x00, 0x6E, 0x61,
-  0x6D, 0x65, 0x00, 0x73,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x67, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x84, 0x4E, 0x12,  0x12, 0x9D, 0x02, 0x00,  0x12, 0x00, 0x96, 0x02,
-  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x84, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x84, 0x4E,  0x96, 0x02, 0x00, 0x08,
-  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
-  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7F,  0x52, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,
-  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8A,
-  0x52, 0x17, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,
-  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x8B, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,
-  0x5B, 0x00, 0x96, 0x04,  0x00, 0x08, 0x8C, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x84, 0x4E,
-  0x3C, 0x96, 0x07, 0x00,  0x08, 0x8D, 0x07, 0x00,  0x00, 0x00, 0x00, 0x42,  0x3C, 0x96, 0x02, 0x00,
-  0x08, 0x8C, 0x46, 0x87,  0x01, 0x00, 0x00, 0x96,  0x01, 0x00, 0x02, 0x49,  0x9D, 0x02, 0x00, 0x25,
-  0x00, 0x96, 0x04, 0x00,  0x08, 0x82, 0x04, 0x00,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x82, 0x1C, 0x96,
-  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0D, 0x52,
-  0x17, 0x99, 0x02, 0x00,  0xCD, 0xFF, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,  0x3E, 0x4F, 0x96, 0x02,
-  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x02, 0x00, 0x08,  0x8A, 0x9B, 0x0A, 0x00,  0x00, 0x01, 0x00, 0x6E,  0x61, 0x6D, 0x65, 0x00,
-  0x5C, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x85, 0x4E, 0x12, 0x12,
-  0x9D, 0x02, 0x00, 0x12,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x85,
-  0x07, 0x00, 0x00, 0x00,  0x00, 0x43, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x85, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x87,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x84,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x4E,  0x96, 0x07, 0x00, 0x07,
-  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8E,  0x52, 0x4F, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,
-  0x4E, 0x96, 0x02, 0x00,  0x08, 0x8E, 0x9B, 0x0B,  0x00, 0x00, 0x01, 0x00,  0x73, 0x74, 0x79, 0x6C,
-  0x65, 0x00, 0x9D, 0x03,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x01,  0x00, 0x02, 0x49, 0x12,
-  0x9D, 0x02, 0x00, 0x05,  0x00, 0x96, 0x01, 0x00,  0x02, 0x3E, 0x96, 0x09,  0x00, 0x08, 0x8F, 0x07,
-  0x00, 0x00, 0x00, 0x00,  0x08, 0x7D, 0x40, 0x3C,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x90, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x15, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,
-  0x96, 0x04, 0x00, 0x08,  0x91, 0x08, 0x89, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x90, 0x4E, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x92, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x93,
-  0x49, 0x9D, 0x02, 0x00,  0x2B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x92, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x94, 0x49,  0x12, 0x9D, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,
-  0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x93, 0x05, 0x00, 0x4F,  0x99, 0x02, 0x00, 0x0E,
-  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x93,  0x05, 0x01, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x95, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x41,
-  0x00, 0x96, 0x04, 0x00,  0x08, 0x8C, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x95, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x96, 0x52,
-  0x3C, 0x96, 0x02, 0x00,  0x08, 0x8C, 0x1C, 0x96,  0x01, 0x00, 0x02, 0x49,  0x12, 0x12, 0x9D, 0x02,
-  0x00, 0x0F, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x95, 0x08, 0x8C,
-  0x1C, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x97, 0x08, 0x89, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x97, 0x4E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x98, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x26,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
-  0x04, 0x00, 0x08, 0x99,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x98,  0x4E, 0x96, 0x07, 0x00,
-  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x9A, 0x52, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x9B, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,
-  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x9C,  0x08, 0x89, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x9B,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x9E,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0x9F, 0x49, 0x9D,  0x02, 0x00, 0x2B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x9E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x94, 0x49, 0x12, 0x9D,  0x02, 0x00, 0x0E, 0x00,
-  0x96, 0x02, 0x00, 0x08,  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9F, 0x05,  0x00, 0x4F, 0x99, 0x02,
-  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x9F, 0x05, 0x01,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA0,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0xA1, 0x49, 0x9D,  0x02, 0x00, 0x4F, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0xA0, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xA2, 0x49, 0x9D, 0x02,  0x00, 0x25, 0x00, 0x96,
-  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0xA0, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0xA0, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x99,
-  0x02, 0x00, 0x0E, 0x00,  0x96, 0x02, 0x00, 0x08,  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xA0, 0x05,
-  0x00, 0x4F, 0x99, 0x02,  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,
-  0x08, 0xA0, 0x05, 0x01,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA3,
-  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x20, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,
-  0x08, 0xA3, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA3, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,
-  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0xA4, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
-  0x04, 0x00, 0x08, 0xA5,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA4,  0x4E, 0x96, 0x07, 0x00,
-  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0xA6,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x20, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
-  0x1C, 0x96, 0x04, 0x00,  0x08, 0xA6, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA6, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA7, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,  0x00, 0x96, 0x02, 0x00,
-  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0xA8,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA7,
-  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,  0x4F, 0x96, 0x02, 0x00,
-  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA9,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x3B, 0x00, 0x96,
-  0x04, 0x00, 0x08, 0x8C,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA9,  0x4E, 0x96, 0x07, 0x00,
-  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,  0x3C, 0x96, 0x07, 0x00,  0x07, 0x00, 0x00, 0x00,
-  0x00, 0x08, 0x8C, 0x1C,  0x48, 0x12, 0x9D, 0x02,  0x00, 0x0F, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
-  0x1C, 0x96, 0x04, 0x00,  0x08, 0xAA, 0x08, 0x8C,  0x1C, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0xAB, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xAC, 0x49,  0x9D, 0x02, 0x00, 0x2B,
-  0x00, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xAB,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0xAD, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
-  0x04, 0x00, 0x08, 0xAC,  0x05, 0x00, 0x4F, 0x99,  0x02, 0x00, 0x0E, 0x00,  0x96, 0x02, 0x00, 0x08,
-  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xAC, 0x05,  0x01, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,
-  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xAE, 0x9B, 0x09, 0x00,  0x00, 0x01, 0x00, 0x63,
-  0x73, 0x73, 0x00, 0xC8,  0x00, 0x96, 0x04, 0x00,  0x08, 0xB1, 0x08, 0xAF,  0x1C, 0x96, 0x07, 0x00,
-  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xB0, 0x52, 0x3C, 0x96,
-  0x02, 0x00, 0x08, 0xB1,  0x1C, 0x44, 0x96, 0x02,  0x00, 0x08, 0xB2, 0x49,  0x12, 0x9D, 0x02, 0x00,
-  0x06, 0x00, 0x96, 0x02,  0x00, 0x05, 0x00, 0x3E,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x84, 0x4E,  0x12, 0x12, 0x9D, 0x02,  0x00, 0x12, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
-  0x1C, 0x96, 0x07, 0x00,  0x08, 0x84, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,
-  0x08, 0xB1, 0x46, 0x87,  0x01, 0x00, 0x00, 0x96,  0x01, 0x00, 0x02, 0x49,  0x9D, 0x02, 0x00, 0x56,
-  0x00, 0x96, 0x04, 0x00,  0x08, 0x82, 0x04, 0x00,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x84,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x82, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xB1,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x82, 0x1C, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
-  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7F,  0x52, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x82, 0x1C,
-  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8A,
-  0x52, 0x17, 0x99, 0x02,  0x00, 0x9C, 0xFF, 0x96,  0x02, 0x00, 0x05, 0x01,  0x3E, 0x4F, 0x96, 0x02,
-  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x04, 0x00, 0x08,  0xB3, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,
-  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xAE, 0x4E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,
-  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
-  0x08, 0x33, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x2D, 0x01, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
-  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
-  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x35,  0x9B, 0x05, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
-  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x36,  0x9B, 0x09, 0x00, 0x00,
-  0x01, 0x00, 0x73, 0x72,  0x63, 0x00, 0x6B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x38, 0x1C, 0x96, 0x01,
-  0x00, 0x02, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x19,  0x00, 0x96, 0x09, 0x00,  0x05, 0x00, 0x07, 0x01,
-  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x35, 0x52,  0x17, 0x99, 0x02, 0x00,
-  0x41, 0x00, 0x96, 0x04,  0x00, 0x08, 0xB1, 0x08,  0x38, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
-  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xB3, 0x52, 0x3C,  0x96, 0x02, 0x00, 0x08,
-  0x09, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x37, 0x08,  0xB1, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0xB1,
+  0x4E, 0x9A, 0x01, 0x00,  0x41, 0x99, 0x02, 0x00,  0x16, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x64, 0x4E,  0x9A, 0x01, 0x00, 0x40,
+  0x8B, 0x01, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
+  0x4E, 0x96, 0x13, 0x00,  0x08, 0x66, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x67, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,
+  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x68, 0x07, 0x04,
+  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
+  0x08, 0x69, 0x07, 0x05,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
+  0x4E, 0x96, 0x13, 0x00,  0x08, 0x40, 0x07, 0x06,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x3E, 0x07, 0x07,  0x00, 0x00, 0x00, 0x07,
+  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6A, 0x07, 0x0A,
+  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
+  0x08, 0x6B, 0x07, 0x0C,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
+  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6C, 0x07, 0x0D,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6D, 0x07, 0x0E,  0x00, 0x00, 0x00, 0x07,
+  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6E, 0x07, 0x0F,
+  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
+  0x08, 0x6F, 0x07, 0x10,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
+  0x4E, 0x96, 0x13, 0x00,  0x08, 0x70, 0x07, 0x11,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x71, 0x07, 0x12,  0x00, 0x00, 0x00, 0x07,
+  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x72, 0x07, 0x13,
+  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
+  0x08, 0x73, 0x07, 0x14,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
+  0x4E, 0x96, 0x13, 0x00,  0x08, 0x74, 0x07, 0x15,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x75, 0x07, 0xC8,  0x00, 0x00, 0x00, 0x07,
+  0x68, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x09, 0x00,
+  0x07, 0x80, 0x00, 0x00,  0x00, 0x08, 0x6A, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x09, 0x00, 0x08,
+  0x76, 0x07, 0x85, 0x03,  0x00, 0x00, 0x08, 0x58,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
+  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,  0x08, 0x00, 0x07, 0x03,
+  0x00, 0x00, 0x00, 0x02,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x07, 0x00,
+  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x13, 0x00,  0x08, 0x77, 0x07, 0x00,
+  0x00, 0x00, 0x00, 0x07,  0x68, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x43, 0x3D,
+  0x1D, 0x96, 0x02, 0x00,  0x08, 0x77, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
+  0x08, 0x78, 0x07, 0x66,  0x00, 0x00, 0x00, 0x07,  0x68, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x77, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
+  0x4E, 0x96, 0x13, 0x00,  0x08, 0x79, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x68, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x77, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x7A, 0x07, 0x69,  0x00, 0x00, 0x00, 0x07,
+  0x68, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x13, 0x00,
+  0x08, 0x7B, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x6E, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x43, 0x3D,  0x1D, 0x96, 0x02, 0x00,  0x08, 0x77, 0x1C, 0x96,  0x13, 0x00, 0x08, 0x7C,
+  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x71, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
+  0x43, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x77,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7C, 0x4E, 0x96,
+  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x7D, 0x9B, 0x07,  0x00, 0x00, 0x01, 0x00,
+  0x6F, 0x00, 0x67, 0x00,  0x96, 0x02, 0x00, 0x08,  0x13, 0x1C, 0x44, 0x96,  0x02, 0x00, 0x08, 0x7E,
+  0x49, 0x12, 0x12, 0x9D,  0x02, 0x00, 0x05, 0x00,  0x96, 0x01, 0x00, 0x02,  0x3E, 0x96, 0x07, 0x00,
+  0x08, 0x7F, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x13, 0x46, 0x87,
+  0x01, 0x00, 0x00, 0x96,  0x01, 0x00, 0x02, 0x49,  0x9D, 0x02, 0x00, 0x27,  0x00, 0x96, 0x04, 0x00,
+  0x08, 0x80, 0x04, 0x00,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x7F, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x80,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x80,  0x1C, 0x4E, 0x4F, 0x99,
+  0x02, 0x00, 0xCB, 0xFF,  0x96, 0x02, 0x00, 0x08,  0x7F, 0x1C, 0x3E, 0x4F,  0x96, 0x02, 0x00, 0x08,
+  0x77, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7C, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,
+  0x00, 0x08, 0x81, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0x24, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
+  0x1C, 0x96, 0x07, 0x00,  0x08, 0x82, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x83,  0x07, 0x00, 0x00, 0x00,  0x00, 0x43, 0x4F, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x77, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7C, 0x4E,  0x96, 0x02, 0x00, 0x08,
+  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x84, 0x9B,  0x0A, 0x00, 0x00, 0x01,  0x00, 0x6E, 0x61, 0x6D,
+  0x65, 0x00, 0x25, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x82, 0x4E,
+  0x96, 0x02, 0x00, 0x08,  0x85, 0x1C, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
+  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7D, 0x52,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x77, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x7C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
+  0x86, 0x9B, 0x10, 0x00,  0x00, 0x02, 0x00, 0x6E,  0x61, 0x6D, 0x65, 0x00,  0x73, 0x74, 0x79, 0x6C,
+  0x65, 0x00, 0x67, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x82, 0x4E,
+  0x12, 0x12, 0x9D, 0x02,  0x00, 0x12, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x07, 0x00,
+  0x08, 0x82, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x82,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x85, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x87,
   0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x35, 0x52, 0x17, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,
-  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0xB0, 0x07,  0x65, 0x00, 0x00, 0x00,
-  0x07, 0x71, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
-  0x96, 0x13, 0x00, 0x08,  0x9A, 0x07, 0x66, 0x00,  0x00, 0x00, 0x07, 0x71,  0x00, 0x00, 0x00, 0x07,
-  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x96, 0x07,
-  0x67, 0x00, 0x00, 0x00,  0x07, 0x71, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-  0x3D, 0x4F, 0x96, 0x08,  0x00, 0x07, 0x03, 0x04,  0x00, 0x00, 0x02, 0x08,  0x79, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
-  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x96, 0x09,  0x00, 0x07, 0x03, 0x04,  0x00, 0x00, 0x08, 0x7E,
-  0x08, 0x79, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
-  0x13, 0x00, 0x08, 0xB4,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0xFA, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0xB5,  0x07, 0x01, 0x00, 0x00,
-  0x00, 0x07, 0xFA, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,
-  0x13, 0x00, 0x08, 0xB6,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0xFA, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x04, 0x00, 0x08, 0xB7,  0x08, 0xB5, 0x1C, 0x1D,
-  0x96, 0x03, 0x00, 0x08,  0x13, 0x02, 0x1D, 0x96,  0x0D, 0x00, 0x07, 0x06,  0x00, 0x00, 0x00, 0x07,
-  0x01, 0x00, 0x00, 0x00,  0x02, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x04, 0x00, 0x00, 0x00,
-  0x08, 0x05, 0x3D, 0x17,  0x00
+  0x7D, 0x52, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x85,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,
+  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x88, 0x52, 0x17, 0x4F,  0x96, 0x02, 0x00, 0x08,
+  0x77, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7C, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,
+  0x00, 0x08, 0x89, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0x5B, 0x00, 0x96,  0x04, 0x00, 0x08, 0x8A,
+  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x82,  0x4E, 0x3C, 0x96, 0x07,  0x00, 0x08, 0x8B, 0x07,
+  0x00, 0x00, 0x00, 0x00,  0x42, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x8A, 0x46,  0x87, 0x01, 0x00, 0x00,
+  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,  0x25, 0x00, 0x96, 0x04,  0x00, 0x08, 0x80, 0x04,
+  0x00, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x80, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
+  0x08, 0x8B, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x0D,  0x52, 0x17, 0x99, 0x02,  0x00, 0xCD, 0xFF, 0x96,
+  0x02, 0x00, 0x08, 0x8B,  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x77,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x7C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x88, 0x9B, 0x0A,
+  0x00, 0x00, 0x01, 0x00,  0x6E, 0x61, 0x6D, 0x65,  0x00, 0x5C, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x83, 0x4E, 0x12,  0x12, 0x9D, 0x02, 0x00,  0x12, 0x00, 0x96, 0x02,
+  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x83, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x83, 0x4E,  0x96, 0x02, 0x00, 0x08,
+  0x85, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x82, 0x4E, 0x96, 0x02,
+  0x00, 0x08, 0x85, 0x1C,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x8C, 0x52, 0x4F, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x77, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x7C, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x8C, 0x9B,
+  0x0B, 0x00, 0x00, 0x01,  0x00, 0x73, 0x74, 0x79,  0x6C, 0x65, 0x00, 0x9D,  0x03, 0x96, 0x02, 0x00,
+  0x08, 0x87, 0x1C, 0x96,  0x01, 0x00, 0x02, 0x49,  0x12, 0x9D, 0x02, 0x00,  0x05, 0x00, 0x96, 0x01,
+  0x00, 0x02, 0x3E, 0x96,  0x09, 0x00, 0x08, 0x8D,  0x07, 0x00, 0x00, 0x00,  0x00, 0x08, 0x7B, 0x40,
+  0x3C, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8E,  0x4E, 0x12, 0x9D, 0x02,
+  0x00, 0x15, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8D,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x8F, 0x08, 0x87,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x8E, 0x4E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x87, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x90, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x91, 0x49, 0x9D, 0x02,  0x00, 0x2B, 0x00, 0x96,
+  0x02, 0x00, 0x08, 0x87,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x90, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x92,
+  0x49, 0x12, 0x9D, 0x02,  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8D,  0x1C, 0x96, 0x04, 0x00,
+  0x08, 0x91, 0x05, 0x00,  0x4F, 0x99, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,
+  0x96, 0x04, 0x00, 0x08,  0x91, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x87, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x93, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x41, 0x00, 0x96, 0x04,  0x00, 0x08, 0x8A, 0x08,
+  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x93, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
+  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x94,  0x52, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x8A, 0x1C,
+  0x96, 0x01, 0x00, 0x02,  0x49, 0x12, 0x12, 0x9D,  0x02, 0x00, 0x0F, 0x00,  0x96, 0x02, 0x00, 0x08,
+  0x8D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x93, 0x08,  0x8A, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x8D,
+  0x1C, 0x96, 0x04, 0x00,  0x08, 0x95, 0x08, 0x87,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x95, 0x4E, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x96, 0x4E,  0x12, 0x9D, 0x02, 0x00,
+  0x26, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x97, 0x08, 0x87, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x96, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x98, 0x52, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x87, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x99, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x20, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,
+  0x96, 0x04, 0x00, 0x08,  0x9A, 0x08, 0x87, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x99, 0x4E, 0x96, 0x07,
+  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x9B,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x9C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x9D, 0x49,  0x9D, 0x02, 0x00, 0x2B,
+  0x00, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x9C,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0x92, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8D, 0x1C, 0x96,
+  0x04, 0x00, 0x08, 0x9D,  0x05, 0x00, 0x4F, 0x99,  0x02, 0x00, 0x0E, 0x00,  0x96, 0x02, 0x00, 0x08,
+  0x8D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9D, 0x05,  0x01, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x9E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x9F, 0x49,  0x9D, 0x02, 0x00, 0x4F,
+  0x00, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x9E,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0xA0, 0x49, 0x9D,  0x02, 0x00, 0x25, 0x00,  0x96, 0x02, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x04,
+  0x00, 0x08, 0x9E, 0x08,  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x9E, 0x4E,  0x96, 0x07, 0x00, 0x07,
+  0x01, 0x00, 0x00, 0x00,  0x08, 0x9B, 0x3D, 0x4F,  0x99, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,
+  0x08, 0x8D, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x9E,  0x05, 0x00, 0x4F, 0x99,  0x02, 0x00, 0x0E, 0x00,
+  0x96, 0x02, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9E, 0x05,  0x01, 0x4F, 0x96, 0x02,
+  0x00, 0x08, 0x87, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xA1, 0x4E, 0x12, 0x9D,  0x02, 0x00, 0x20, 0x00,
+  0x96, 0x02, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xA1, 0x08,  0x87, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0xA1, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x9B, 0x3D, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xA2, 0x4E,  0x12, 0x9D, 0x02, 0x00,
+  0x20, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,  0x96, 0x04, 0x00, 0x08,  0xA3, 0x08, 0x87, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0xA2, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x9B,
+  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xA4, 0x4E, 0x12, 0x9D,
+  0x02, 0x00, 0x20, 0x00,  0x96, 0x02, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xA4, 0x08,
+  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xA4, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
+  0x08, 0x9B, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xA5, 0x4E,
+  0x12, 0x9D, 0x02, 0x00,  0x20, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,  0x96, 0x04, 0x00, 0x08,
+  0xA6, 0x08, 0x87, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xA5, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
+  0x00, 0x00, 0x08, 0x9B,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0xA7, 0x4E, 0x12, 0x9D,  0x02, 0x00, 0x3B, 0x00,  0x96, 0x04, 0x00, 0x08,  0x8A, 0x08, 0x87, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0xA7, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x9B,
+  0x3D, 0x3C, 0x96, 0x07,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x08, 0x8A,  0x1C, 0x48, 0x12, 0x9D,
+  0x02, 0x00, 0x0F, 0x00,  0x96, 0x02, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xA8, 0x08,
+  0x8A, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x87,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA9, 0x4E, 0x96,
+  0x02, 0x00, 0x08, 0xAA,  0x49, 0x9D, 0x02, 0x00,  0x2B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0xA9, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xAB, 0x49,  0x12, 0x9D, 0x02, 0x00,
+  0x0E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,  0x96, 0x04, 0x00, 0x08,  0xAA, 0x05, 0x00, 0x4F,
+  0x99, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8D, 0x1C, 0x96,  0x04, 0x00, 0x08, 0xAA,
+  0x05, 0x01, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x8D,  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x77,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0xAC, 0x9B, 0x09,  0x00, 0x00, 0x01, 0x00,  0x63, 0x73, 0x73, 0x00,  0xC8, 0x00, 0x96, 0x04,
+  0x00, 0x08, 0xAF, 0x08,  0xAD, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0xAE, 0x52, 0x3C,  0x96, 0x02, 0x00, 0x08,  0xAF, 0x1C, 0x44, 0x96,
+  0x02, 0x00, 0x08, 0xB0,  0x49, 0x12, 0x9D, 0x02,  0x00, 0x06, 0x00, 0x96,  0x02, 0x00, 0x05, 0x00,
+  0x3E, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x82,  0x4E, 0x12, 0x12, 0x9D,
+  0x02, 0x00, 0x12, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x82, 0x07,
+  0x00, 0x00, 0x00, 0x00,  0x43, 0x4F, 0x96, 0x02,  0x00, 0x08, 0xAF, 0x46,  0x87, 0x01, 0x00, 0x00,
+  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,  0x56, 0x00, 0x96, 0x04,  0x00, 0x08, 0x80, 0x04,
+  0x00, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x82, 0x4E, 0x96, 0x02,
+  0x00, 0x08, 0x80, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xAF, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x80, 0x1C,
+  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x7D, 0x52, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x80,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,
+  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x88, 0x52, 0x17, 0x99,  0x02, 0x00, 0x9C, 0xFF,
+  0x96, 0x02, 0x00, 0x05,  0x01, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x77,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x7C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x04, 0x00,  0x08, 0xB1, 0x08, 0x77,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0xAC, 0x4E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x77, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7C, 0x4E,
+  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x33, 0x07,  0x00, 0x00, 0x00, 0x00,
+  0x07, 0x2D, 0x01, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
+  0x00, 0x08, 0x77, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x02, 0x00, 0x08,  0x35, 0x9B, 0x05, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x4F, 0x96, 0x02,
+  0x00, 0x08, 0x77, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
+  0x96, 0x02, 0x00, 0x08,  0x36, 0x9B, 0x09, 0x00,  0x00, 0x01, 0x00, 0x73,  0x72, 0x63, 0x00, 0x6B,
+  0x00, 0x96, 0x02, 0x00,  0x08, 0x38, 0x1C, 0x96,  0x01, 0x00, 0x02, 0x49,  0x12, 0x9D, 0x02, 0x00,
+  0x19, 0x00, 0x96, 0x09,  0x00, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x35,  0x52, 0x17, 0x99, 0x02,  0x00, 0x41, 0x00, 0x96,  0x04, 0x00, 0x08, 0xAF,
+  0x08, 0x38, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0xB1, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x37,
+  0x08, 0xAF, 0x1C, 0x4F,  0x96, 0x02, 0x00, 0x08,  0xAF, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
+  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x35, 0x52, 0x17,  0x4F, 0x96, 0x02, 0x00,
+  0x08, 0x77, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7C,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
+  0x13, 0x00, 0x08, 0xAE,  0x07, 0x65, 0x00, 0x00,  0x00, 0x07, 0x71, 0x00,  0x00, 0x00, 0x07, 0x02,
+  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x77,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x7C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x98, 0x07, 0x66,
+  0x00, 0x00, 0x00, 0x07,  0x71, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x77, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7C,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x94,  0x07, 0x67, 0x00, 0x00,  0x00, 0x07, 0x71, 0x00,
+  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x08, 0x00, 0x07, 0x03,
+  0x04, 0x00, 0x00, 0x02,  0x08, 0x77, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7C,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
+  0x09, 0x00, 0x07, 0x03,  0x04, 0x00, 0x00, 0x08,  0x7C, 0x08, 0x77, 0x1C,  0x96, 0x07, 0x00, 0x07,
+  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0xB2, 0x07, 0x00, 0x00,
+  0x00, 0x00, 0x07, 0xFA,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x1D,
+  0x96, 0x13, 0x00, 0x08,  0xB3, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0xFA,  0x00, 0x00, 0x00, 0x07,
+  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x1D,  0x96, 0x13, 0x00, 0x08,  0xB4, 0x07, 0x02, 0x00,
+  0x00, 0x00, 0x07, 0xFA,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x1D,
+  0x96, 0x04, 0x00, 0x08,  0xB5, 0x08, 0xB3, 0x1C,  0x1D, 0x96, 0x03, 0x00,  0x08, 0x13, 0x02, 0x1D,
+  0x96, 0x0D, 0x00, 0x07,  0x06, 0x00, 0x00, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x02, 0x08, 0x09,
+  0x1C, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,  0x17, 0x00
 };
 
diff-tree df08f79f1a4f119c646922cecac83fbed966ade1 (from f85b0945dfa9e438af6dae91c91ed65d73340986)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 12:10:12 2007 +0300

    Format the typeof exception for TextField little better

diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 6af0db9..59b6052 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2104,10 +2104,12 @@ swfdec_action_type_of (SwfdecAsContext *
     case SWFDEC_AS_TYPE_OBJECT:
       {
 	SwfdecAsObject *obj = SWFDEC_AS_VALUE_GET_OBJECT (val);
-	if (SWFDEC_IS_TEXT_FIELD_MOVIE (obj)) {
-	  type = SWFDEC_AS_STR_object;
-	} else if (SWFDEC_IS_MOVIE (obj)) {
-	  type = SWFDEC_AS_STR_movieclip;
+	if (SWFDEC_IS_MOVIE (obj)) {
+	  if (SWFDEC_IS_TEXT_FIELD_MOVIE (obj)) {
+	    type = SWFDEC_AS_STR_object;
+	  } else {
+	    type = SWFDEC_AS_STR_movieclip;
+	  }
 	} else if (SWFDEC_IS_AS_FUNCTION (obj)) {
 	  type = SWFDEC_AS_STR_function;
 	} else {
diff-tree f85b0945dfa9e438af6dae91c91ed65d73340986 (from 1c59d3490ad6a002dcfebdc67fbcb6b6d20f9744)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 12:04:49 2007 +0300

    Fix typo: Was setting TextField's native properties to TextFormat by accident

diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 8e67933..a4ecd5c 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -749,7 +749,7 @@ swfdec_text_field_movie_init_properties 
 
   g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
 
-  swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextFormat, &val);
+  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);
diff-tree 1c59d3490ad6a002dcfebdc67fbcb6b6d20f9744 (from f8657b2bf57918cb493944e14e6cbc660c989c6c)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 12:02:03 2007 +0300

    Fix an assert when TextField has no text

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 3df04b0..2827961 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -297,7 +297,7 @@ swfdec_text_field_movie_generate_paragra
 
   num = 0;
   p = text->text_display;
-  while (p != NULL) {
+  while (p != NULL && *p != '\0') {
     num++;
     p = strchr (p, '\r');
     if (p != NULL) p++;
diff-tree f8657b2bf57918cb493944e14e6cbc660c989c6c (from 7feb2c4407bf21cf65dbc6c2dd77997636e9cda3)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 11:28:19 2007 +0300

    Fix reading of some integers values in TextFormat at version 8

diff --git a/libswfdec/swfdec_text_format.c b/libswfdec/swfdec_text_format.c
index 569dfd9..f507b86 100644
--- a/libswfdec/swfdec_text_format.c
+++ b/libswfdec/swfdec_text_format.c
@@ -258,16 +258,25 @@ swfdec_text_format_value_to_integer (Swf
   swfdec_as_value_to_string (cx, val);
 
   if (cx->version >= 8) {
-    if (!isnan (d) && ((!isfinite (d) && d > 0) || (isfinite (d) && d > (int)G_MAXINT32))) {
-      // don't check allow_negative here
-      return -2147483648;
-    } else {
-      if (!allow_negative && (int)d < 0) {
-	return 0;
+    if (isnan (d))
+      return (allow_negative ? G_MININT32 : 0);
+
+    if (!isfinite (d)) {
+      if (d > 0) {
+	return G_MININT32;
       } else {
-	return (int)d;
+	return (allow_negative ? G_MININT32 : 0);
       }
     }
+    if (d > (double)G_MAXINT32)
+      return G_MININT32;
+
+    n = (int)d;
+    if (!allow_negative && n < 0) {
+      return 0;
+    } else {
+      return n;
+    }
   } else {
     if (!allow_negative && n < 0) {
       return 0;
diff-tree 7feb2c4407bf21cf65dbc6c2dd77997636e9cda3 (from parents)
Merge: 2f16ab4da1787dc8e33ac0688197651d362a5dfc 0cf1868898db2da4a74e46c5fe7d3a68d35cf8e7
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 10:54:02 2007 +0300

    Merge branch 'master' into textfield

diff-tree 2f16ab4da1787dc8e33ac0688197651d362a5dfc (from e1711c4cde0487d8d5995727cda1a007274cb953)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Sat Oct 13 10:24:00 2007 +0300

    Create TextField's native properties even when TextField is created from a tag
    
    Also changed the property initialization to use _global.TextField.prototype and
    not object.__proto__. Plus don't initialize them only once, but every time a
    TextField is created

diff --git a/libswfdec/swfdec_player_internal.h b/libswfdec/swfdec_player_internal.h
index 7dc105c..182acd0 100644
--- a/libswfdec/swfdec_player_internal.h
+++ b/libswfdec/swfdec_player_internal.h
@@ -74,7 +74,6 @@ struct _SwfdecPlayer
   double		scale_y;		/* cached y scale value */
   int			offset_x;		/* x offset from top left edge after scaling */
   int			offset_y;		/* y offset from top left edge after scaling */
-  gboolean		edittext_movie_properties_initialized; /* whether TextField object's native properties have been initialized */
   gboolean		xml_properties_initialized; /* whether XML object's native properties have been initialized */
   gboolean		xml_node_properties_initialized; /* same for XMLNode */
 
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 40ed0a2..2ade6e2 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -101,6 +101,9 @@ void		swfdec_text_field_movie_set_text_f
 							 guint			start_index,
 							 guint			end_index);
 
+/* 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);
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index a050545..8e67933 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -741,6 +741,47 @@ swfdec_text_field_movie_add_variable (Sw
   swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
 }
 
+void
+swfdec_text_field_movie_init_properties (SwfdecAsContext *cx)
+{
+  SwfdecAsValue val;
+  SwfdecAsObject *object, *proto;
+
+  g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
+
+  swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextFormat, &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);
+
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
+      swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
+      swfdec_text_field_movie_get_htmlText,
+      swfdec_text_field_movie_set_htmlText);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
+      swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
+      swfdec_text_field_movie_get_condenseWhite,
+      swfdec_text_field_movie_set_condenseWhite);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
+      swfdec_text_field_movie_get_embedFonts,
+      swfdec_text_field_movie_set_embedFonts);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
+      swfdec_text_field_movie_get_length,
+      swfdec_text_field_movie_set_length);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
+      swfdec_text_field_movie_get_textColor,
+      swfdec_text_field_movie_set_textColor);
+  swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize,
+      swfdec_text_field_movie_get_autoSize,
+      swfdec_text_field_movie_set_autoSize);
+}
+
 SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
 void
 swfdec_text_field_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -763,39 +804,7 @@ swfdec_text_field_movie_construct (Swfde
 
   g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
 
-  if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
-    SwfdecAsValue val;
-    SwfdecAsObject *proto;
-
-    swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
-    g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
-    proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
-	swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
-	swfdec_text_field_movie_get_htmlText,
-	swfdec_text_field_movie_set_htmlText);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
-	swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
-	swfdec_text_field_movie_get_condenseWhite,
-	swfdec_text_field_movie_set_condenseWhite);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
-	swfdec_text_field_movie_get_embedFonts,
-	swfdec_text_field_movie_set_embedFonts);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
-	swfdec_text_field_movie_get_length,
-	swfdec_text_field_movie_set_length);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
-	swfdec_text_field_movie_get_textColor,
-	swfdec_text_field_movie_set_textColor);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize,
-	swfdec_text_field_movie_get_autoSize,
-	swfdec_text_field_movie_set_autoSize);
-
-    SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
-  }
+  swfdec_text_field_movie_init_properties (cx);
 
   SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
 }
diff-tree e1711c4cde0487d8d5995727cda1a007274cb953 (from dfdcd5343d04f91b23aa6b31df09bcb50179243a)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 22:21:24 2007 +0300

    Set constructor correctly when creating TextField from a tag

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index ba4d5f3..3df04b0 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -525,11 +525,17 @@ swfdec_text_field_movie_init_movie (Swfd
   SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
   SwfdecAsContext *cx;
   SwfdecAsObject *parent;
-  SwfdecAsValue val = { 0, };
+  SwfdecAsValue val;
   const char *s;
 
   cx = SWFDEC_AS_OBJECT (movie)->context;
 
+  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));
+  }
+
   // format
   text->format_new =
     SWFDEC_TEXT_FORMAT (swfdec_text_format_new_no_properties (cx));
diff-tree dfdcd5343d04f91b23aa6b31df09bcb50179243a (from parents)
Merge: 7b361b808b23724fcc70481894757083a1ea81d2 7a7aaf0a197ede39fc90d975139558da438665f4
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 14:09:21 2007 +0300

    Merge branch 'master' into textfield
    
    Conflicts:
    
    	libswfdec/swfdec_text_format.c

diff --cc libswfdec/swfdec_text_format.c
index ea5f280,273e611..569dfd9
@@@ -435,33 -381,11 +435,38 @@@
  }
  
  static void
 -swfdec_text_format_set_color (SwfdecAsContext *cx, SwfdecAsObject *object,
 +swfdec_text_format_do_set_color (SwfdecAsContext *cx, SwfdecAsObject *object,
      guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
  {
 -  swfdec_text_format_set_int (object,
 -      G_STRUCT_OFFSET (SwfdecTextFormat, color), argc, argv, FALSE, TRUE);
 +  SwfdecTextFormat *format;
 +
 +  if (!SWFDEC_IS_TEXT_FORMAT (object))
 +    return;
 +  format = SWFDEC_TEXT_FORMAT (object);
 +
 +  if (argc < 1)
 +    return;
 +
 +
 +  if (SWFDEC_AS_VALUE_IS_UNDEFINED (&argv[0]) ||
 +      SWFDEC_AS_VALUE_IS_NULL (&argv[0])) {
 +    swfdec_text_format_mark_unset (format, PROP_COLOR);
 +  } else {
 +    if (cx->version >= 8) {
-       format->color = (unsigned)swfdec_as_value_to_number (cx, &argv[0]);
++      double d = swfdec_as_value_to_number (cx, &argv[0]);
++      if (!isfinite (d)) {
++	format->color = 0;
++      } else {
++	format->color = (unsigned)d;
++      }
 +    } else {
 +      format->color = (unsigned)swfdec_as_value_to_integer (cx, &argv[0]);
 +    }
 +    swfdec_as_value_to_integer (cx, &argv[0]);
 +    swfdec_as_value_to_string (cx, &argv[0]);
 +
 +    swfdec_text_format_mark_set (format, PROP_COLOR);
 +  }
  }
  
  static void
diff-tree 7b361b808b23724fcc70481894757083a1ea81d2 (from f52b751d4dd6680a103a67c714c47b817f361be3)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 13:27:54 2007 +0300

    Create TextFormat's native properties at correct times (hopefully)

diff --git a/libswfdec/swfdec_player_internal.h b/libswfdec/swfdec_player_internal.h
index 01a34d3..7dc105c 100644
--- a/libswfdec/swfdec_player_internal.h
+++ b/libswfdec/swfdec_player_internal.h
@@ -74,7 +74,6 @@ struct _SwfdecPlayer
   double		scale_y;		/* cached y scale value */
   int			offset_x;		/* x offset from top left edge after scaling */
   int			offset_y;		/* y offset from top left edge after scaling */
-  gboolean		text_format_properties_initialized; /* whether TextFormat object's native properties have been initialized */
   gboolean		edittext_movie_properties_initialized; /* whether TextField object's native properties have been initialized */
   gboolean		xml_properties_initialized; /* whether XML object's native properties have been initialized */
   gboolean		xml_node_properties_initialized; /* same for XMLNode */
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 0f17e86..ba4d5f3 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -531,7 +531,8 @@ swfdec_text_field_movie_init_movie (Swfd
   cx = SWFDEC_AS_OBJECT (movie)->context;
 
   // format
-  text->format_new = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
+  text->format_new =
+    SWFDEC_TEXT_FORMAT (swfdec_text_format_new_no_properties (cx));
   swfdec_text_format_set_defaults (text->format_new);
   text->format_new->color = text->text->color;
   text->format_new->align = text->text->align;
diff --git a/libswfdec/swfdec_text_format.c b/libswfdec/swfdec_text_format.c
index 55e767f..ea5f280 100644
--- a/libswfdec/swfdec_text_format.c
+++ b/libswfdec/swfdec_text_format.c
@@ -978,6 +978,71 @@ swfdec_text_format_clear (SwfdecTextForm
   swfdec_text_format_mark_set (format, PROP_DISPLAY);
 }
 
+static void
+swfdec_text_format_init_properties (SwfdecAsContext *cx)
+{
+  SwfdecAsValue val;
+  SwfdecAsObject *proto;
+
+  g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
+
+  swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextFormat, &val);
+  if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+    return;
+  proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+  swfdec_as_object_get_variable (proto, SWFDEC_AS_STR_prototype, &val);
+  if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+    return;
+  proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_align,
+      swfdec_text_format_do_get_align, swfdec_text_format_do_set_align);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_blockIndent,
+      swfdec_text_format_do_get_block_indent,
+      swfdec_text_format_do_set_block_indent);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bold,
+      swfdec_text_format_do_get_bold, swfdec_text_format_do_set_bold);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bullet,
+      swfdec_text_format_do_get_bullet, swfdec_text_format_do_set_bullet);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_color,
+      swfdec_text_format_do_get_color, swfdec_text_format_do_set_color);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_display,
+      swfdec_text_format_do_get_display, swfdec_text_format_do_set_display);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_font,
+      swfdec_text_format_do_get_font, swfdec_text_format_do_set_font);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_indent,
+      swfdec_text_format_do_get_indent, swfdec_text_format_do_set_indent);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_italic,
+      swfdec_text_format_do_get_italic, swfdec_text_format_do_set_italic);
+  if (cx->version >= 8) {
+    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_kerning,
+	swfdec_text_format_do_get_kerning, swfdec_text_format_do_set_kerning);
+  }
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leading,
+      swfdec_text_format_do_get_leading, swfdec_text_format_do_set_leading);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leftMargin,
+      swfdec_text_format_do_get_left_margin,
+      swfdec_text_format_do_set_left_margin);
+  if (cx->version >= 8) {
+    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_letterSpacing,
+	swfdec_text_format_do_get_letter_spacing,
+	swfdec_text_format_do_set_letter_spacing);
+  }
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_rightMargin,
+      swfdec_text_format_do_get_right_margin,
+      swfdec_text_format_do_set_right_margin);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_size,
+      swfdec_text_format_do_get_size, swfdec_text_format_do_set_size);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_tabStops,
+      swfdec_text_format_do_get_tab_stops, swfdec_text_format_do_set_tab_stops);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_target,
+      swfdec_text_format_do_get_target, swfdec_text_format_do_set_target);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_underline,
+      swfdec_text_format_do_get_underline, swfdec_text_format_do_set_underline);
+  swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_url,
+      swfdec_text_format_do_get_url, swfdec_text_format_do_set_url);
+}
+
 SWFDEC_AS_CONSTRUCTOR (110, 0, swfdec_text_format_construct, swfdec_text_format_get_type)
 void
 swfdec_text_format_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -992,63 +1057,7 @@ swfdec_text_format_construct (SwfdecAsCo
 
   g_assert (SWFDEC_IS_TEXT_FORMAT (object));
 
-  if (!SWFDEC_PLAYER (cx)->text_format_properties_initialized) {
-    SwfdecAsValue val;
-    SwfdecAsObject *proto;
-
-    swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
-    g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
-    proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_align,
-	swfdec_text_format_do_get_align, swfdec_text_format_do_set_align);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_blockIndent,
-	swfdec_text_format_do_get_block_indent,
-	swfdec_text_format_do_set_block_indent);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bold,
-	swfdec_text_format_do_get_bold, swfdec_text_format_do_set_bold);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bullet,
-	swfdec_text_format_do_get_bullet, swfdec_text_format_do_set_bullet);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_color,
-	swfdec_text_format_do_get_color, swfdec_text_format_do_set_color);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_display,
-	swfdec_text_format_do_get_display, swfdec_text_format_do_set_display);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_font,
-	swfdec_text_format_do_get_font, swfdec_text_format_do_set_font);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_indent,
-	swfdec_text_format_do_get_indent, swfdec_text_format_do_set_indent);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_italic,
-	swfdec_text_format_do_get_italic, swfdec_text_format_do_set_italic);
-    if (cx->version >= 8) {
-      swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_kerning,
-	  swfdec_text_format_do_get_kerning, swfdec_text_format_do_set_kerning);
-    }
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leading,
-	swfdec_text_format_do_get_leading, swfdec_text_format_do_set_leading);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leftMargin,
-	swfdec_text_format_do_get_left_margin,
-	swfdec_text_format_do_set_left_margin);
-    if (cx->version >= 8) {
-      swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_letterSpacing,
-	  swfdec_text_format_do_get_letter_spacing,
-	  swfdec_text_format_do_set_letter_spacing);
-    }
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_rightMargin,
-	swfdec_text_format_do_get_right_margin,
-	swfdec_text_format_do_set_right_margin);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_size,
-	swfdec_text_format_do_get_size, swfdec_text_format_do_set_size);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_tabStops,
-	swfdec_text_format_do_get_tab_stops, swfdec_text_format_do_set_tab_stops);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_target,
-	swfdec_text_format_do_get_target, swfdec_text_format_do_set_target);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_underline,
-	swfdec_text_format_do_get_underline, swfdec_text_format_do_set_underline);
-    swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_url,
-	swfdec_text_format_do_get_url, swfdec_text_format_do_set_url);
-
-    SWFDEC_PLAYER (cx)->text_format_properties_initialized = TRUE;
-  }
+  swfdec_text_format_init_properties (cx);
 
   swfdec_text_format_clear (SWFDEC_TEXT_FORMAT (object));
 
@@ -1119,7 +1128,7 @@ swfdec_text_format_copy (const SwfdecTex
 }
 
 SwfdecAsObject *
-swfdec_text_format_new (SwfdecAsContext *context)
+swfdec_text_format_new_no_properties (SwfdecAsContext *context)
 {
   SwfdecAsObject *ret;
   SwfdecAsValue val;
@@ -1141,3 +1150,13 @@ swfdec_text_format_new (SwfdecAsContext 
 
   return ret;
 }
+
+SwfdecAsObject *
+swfdec_text_format_new (SwfdecAsContext *context)
+{
+  g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
+
+  swfdec_text_format_init_properties (context);
+
+  return swfdec_text_format_new_no_properties (context);
+}
diff --git a/libswfdec/swfdec_text_format.h b/libswfdec/swfdec_text_format.h
index 91d242f..9fc7cee 100644
--- a/libswfdec/swfdec_text_format.h
+++ b/libswfdec/swfdec_text_format.h
@@ -84,6 +84,7 @@ struct _SwfdecTextFormatClass {
 GType		swfdec_text_format_get_type	(void);
 
 SwfdecAsObject * swfdec_text_format_new		(SwfdecAsContext *	context);
+SwfdecAsObject * swfdec_text_format_new_no_properties (SwfdecAsContext *	context);
 void		swfdec_text_format_set_defaults	(SwfdecTextFormat *	format);
 SwfdecTextFormat * swfdec_text_format_copy	(const SwfdecTextFormat *copy_from);
 void		swfdec_text_format_add		(SwfdecTextFormat *	format,
diff-tree f52b751d4dd6680a103a67c714c47b817f361be3 (from 89f229892ce0825a28476872261545f7d37c76dc)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 11:35:10 2007 +0300

    Add one more valueOf call. Fix TextField's textColor property setting

diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 3dba443..a050545 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -434,6 +434,8 @@ swfdec_text_field_movie_set_embedFonts (
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
 
+  swfdec_as_value_to_number (cx, &argv[0]);
+
   text->text->embed_fonts = value;
 }
 
@@ -473,20 +475,26 @@ swfdec_text_field_movie_get_textColor (S
       SWFDEC_AS_STR_color, ret);
 }
 
+// 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;
+  SwfdecAsValue val;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
 
-  if (argc < 1)
-    return;
+  if (value < 0) {
+    SWFDEC_AS_VALUE_SET_NUMBER (&val, 16777216 + value % 16777216);
+  } else {
+    SWFDEC_AS_VALUE_SET_NUMBER (&val, value);
+  }
 
   swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new),
-      SWFDEC_AS_STR_color, &argv[0]);
+      SWFDEC_AS_STR_color, &val);
 }
 
 static void
diff-tree 89f229892ce0825a28476872261545f7d37c76dc (from 534d6408cb0d7cf303d549bca5783fd4067a8120)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 11:15:03 2007 +0300

    Add extra calls to valueOf from TextField properties

diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 33690f0..3dba443 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -380,6 +380,8 @@ swfdec_text_field_movie_set_html (Swfdec
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
 
+  swfdec_as_value_to_number (cx, &argv[0]);
+
   text->text->html = value;
 }
 
@@ -405,6 +407,8 @@ swfdec_text_field_movie_set_condenseWhit
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
 
+  swfdec_as_value_to_number (cx, &argv[0]);
+
   text->condense_white = value;
 }
 
@@ -433,6 +437,18 @@ swfdec_text_field_movie_set_embedFonts (
   text->text->embed_fonts = value;
 }
 
+// does nothing but calls valueOf
+static void
+swfdec_text_field_movie_set_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_to_number (cx, &argv[0]);
+}
+
 static void
 swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
@@ -761,7 +777,8 @@ swfdec_text_field_movie_construct (Swfde
 	swfdec_text_field_movie_get_embedFonts,
 	swfdec_text_field_movie_set_embedFonts);
     swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
-	swfdec_text_field_movie_get_length, NULL);
+	swfdec_text_field_movie_get_length,
+	swfdec_text_field_movie_set_length);
     swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
 	swfdec_text_field_movie_get_textColor,
 	swfdec_text_field_movie_set_textColor);
diff-tree 534d6408cb0d7cf303d549bca5783fd4067a8120 (from dcf8696e4950586cb6ec78835898b0618e722972)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 11:14:15 2007 +0300

    Fix TextField trying to mark some strings even if they were NULL

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 00cd627..0f17e86 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -478,9 +478,11 @@ swfdec_text_field_movie_mark (SwfdecAsOb
 
   text = SWFDEC_TEXT_FIELD_MOVIE (object);
 
-  swfdec_as_string_mark (text->text_input);
+  if (text->text_input != NULL)
+    swfdec_as_string_mark (text->text_input);
   swfdec_as_string_mark (text->text_display);
-  swfdec_as_string_mark (text->variable);
+  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 (
diff-tree dcf8696e4950586cb6ec78835898b0618e722972 (from b0528b30dcae570de489ccbfa7260b346d3570c6)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 11:02:07 2007 +0300

    Drop unneeded gpointer casts from SWFDEC_AS_CHECK calls in TextField

diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 1b2afb5..33690f0 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -42,7 +42,7 @@ swfdec_text_field_movie_get_text (Swfdec
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
 	swfdec_as_context_get_string (cx, text->text_display) :
@@ -57,7 +57,7 @@ swfdec_text_field_movie_do_set_text (Swf
   SwfdecTextFieldMovie *text;
   const char *value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
 
   swfdec_text_field_movie_set_text (text, value, FALSE);
 }
@@ -313,7 +313,7 @@ swfdec_text_field_movie_get_htmlText (Sw
   const char *p, *end;
   GString *string;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   if (text->text->html == FALSE) {
     swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
@@ -355,7 +355,7 @@ swfdec_text_field_movie_set_htmlText (Sw
   SwfdecTextFieldMovie *text;
   const char *value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
 
   swfdec_text_field_movie_set_text (text, value, text->text->html);
 }
@@ -366,7 +366,7 @@ swfdec_text_field_movie_get_html (Swfdec
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
 }
@@ -378,7 +378,7 @@ swfdec_text_field_movie_set_html (Swfdec
   SwfdecTextFieldMovie *text;
   gboolean value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
 
   text->text->html = value;
 }
@@ -390,7 +390,7 @@ swfdec_text_field_movie_get_condenseWhit
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
 }
@@ -403,7 +403,7 @@ swfdec_text_field_movie_set_condenseWhit
   SwfdecTextFieldMovie *text;
   gboolean value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
 
   text->condense_white = value;
 }
@@ -415,7 +415,7 @@ swfdec_text_field_movie_get_embedFonts (
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
 }
@@ -428,7 +428,7 @@ swfdec_text_field_movie_set_embedFonts (
   SwfdecTextFieldMovie *text;
   gboolean value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
 
   text->text->embed_fonts = value;
 }
@@ -439,7 +439,7 @@ swfdec_text_field_movie_get_length (Swfd
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
 }
@@ -451,7 +451,7 @@ swfdec_text_field_movie_get_textColor (S
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
       SWFDEC_AS_STR_color, ret);
@@ -464,7 +464,7 @@ swfdec_text_field_movie_set_textColor (S
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   if (argc < 1)
     return;
@@ -549,7 +549,7 @@ swfdec_text_field_movie_getNewTextFormat
 {
   SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   SWFDEC_AS_VALUE_SET_OBJECT (ret,
       SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
@@ -564,7 +564,7 @@ swfdec_text_field_movie_setNewTextFormat
   SwfdecTextFieldMovie *text;
   SwfdecAsObject *obj;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "o", &obj);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "o", &obj);
 
   if (!SWFDEC_IS_TEXT_FORMAT (obj))
     return;
@@ -583,7 +583,7 @@ swfdec_text_field_movie_setTextFormat (S
   guint start_index, end_index;
   int i;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
 
   if (argc < 1)
     return;
@@ -627,7 +627,7 @@ swfdec_text_field_movie_createTextField 
   SwfdecAsFunction *fun;
   SwfdecAsValue val;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
+  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;
diff-tree b0528b30dcae570de489ccbfa7260b346d3570c6 (from 2366848fdba2db7695044b6ca6409eaf973a3059)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 10:59:46 2007 +0300

    Add autoSize property for TextField

diff --git a/libswfdec/swfdec_as_strings.c b/libswfdec/swfdec_as_strings.c
index 97b438c..0ff4d4c 100644
--- a/libswfdec/swfdec_as_strings.c
+++ b/libswfdec/swfdec_as_strings.c
@@ -393,6 +393,7 @@ const char swfdec_as_strings[] = 
   SWFDEC_AS_CONSTANT_STRING ("condenseWhite")
   SWFDEC_AS_CONSTANT_STRING ("textColor")
   SWFDEC_AS_CONSTANT_STRING ("embedFonts")
+  SWFDEC_AS_CONSTANT_STRING ("autoSize")
   /* add more here */
 ;
 
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 534c4e1..1b2afb5 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -473,6 +473,74 @@ swfdec_text_field_movie_set_textColor (S
       SWFDEC_AS_STR_color, &argv[0]);
 }
 
+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_format_changed (text);
+}
+
 SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
 void
 swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
@@ -697,6 +765,9 @@ swfdec_text_field_movie_construct (Swfde
     swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
 	swfdec_text_field_movie_get_textColor,
 	swfdec_text_field_movie_set_textColor);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize,
+	swfdec_text_field_movie_get_autoSize,
+	swfdec_text_field_movie_set_autoSize);
 
     SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
   }
diff-tree 2366848fdba2db7695044b6ca6409eaf973a3059 (from 439b1535e25771b0f068f7b48e540cba5841c599)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Fri Oct 12 10:43:12 2007 +0300

    Fix crash in TextField when there is no font or no text

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index ed617c1..00cd627 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -533,7 +533,8 @@ swfdec_text_field_movie_init_movie (Swfd
   swfdec_text_format_set_defaults (text->format_new);
   text->format_new->color = text->text->color;
   text->format_new->align = text->text->align;
-  text->format_new->font = text->text->font->name;
+  if (text->text->font != NULL && text->text->font->name != NULL)
+    text->format_new->font = text->text->font->name;
   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;
@@ -548,6 +549,9 @@ swfdec_text_field_movie_init_movie (Swfd
     swfdec_text_field_movie_set_text (text,
 	swfdec_as_context_get_string (cx, text->text->text_input),
 	text->text->html);
+  } else {
+    swfdec_text_field_movie_set_text (text, SWFDEC_AS_STR_EMPTY,
+	text->text->html);
   }
 
   // variable
diff-tree 439b1535e25771b0f068f7b48e540cba5841c599 (from 06c4fb7786fc743b578c49dcb7c87e2b30fa9730)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 17:07:20 2007 +0300

    Add one pixel top margin and two pixel bottom margin (latter only if autosize)

diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index d8e8837..2788cfc 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -278,7 +278,7 @@ swfdec_text_field_render (SwfdecTextFiel
       inval);
 
   cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
-      SWFDEC_GRAPHIC (text)->extents.y0);
+      SWFDEC_GRAPHIC (text)->extents.y0 + 1);
 
   for (iter = layouts; iter != NULL; iter = iter->next) {
     SwfdecLayout *layout = (SwfdecLayout *)iter->data;
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index d7093fc..ed617c1 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -382,6 +382,8 @@ swfdec_text_field_movie_auto_size (Swfde
   if (text->paragraphs == NULL)
     swfdec_text_field_movie_generate_paragraphs (text);
 
+  // FIXME: Temporary using image surface, until there is a way to get cairo_t
+  // outside the rendering functions
   surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
   cr = cairo_create (surface);
 
@@ -389,7 +391,7 @@ swfdec_text_field_movie_auto_size (Swfde
       text->paragraphs, NULL, NULL);
 
   width = 0;
-  height = 0;
+  height = 3;
   for (iter = layouts; iter != NULL; iter = iter->next) {
     SwfdecLayout *layout = (SwfdecLayout *)iter->data;
 
diff-tree 06c4fb7786fc743b578c49dcb7c87e2b30fa9730 (from e3ebf0e278ed215549d55b0af7eb1154a7238d08)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 16:40:37 2007 +0300

    TextField: Take right margin into account when calculating layout's size

diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index be892af..d8e8837 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -229,7 +229,7 @@ swfdec_text_field_generate_layouts (Swfd
       }
 
       pango_layout_get_pixel_size (playout, &layout->width, &layout->height);
-      layout->width += layout->render_offset_x;
+      layout->width += layout->render_offset_x + block->right_margin;
       layout->height += block->leading / PANGO_SCALE;
 
       if (!text->word_wrap)
diff-tree e3ebf0e278ed215549d55b0af7eb1154a7238d08 (from e98477a12a6f883f0ad4f0ac1e006bdd9a3aa208)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 16:30:08 2007 +0300

    Fix moving to the wrong direction after rendering a pango layout

diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 4df7d1f..be892af 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -289,7 +289,7 @@ swfdec_text_field_render (SwfdecTextFiel
 
     pango_cairo_show_layout (cr, layout->layout);
 
-    cairo_rel_move_to (cr, layout->render_offset_x, layout->height);
+    cairo_rel_move_to (cr, -layout->render_offset_x, layout->height);
 
     g_object_unref (layout->layout);
     g_free (layout);
diff-tree e98477a12a6f883f0ad4f0ac1e006bdd9a3aa208 (from a4422e2a8bf31b28136d2b6cf1c92e31bf1a9e98)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 16:25:06 2007 +0300

    Support TextField's auto sizing

diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 1d57cc7..4df7d1f 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -82,49 +82,22 @@ swfdec_text_field_init (SwfdecTextField 
   text->max_length = G_MAXUINT;
 }
 
-void
-swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
-    const SwfdecParagraph *paragraphs, SwfdecColor border_color,
-    SwfdecColor background_color, const SwfdecColorTransform *trans,
+GList *
+swfdec_text_field_generate_layouts (SwfdecTextField *text, cairo_t *cr,
+    const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
     const SwfdecRect *inval)
 {
-  PangoLayout *layout;
-  SwfdecColor color;
+  GList *layouts;
   guint i;
 
-  g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
-  g_return_if_fail (cr != NULL);
-  g_return_if_fail (paragraphs != NULL);
-  g_return_if_fail (trans != NULL);
-  g_return_if_fail (inval != NULL);
-
-  if (text->background) {
-    cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
-	SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
-	SWFDEC_GRAPHIC (text)->extents.y1);
-    color = swfdec_color_apply_transform (background_color, trans);
-    swfdec_color_set_source (cr, color);
-    cairo_fill (cr);
-  }
-
-  if (text->border) {
-    cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
-	SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
-	SWFDEC_GRAPHIC (text)->extents.y1);
-    color = swfdec_color_apply_transform (border_color, trans);
-    swfdec_color_set_source (cr, color);
-    cairo_set_line_width (cr, 20.0); // FIXME: Is this correct?
-    cairo_stroke (cr);
-  }
+  g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD (text), NULL);
+  g_return_val_if_fail (cr != NULL, NULL);
+  g_return_val_if_fail (paragraphs != NULL, NULL);
 
   if (paragraphs[0].text == NULL)
-    return;
-
-  cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
-      SWFDEC_GRAPHIC (text)->extents.y0);
-
-  layout = pango_cairo_create_layout (cr);
+    return NULL;
 
+  layouts = NULL;
   for (i = 0; paragraphs[i].text != NULL; i++)
   {
     GList *iter;
@@ -133,10 +106,11 @@ swfdec_text_field_render (SwfdecTextFiel
     skip = 0;
     for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
     {
-      int height, width;
+      SwfdecLayout *layout;
+      PangoLayout *playout;
+      int width;
       guint length;
       SwfdecBlock *block;
-      PangoAttrList *attr_list;
 
       block = (SwfdecBlock *)iter->data;
       if (iter->next != NULL) {
@@ -151,39 +125,44 @@ swfdec_text_field_render (SwfdecTextFiel
 	continue;
       }
 
-      // update position
-      cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
+      // create layout
+      layout = g_new0 (SwfdecLayout, 1);
+      playout = layout->layout = pango_cairo_create_layout (cr);
+      layouts = g_list_append (layouts, layout);
+
+      // set rendering position
+      layout->render_offset_x = block->left_margin + block->block_indent;
       width = SWFDEC_GRAPHIC (text)->extents.x1 -
 	SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
 	block->right_margin - block->block_indent;
 
       if (block->index_ == 0 && paragraphs[i].indent < 0) {
-	cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
+	layout->render_offset_x += paragraphs[i].indent / PANGO_SCALE;
 	width += -paragraphs[i].indent / PANGO_SCALE;
       }
 
-      pango_cairo_update_layout (cr, layout);
-      pango_layout_context_changed (layout);
-      pango_layout_set_width (layout,
+      pango_layout_set_width (playout,
 	  (text->word_wrap ? width * PANGO_SCALE : -1));
 
       // set paragraph styles
       if (block->index_ == 0) {
-	pango_layout_set_indent (layout, paragraphs[i].indent);
+	pango_layout_set_indent (playout, paragraphs[i].indent);
 	// TODO: bullet
       } else {
-	pango_layout_set_indent (layout, 0);
+	pango_layout_set_indent (playout, 0);
       }
 
       // set block styles
-      pango_layout_set_alignment (layout, block->align);
-      pango_layout_set_justify (layout, block->justify);
-      pango_layout_set_spacing (layout, block->leading);
-      pango_layout_set_tabs (layout, block->tab_stops);
+      pango_layout_set_alignment (playout, block->align);
+      pango_layout_set_justify (playout, block->justify);
+      pango_layout_set_spacing (playout, block->leading);
+      pango_layout_set_tabs (playout, block->tab_stops);
 
       // set text attributes
-      if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
+      if (block->index_ > 0 ||
+	  (trans != NULL && !swfdec_color_transform_is_identity (trans)))
       {
+	PangoAttrList *attr_list;
 	GList *iter_attrs;
 
 	attr_list = pango_attr_list_new ();
@@ -199,9 +178,10 @@ swfdec_text_field_render (SwfdecTextFiel
 	    continue;
 
 	  attr = pango_attribute_copy (attr);
-	  if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
+	  if (attr->klass->type == PANGO_ATTR_FOREGROUND && trans != NULL &&
 	      !swfdec_color_transform_is_identity (trans))
 	  {
+	    SwfdecColor color;
 	    PangoColor pcolor;
 
 	    pcolor = ((PangoAttrColor *)attr)->color;
@@ -218,14 +198,14 @@ swfdec_text_field_render (SwfdecTextFiel
 	  attr->end_index = attr->end_index - (block->index_ + skip);
 	  pango_attr_list_insert (attr_list, attr);
 	}
+	pango_layout_set_attributes (playout, attr_list);
+	pango_attr_list_unref (attr_list);
       } else {
-	attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
+	pango_layout_set_attributes (playout, paragraphs[i].attrs_list);
       }
-      pango_layout_set_attributes (layout, attr_list);
-      pango_attr_list_unref (attr_list);
-      attr_list = NULL;
 
-      pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
+      pango_layout_set_text (playout,
+	  paragraphs[i].text + block->index_ + skip,
 	  paragraphs[i].text_length - block->index_ - skip);
 
       if (iter->next != NULL && text->word_wrap)
@@ -234,11 +214,11 @@ swfdec_text_field_render (SwfdecTextFiel
 	int line_num;
 	guint skip_new;
 
-	pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
+	pango_layout_index_to_line_x (playout, length - skip, FALSE, &line_num,
 	    NULL);
-	line = pango_layout_get_line_readonly (layout, line_num);
+	line = pango_layout_get_line_readonly (playout, line_num);
 	skip_new = line->start_index + line->length - (length - skip);
-	pango_layout_set_text (layout,
+	pango_layout_set_text (playout,
 	    paragraphs[i].text + block->index_ + skip,
 	    length - skip + skip_new);
 	skip = skip_new;
@@ -248,22 +228,78 @@ swfdec_text_field_render (SwfdecTextFiel
 	skip = 0;
       }
 
-      pango_cairo_show_layout (cr, layout);
-
-      pango_layout_get_pixel_size (layout, NULL, &height);
-      cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
-	  height + block->leading / PANGO_SCALE);
-      if (block->index_ == 0 && paragraphs[i].indent < 0)
-	cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
+      pango_layout_get_pixel_size (playout, &layout->width, &layout->height);
+      layout->width += layout->render_offset_x;
+      layout->height += block->leading / PANGO_SCALE;
 
       if (!text->word_wrap)
 	break;
     }
   }
 
-  g_object_unref (layout);
+  return layouts;
+}
+
+void
+swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
+    const SwfdecParagraph *paragraphs, SwfdecColor border_color,
+    SwfdecColor background_color, const SwfdecColorTransform *trans,
+    const SwfdecRect *inval)
+{
+  GList *layouts, *iter;
+  SwfdecColor color;
+
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
+  g_return_if_fail (cr != NULL);
+  g_return_if_fail (paragraphs != NULL);
+  g_return_if_fail (trans != NULL);
+  g_return_if_fail (inval != NULL);
+
+  if (text->background) {
+    cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+	SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+	SWFDEC_GRAPHIC (text)->extents.y1);
+    color = swfdec_color_apply_transform (background_color, trans);
+    swfdec_color_set_source (cr, color);
+    cairo_fill (cr);
+  }
+
+  if (text->border) {
+    cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+	SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+	SWFDEC_GRAPHIC (text)->extents.y1);
+    color = swfdec_color_apply_transform (border_color, trans);
+    swfdec_color_set_source (cr, color);
+    cairo_set_line_width (cr, 20.0); // FIXME: Is this correct?
+    cairo_stroke (cr);
+  }
+
+  layouts = swfdec_text_field_generate_layouts (text, cr, paragraphs, trans,
+      inval);
+
+  cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+      SWFDEC_GRAPHIC (text)->extents.y0);
+
+  for (iter = layouts; iter != NULL; iter = iter->next) {
+    SwfdecLayout *layout = (SwfdecLayout *)iter->data;
+
+    cairo_rel_move_to (cr, layout->render_offset_x, 0);
+
+    pango_layout_context_changed (layout->layout);
+
+    pango_cairo_show_layout (cr, layout->layout);
+
+    cairo_rel_move_to (cr, layout->render_offset_x, layout->height);
+
+    g_object_unref (layout->layout);
+    g_free (layout);
+    iter->data = NULL;
+  }
+
+  g_list_free (layouts);
 }
 
+
 int
 tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
 {
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
index 4998cfa..dda2787 100644
--- a/libswfdec/swfdec_text_field.h
+++ b/libswfdec/swfdec_text_field.h
@@ -40,6 +40,13 @@ typedef struct _SwfdecTextFieldClass Swf
 #define SWFDEC_TEXT_FIELD_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
 
 typedef struct {
+  PangoLayout *		layout;
+  int			render_offset_x;
+  int			height;
+  int			width;
+} SwfdecLayout;
+
+typedef struct {
   guint			index_;
 
   PangoAlignment	align;
@@ -67,8 +74,8 @@ typedef struct {
 typedef enum {
   SWFDEC_AUTO_SIZE_NONE,
   SWFDEC_AUTO_SIZE_LEFT,
-  SWFDEC_AUTO_SIZE_CENTER,
-  SWFDEC_AUTO_SIZE_RIGHT
+  SWFDEC_AUTO_SIZE_RIGHT,
+  SWFDEC_AUTO_SIZE_CENTER
 } SwfdecAutoSize;
 
 struct _SwfdecTextField
@@ -114,6 +121,11 @@ GType			swfdec_text_field_get_type	(void
 int			tag_func_define_edit_text	(SwfdecSwfDecoder *	s,
 							 guint			tag);
 
+GList *			swfdec_text_field_generate_layouts	(SwfdecTextField *	text,
+							 cairo_t *			cr,
+							 const SwfdecParagraph *	paragraphs,
+							 const SwfdecColorTransform *	trans,
+							 const SwfdecRect *		inval);
 void			swfdec_text_field_render		(SwfdecTextField *	text,
 							 cairo_t *		cr,
 							 const SwfdecParagraph *	paragraphs,
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index e76aad6..d7093fc 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -23,6 +23,7 @@
 #endif
 
 #include <string.h>
+#include <math.h>
 
 #include "swfdec_text_field_movie.h"
 #include "swfdec_as_context.h"
@@ -363,10 +364,89 @@ swfdec_text_field_movie_free_paragraphs 
   }
 }
 
+static gboolean
+swfdec_text_field_movie_auto_size (SwfdecTextFieldMovie *text)
+{
+  cairo_surface_t *surface;
+  cairo_t *cr;
+  GList *layouts, *iter;
+  guint height;
+  int width, diff;
+  gboolean changed;
+
+  g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), FALSE);
+
+  if (text->text->auto_size == SWFDEC_AUTO_SIZE_NONE)
+    return FALSE;
+
+  if (text->paragraphs == NULL)
+    swfdec_text_field_movie_generate_paragraphs (text);
+
+  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
+  cr = cairo_create (surface);
+
+  layouts = swfdec_text_field_generate_layouts (text->text, cr,
+      text->paragraphs, NULL, NULL);
+
+  width = 0;
+  height = 0;
+  for (iter = layouts; iter != NULL; iter = iter->next) {
+    SwfdecLayout *layout = (SwfdecLayout *)iter->data;
+
+    if (!text->text->word_wrap) {
+      if (layout->width > width)
+	width = layout->width;
+    }
+
+    height += layout->height;
+  }
+
+  if (!text->text->word_wrap && SWFDEC_GRAPHIC (text->text)->extents.x1 -
+      SWFDEC_GRAPHIC (text->text)->extents.x0 != width)
+  {
+    switch (text->text->auto_size) {
+      case SWFDEC_AUTO_SIZE_LEFT:
+	SWFDEC_GRAPHIC (text->text)->extents.x1 =
+	  SWFDEC_GRAPHIC (text->text)->extents.x0 + width;
+	break;
+      case SWFDEC_AUTO_SIZE_RIGHT:
+	SWFDEC_GRAPHIC (text->text)->extents.x0 =
+	  SWFDEC_GRAPHIC (text->text)->extents.x1 - width;
+	break;
+      case SWFDEC_AUTO_SIZE_CENTER:
+	diff = width - (SWFDEC_GRAPHIC (text->text)->extents.x1 -
+	  SWFDEC_GRAPHIC (text->text)->extents.x0);
+	SWFDEC_GRAPHIC (text->text)->extents.x0 += floor (width / 2.0);
+	SWFDEC_GRAPHIC (text->text)->extents.x1 += ceil (width / 2.0);
+	break;
+      default:
+	g_assert_not_reached ();
+    }
+    changed = TRUE;
+  }
+
+  if (SWFDEC_GRAPHIC (text->text)->extents.y1 -
+      SWFDEC_GRAPHIC (text->text)->extents.y0 != height)
+  {
+    SWFDEC_GRAPHIC (text->text)->extents.y1 =
+      SWFDEC_GRAPHIC (text->text)->extents.y0 + height;
+    changed = TRUE;
+  }
+
+  return changed;
+}
+
 void
 swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
 {
   swfdec_text_field_movie_free_paragraphs (text);
+
+  swfdec_movie_invalidate (SWFDEC_MOVIE (text));
+
+  if (swfdec_text_field_movie_auto_size (text)) {
+    swfdec_movie_queue_update (SWFDEC_MOVIE (text),
+	SWFDEC_MOVIE_INVALID_CONTENTS);
+  }
 }
 
 static void
diff-tree a4422e2a8bf31b28136d2b6cf1c92e31bf1a9e98 (from ab6126f4f4cbe7a2656612bd8dd986b7013b3379)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 14:16:32 2007 +0300

    Add support for drawing TextField's border and background

diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 302cd40..1d57cc7 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -84,10 +84,12 @@ swfdec_text_field_init (SwfdecTextField 
 
 void
 swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
-    const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
+    const SwfdecParagraph *paragraphs, SwfdecColor border_color,
+    SwfdecColor background_color, const SwfdecColorTransform *trans,
     const SwfdecRect *inval)
 {
   PangoLayout *layout;
+  SwfdecColor color;
   guint i;
 
   g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
@@ -96,6 +98,28 @@ swfdec_text_field_render (SwfdecTextFiel
   g_return_if_fail (trans != NULL);
   g_return_if_fail (inval != NULL);
 
+  if (text->background) {
+    cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+	SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+	SWFDEC_GRAPHIC (text)->extents.y1);
+    color = swfdec_color_apply_transform (background_color, trans);
+    swfdec_color_set_source (cr, color);
+    cairo_fill (cr);
+  }
+
+  if (text->border) {
+    cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+	SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+	SWFDEC_GRAPHIC (text)->extents.y1);
+    color = swfdec_color_apply_transform (border_color, trans);
+    swfdec_color_set_source (cr, color);
+    cairo_set_line_width (cr, 20.0); // FIXME: Is this correct?
+    cairo_stroke (cr);
+  }
+
+  if (paragraphs[0].text == NULL)
+    return;
+
   cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
       SWFDEC_GRAPHIC (text)->extents.y0);
 
@@ -179,7 +203,6 @@ swfdec_text_field_render (SwfdecTextFiel
 	      !swfdec_color_transform_is_identity (trans))
 	  {
 	    PangoColor pcolor;
-	    SwfdecColor color;
 
 	    pcolor = ((PangoAttrColor *)attr)->color;
 	    color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
@@ -274,7 +297,7 @@ tag_func_define_edit_text (SwfdecSwfDeco
     (swfdec_bits_getbit (b) ? SWFDEC_AUTO_SIZE_LEFT : SWFDEC_AUTO_SIZE_NONE);
   has_layout = swfdec_bits_getbit (b);
   text->selectable = !swfdec_bits_getbit (b);
-  text->border = swfdec_bits_getbit (b);
+  text->background = text->border = swfdec_bits_getbit (b);
   reserved = swfdec_bits_getbit (b);
   text->html = swfdec_bits_getbit (b);
   text->embed_fonts = swfdec_bits_getbit (b);
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
index b9a0851..4998cfa 100644
--- a/libswfdec/swfdec_text_field.h
+++ b/libswfdec/swfdec_text_field.h
@@ -89,6 +89,7 @@ struct _SwfdecTextField
   SwfdecAutoSize	auto_size;
 
   gboolean		border;
+  gboolean		background;
 
   /* only to be passed to the movie object */
   SwfdecFont *		font;
@@ -116,6 +117,8 @@ int			tag_func_define_edit_text	(SwfdecS
 void			swfdec_text_field_render		(SwfdecTextField *	text,
 							 cairo_t *		cr,
 							 const SwfdecParagraph *	paragraphs,
+							 SwfdecColor		border_color,
+							 SwfdecColor		background_color,
 							 const SwfdecColorTransform *	trans,
 							 const SwfdecRect *		rect);
 
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 5e1b302..e76aad6 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -332,9 +332,8 @@ swfdec_text_field_movie_render (SwfdecMo
   if (text->paragraphs == NULL)
     swfdec_text_field_movie_generate_paragraphs (text);
 
-  if (text->paragraphs[0].text == NULL)
-    return;
-  swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
+  swfdec_text_field_render (text->text, cr, text->paragraphs,
+      text->border_color, text->background_color, trans, inval);
 }
 
 static void
@@ -459,6 +458,9 @@ swfdec_text_field_movie_init_movie (Swfd
   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, 255);
+  text->background_color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
+
   // text
   if (text->text->text_input != NULL) {
     swfdec_text_field_movie_set_text (text,
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 4ba3be8..40ed0a2 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -68,8 +68,6 @@ struct _SwfdecTextFieldMovie {
   GSList *		formats;
 
   SwfdecAntiAliasType	anti_alias_type;
-  gboolean		background_fill;
-  guint			border_color;
   gboolean		condense_white;
   gboolean		embed_fonts;
   SwfdecGridFitType	grid_fit_type;
@@ -81,6 +79,9 @@ struct _SwfdecTextFieldMovie {
   SwfdecStyleSheet *	style_sheet;
   int			thickness;
 
+  SwfdecColor		border_color;
+  SwfdecColor		background_color;
+
   /* for rendering */
   SwfdecParagraph *	paragraphs;
 };
diff-tree ab6126f4f4cbe7a2656612bd8dd986b7013b3379 (from 04dad36967fe0786df6f6adc01211c44c63a4b92)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 12:22:49 2007 +0300

    Remove an incorrect FIXME from TextField code

diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index e02c873..5e1b302 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -156,7 +156,7 @@ swfdec_text_field_movie_generate_paragra
   attr_italic->start_index = 0;
 
   attr_letter_spacing = pango_attr_letter_spacing_new (
-      format->letter_spacing * 20 * PANGO_SCALE); // FIXME: correct scaling?
+      format->letter_spacing * 20 * PANGO_SCALE);
   attr_letter_spacing->start_index = 0;
 
   attr_size =
diff-tree 04dad36967fe0786df6f6adc01211c44c63a4b92 (from 54eebc295f6f44db5c9dd76cc556396177e3f268)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 12:03:03 2007 +0300

    Support rendering without wordWrap in TextField

diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index d27c3a1..302cd40 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -140,7 +140,8 @@ swfdec_text_field_render (SwfdecTextFiel
 
       pango_cairo_update_layout (cr, layout);
       pango_layout_context_changed (layout);
-      pango_layout_set_width (layout, width * PANGO_SCALE);
+      pango_layout_set_width (layout,
+	  (text->word_wrap ? width * PANGO_SCALE : -1));
 
       // set paragraph styles
       if (block->index_ == 0) {
@@ -204,7 +205,7 @@ swfdec_text_field_render (SwfdecTextFiel
       pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
 	  paragraphs[i].text_length - block->index_ - skip);
 
-      if (iter->next != NULL)
+      if (iter->next != NULL && text->word_wrap)
       {
 	PangoLayoutLine *line;
 	int line_num;
@@ -231,6 +232,9 @@ swfdec_text_field_render (SwfdecTextFiel
 	  height + block->leading / PANGO_SCALE);
       if (block->index_ == 0 && paragraphs[i].indent < 0)
 	cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
+
+      if (!text->word_wrap)
+	break;
     }
   }
 
@@ -258,7 +262,7 @@ tag_func_define_edit_text (SwfdecSwfDeco
       SWFDEC_GRAPHIC (text)->extents.x1, SWFDEC_GRAPHIC (text)->extents.y1);
   swfdec_bits_syncbits (b);
   has_text = swfdec_bits_getbit (b);
-  text->wrap = swfdec_bits_getbit (b);
+  text->word_wrap = swfdec_bits_getbit (b);
   text->multiline = swfdec_bits_getbit (b);
   text->password = swfdec_bits_getbit (b);
   text->input = !swfdec_bits_getbit (b);
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
index aa84422..b9a0851 100644
--- a/libswfdec/swfdec_text_field.h
+++ b/libswfdec/swfdec_text_field.h
@@ -84,7 +84,7 @@ struct _SwfdecTextField
 
   gboolean		embed_fonts;
 
-  gboolean		wrap;
+  gboolean		word_wrap;
   gboolean		multiline;
   SwfdecAutoSize	auto_size;
 
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 60d1a29..534c4e1 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -567,7 +567,7 @@ swfdec_text_field_movie_createTextField 
   edittext->password = FALSE;
   edittext->selectable = TRUE;
   edittext->font = NULL; // FIXME
-  edittext->wrap = FALSE;
+  edittext->word_wrap = FALSE;
   edittext->multiline = FALSE;
   edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
   edittext->border = FALSE;
diff-tree 54eebc295f6f44db5c9dd76cc556396177e3f268 (from 872e7d0b10de82a11107455ee1c01bb34949f6d1)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 11:57:24 2007 +0300

    Update Makefile.am and include statements to use text_field not edittext

diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am
index ee669bb..07ca529 100644
--- a/libswfdec/Makefile.am
+++ b/libswfdec/Makefile.am
@@ -62,9 +62,9 @@ libswfdec_ at SWFDEC_MAJORMINOR@_la_SOURCES
 	swfdec_debug.c \
 	swfdec_decoder.c \
 	swfdec_draw.c \
-	swfdec_edittext.c \
-	swfdec_edittext_movie.c \
-	swfdec_edittext_movie_as.c \
+	swfdec_text_field.c \
+	swfdec_text_field_movie.c \
+	swfdec_text_field_movie_as.c \
 	swfdec_enums.c \
 	swfdec_event.c \
 	swfdec_file_loader.c \
@@ -194,8 +194,8 @@ noinst_HEADERS = \
 	swfdec_debug.h \
 	swfdec_decoder.h \
 	swfdec_draw.h \
-	swfdec_edittext.h \
-	swfdec_edittext_movie.h \
+	swfdec_text_field.h \
+	swfdec_text_field_movie.h \
 	swfdec_event.h \
 	swfdec_filter.h \
 	swfdec_flv_decoder.h \
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index a8413b7..6af0db9 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -42,7 +42,7 @@
 #include "swfdec_sprite.h"
 #include "swfdec_sprite_movie.h"
 #include "swfdec_swf_instance.h"
-#include "swfdec_edittext_movie.h" // for typeof
+#include "swfdec_text_field_movie.h" // for typeof
 
 /* Define this to get SWFDEC_WARN'd about missing properties of objects.
  * This can be useful to find out about unimplemented native properties,
diff --git a/libswfdec/swfdec_graphic_movie.c b/libswfdec/swfdec_graphic_movie.c
index a4a86fa..4ffd2ce 100644
--- a/libswfdec/swfdec_graphic_movie.c
+++ b/libswfdec/swfdec_graphic_movie.c
@@ -24,7 +24,7 @@
 #include "swfdec_graphic_movie.h"
 #include "swfdec_button.h"
 #include "swfdec_debug.h"
-#include "swfdec_edittext.h"
+#include "swfdec_text_field.h"
 #include "swfdec_movie.h"
 #include "swfdec_shape.h"
 #include "swfdec_sprite.h"
diff --git a/libswfdec/swfdec_html_parser.c b/libswfdec/swfdec_html_parser.c
index 430eec5..dcd7f1e 100644
--- a/libswfdec/swfdec_html_parser.c
+++ b/libswfdec/swfdec_html_parser.c
@@ -24,7 +24,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field_movie.h"
 #include "swfdec_as_strings.h"
 #include "swfdec_debug.h"
 
diff --git a/libswfdec/swfdec_tag.c b/libswfdec/swfdec_tag.c
index 35c65cf..c7ef45f 100644
--- a/libswfdec/swfdec_tag.c
+++ b/libswfdec/swfdec_tag.c
@@ -32,7 +32,7 @@
 #include "swfdec_bits.h"
 #include "swfdec_button.h"
 #include "swfdec_debug.h"
-#include "swfdec_edittext.h"
+#include "swfdec_text_field.h"
 #include "swfdec_filter.h"
 #include "swfdec_font.h"
 #include "swfdec_image.h"
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 7905673..d27c3a1 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -24,9 +24,9 @@
 
 #include <pango/pangocairo.h>
 #include <string.h>
-#include "swfdec_edittext.h"
+#include "swfdec_text_field.h"
 #include "swfdec_debug.h"
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field_movie.h"
 #include "swfdec_font.h"
 #include "swfdec_player_internal.h"
 #include "swfdec_swf_decoder.h"
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index dd79e9a..e02c873 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -24,7 +24,7 @@
 
 #include <string.h>
 
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field_movie.h"
 #include "swfdec_as_context.h"
 #include "swfdec_as_strings.h"
 #include "swfdec_text_format.h"
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 8b7999a..4ba3be8 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -22,7 +22,7 @@
 #define _SWFDEC_TEXT_FIELD_MOVIE_H_
 
 #include <libswfdec/swfdec_movie.h>
-#include <libswfdec/swfdec_edittext.h>
+#include <libswfdec/swfdec_text_field.h>
 #include <libswfdec/swfdec_style_sheet.h>
 #include <libswfdec/swfdec_text_format.h>
 
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index c9d4cd0..60d1a29 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -24,8 +24,8 @@
 
 #include <string.h>
 
-#include "swfdec_edittext.h"
-#include "swfdec_edittext_movie.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"
diff --git a/test/dump.c b/test/dump.c
index adf0cb1..5b8ecea 100644
--- a/test/dump.c
+++ b/test/dump.c
@@ -32,7 +32,7 @@
 #include <glib-object.h>
 #include <libswfdec/swfdec.h>
 #include <libswfdec/swfdec_button.h>
-#include <libswfdec/swfdec_edittext.h>
+#include <libswfdec/swfdec_text_field.h>
 #include <libswfdec/swfdec_font.h>
 #include <libswfdec/swfdec_image.h>
 #include <libswfdec/swfdec_movie.h>
diff-tree 872e7d0b10de82a11107455ee1c01bb34949f6d1 (from ba72dd43b20c244e1de4a2a5aea7438bdbcc318d)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 11:44:57 2007 +0300

    Rename *edittext* files to *text_field*

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
deleted file mode 100644
index 7905673..0000000
--- a/libswfdec/swfdec_edittext.c
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
- *                    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 <pango/pangocairo.h>
-#include <string.h>
-#include "swfdec_edittext.h"
-#include "swfdec_debug.h"
-#include "swfdec_edittext_movie.h"
-#include "swfdec_font.h"
-#include "swfdec_player_internal.h"
-#include "swfdec_swf_decoder.h"
-
-G_DEFINE_TYPE (SwfdecTextField, swfdec_text_field, SWFDEC_TYPE_GRAPHIC)
-
-static gboolean
-swfdec_text_field_mouse_in (SwfdecGraphic *graphic, double x, double y)
-{
-  return swfdec_rect_contains (&graphic->extents, x, y);
-}
-
-static SwfdecMovie *
-swfdec_text_field_create_movie (SwfdecGraphic *graphic, gsize *size)
-{
-  SwfdecTextField *text = SWFDEC_TEXT_FIELD (graphic);
-  SwfdecTextFieldMovie *ret = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
-
-  ret->text = text;
-
-  *size = sizeof (SwfdecTextFieldMovie);
-
-  return SWFDEC_MOVIE (ret);
-}
-
-static void
-swfdec_text_field_dispose (GObject *object)
-{
-  SwfdecTextField *text = SWFDEC_TEXT_FIELD (object);
-
-  g_free (text->text_input);
-  text->text_input = NULL;
-  g_free (text->variable);
-  text->variable = NULL;
-
-  G_OBJECT_CLASS (swfdec_text_field_parent_class)->dispose (object);
-}
-
-static void
-swfdec_text_field_class_init (SwfdecTextFieldClass * g_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (g_class);
-  SwfdecGraphicClass *graphic_class = SWFDEC_GRAPHIC_CLASS (g_class);
-
-  object_class->dispose = swfdec_text_field_dispose;
-  graphic_class->create_movie = swfdec_text_field_create_movie;
-  graphic_class->mouse_in = swfdec_text_field_mouse_in;
-}
-
-static void
-swfdec_text_field_init (SwfdecTextField * text)
-{
-  text->max_length = G_MAXUINT;
-}
-
-void
-swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
-    const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
-    const SwfdecRect *inval)
-{
-  PangoLayout *layout;
-  guint i;
-
-  g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
-  g_return_if_fail (cr != NULL);
-  g_return_if_fail (paragraphs != NULL);
-  g_return_if_fail (trans != NULL);
-  g_return_if_fail (inval != NULL);
-
-  cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
-      SWFDEC_GRAPHIC (text)->extents.y0);
-
-  layout = pango_cairo_create_layout (cr);
-
-  for (i = 0; paragraphs[i].text != NULL; i++)
-  {
-    GList *iter;
-    guint skip;
-
-    skip = 0;
-    for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
-    {
-      int height, width;
-      guint length;
-      SwfdecBlock *block;
-      PangoAttrList *attr_list;
-
-      block = (SwfdecBlock *)iter->data;
-      if (iter->next != NULL) {
-	length =
-	  ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
-      } else {
-	length = paragraphs[i].text_length - block->index_;
-      }
-
-      if (skip > length) {
-	skip -= length;
-	continue;
-      }
-
-      // update position
-      cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
-      width = SWFDEC_GRAPHIC (text)->extents.x1 -
-	SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
-	block->right_margin - block->block_indent;
-
-      if (block->index_ == 0 && paragraphs[i].indent < 0) {
-	cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
-	width += -paragraphs[i].indent / PANGO_SCALE;
-      }
-
-      pango_cairo_update_layout (cr, layout);
-      pango_layout_context_changed (layout);
-      pango_layout_set_width (layout, width * PANGO_SCALE);
-
-      // set paragraph styles
-      if (block->index_ == 0) {
-	pango_layout_set_indent (layout, paragraphs[i].indent);
-	// TODO: bullet
-      } else {
-	pango_layout_set_indent (layout, 0);
-      }
-
-      // set block styles
-      pango_layout_set_alignment (layout, block->align);
-      pango_layout_set_justify (layout, block->justify);
-      pango_layout_set_spacing (layout, block->leading);
-      pango_layout_set_tabs (layout, block->tab_stops);
-
-      // set text attributes
-      if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
-      {
-	GList *iter_attrs;
-
-	attr_list = pango_attr_list_new ();
-
-	for (iter_attrs = paragraphs[i].attrs; iter_attrs != NULL;
-	    iter_attrs = iter_attrs->next)
-	{
-	  PangoAttribute *attr;
-
-	  attr = (PangoAttribute *)iter_attrs->data;
-
-	  if (attr->end_index <= block->index_ + skip)
-	    continue;
-
-	  attr = pango_attribute_copy (attr);
-	  if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
-	      !swfdec_color_transform_is_identity (trans))
-	  {
-	    PangoColor pcolor;
-	    SwfdecColor color;
-
-	    pcolor = ((PangoAttrColor *)attr)->color;
-	    color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
-		pcolor.blue >> 8, 255);
-	    color = swfdec_color_apply_transform (color, trans);
-	    pcolor.red = SWFDEC_COLOR_R (color) << 8;
-	    pcolor.green = SWFDEC_COLOR_G (color) << 8;
-	    pcolor.blue = SWFDEC_COLOR_B (color) << 8;
-	    ((PangoAttrColor *)attr)->color = pcolor;
-	  }
-	  attr->start_index = (attr->start_index > block->index_ + skip ?
-	      attr->start_index - (block->index_ + skip) : 0);
-	  attr->end_index = attr->end_index - (block->index_ + skip);
-	  pango_attr_list_insert (attr_list, attr);
-	}
-      } else {
-	attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
-      }
-      pango_layout_set_attributes (layout, attr_list);
-      pango_attr_list_unref (attr_list);
-      attr_list = NULL;
-
-      pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
-	  paragraphs[i].text_length - block->index_ - skip);
-
-      if (iter->next != NULL)
-      {
-	PangoLayoutLine *line;
-	int line_num;
-	guint skip_new;
-
-	pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
-	    NULL);
-	line = pango_layout_get_line_readonly (layout, line_num);
-	skip_new = line->start_index + line->length - (length - skip);
-	pango_layout_set_text (layout,
-	    paragraphs[i].text + block->index_ + skip,
-	    length - skip + skip_new);
-	skip = skip_new;
-      }
-      else
-      {
-	skip = 0;
-      }
-
-      pango_cairo_show_layout (cr, layout);
-
-      pango_layout_get_pixel_size (layout, NULL, &height);
-      cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
-	  height + block->leading / PANGO_SCALE);
-      if (block->index_ == 0 && paragraphs[i].indent < 0)
-	cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
-    }
-  }
-
-  g_object_unref (layout);
-}
-
-int
-tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
-{
-  SwfdecTextField *text;
-  guint id;
-  int reserved;
-  gboolean has_font, has_color, has_max_length, has_layout, has_text;
-  SwfdecBits *b = &s->b;
-
-  id = swfdec_bits_get_u16 (b);
-  SWFDEC_LOG ("  id = %u", id);
-  text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_TEXT_FIELD);
-  if (text == NULL)
-    return SWFDEC_STATUS_OK;
-
-  swfdec_bits_get_rect (b, &SWFDEC_GRAPHIC (text)->extents);
-  SWFDEC_LOG ("  extents: %g %g  %g %g", 
-      SWFDEC_GRAPHIC (text)->extents.x0, SWFDEC_GRAPHIC (text)->extents.y0,
-      SWFDEC_GRAPHIC (text)->extents.x1, SWFDEC_GRAPHIC (text)->extents.y1);
-  swfdec_bits_syncbits (b);
-  has_text = swfdec_bits_getbit (b);
-  text->wrap = swfdec_bits_getbit (b);
-  text->multiline = swfdec_bits_getbit (b);
-  text->password = swfdec_bits_getbit (b);
-  text->input = !swfdec_bits_getbit (b);
-  has_color = swfdec_bits_getbit (b);
-  has_max_length = swfdec_bits_getbit (b);
-  has_font = swfdec_bits_getbit (b);
-  reserved = swfdec_bits_getbit (b);
-  text->auto_size =
-    (swfdec_bits_getbit (b) ? SWFDEC_AUTO_SIZE_LEFT : SWFDEC_AUTO_SIZE_NONE);
-  has_layout = swfdec_bits_getbit (b);
-  text->selectable = !swfdec_bits_getbit (b);
-  text->border = swfdec_bits_getbit (b);
-  reserved = swfdec_bits_getbit (b);
-  text->html = swfdec_bits_getbit (b);
-  text->embed_fonts = swfdec_bits_getbit (b);
-  if (has_font) {
-    SwfdecCharacter *font;
-
-    id = swfdec_bits_get_u16 (b);
-    font = swfdec_swf_decoder_get_character (s, id);
-    if (SWFDEC_IS_FONT (font)) {
-      SWFDEC_LOG ("  font = %u", id);
-      text->font = SWFDEC_FONT (font);
-    } else {
-      SWFDEC_ERROR ("id %u does not specify a font", id);
-    }
-    text->size = swfdec_bits_get_u16 (b);
-    SWFDEC_LOG ("  size = %u", text->size);
-  }
-  if (has_color) {
-    text->color = swfdec_bits_get_rgba (b);
-    SWFDEC_LOG ("  color = %u", text->color);
-  } else {
-    SWFDEC_WARNING ("FIXME: figure out default color");
-    text->color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
-  }
-  if (has_max_length) {
-    text->max_length = swfdec_bits_get_u16 (b);
-  }
-  if (has_layout) {
-    guint align = swfdec_bits_get_u8 (b);
-    switch (align) {
-      case 0:
-	text->align = SWFDEC_TEXT_ALIGN_LEFT;
-	break;
-      case 1:
-	text->align = SWFDEC_TEXT_ALIGN_RIGHT;
-	break;
-      case 2:
-	text->align = SWFDEC_TEXT_ALIGN_CENTER;
-	break;
-      case 3:
-	text->align = SWFDEC_TEXT_ALIGN_JUSTIFY;
-	break;
-      default:
-	SWFDEC_ERROR ("undefined align value %u", align);
-	break;
-    }
-    text->left_margin = swfdec_bits_get_u16 (b);
-    text->right_margin = swfdec_bits_get_u16 (b);
-    text->indent = swfdec_bits_get_u16 (b);
-    text->leading = swfdec_bits_get_s16 (b);
-  }
-  text->variable = swfdec_bits_get_string (b);
-  if (text->variable && *text->variable == 0) {
-    g_free (text->variable);
-    text->variable = NULL;
-  }
-  if (has_text)
-    text->text_input = swfdec_bits_get_string (b);
-
-  return SWFDEC_STATUS_OK;
-}
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
deleted file mode 100644
index aa84422..0000000
--- a/libswfdec/swfdec_edittext.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
- *                    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_H_
-#define _SWFDEC_TEXT_FIELD_H_
-
-#include <pango/pango.h>
-#include <libswfdec/swfdec_types.h>
-#include <libswfdec/swfdec_color.h>
-#include <libswfdec/swfdec_graphic.h>
-#include <libswfdec/swfdec_player.h>
-#include <libswfdec/swfdec_text_format.h>
-
-G_BEGIN_DECLS
-
-typedef struct _SwfdecTextField SwfdecTextField;
-typedef struct _SwfdecTextFieldClass SwfdecTextFieldClass;
-
-#define SWFDEC_TYPE_TEXT_FIELD                    (swfdec_text_field_get_type())
-#define SWFDEC_IS_TEXT_FIELD(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD))
-#define SWFDEC_IS_TEXT_FIELD_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD))
-#define SWFDEC_TEXT_FIELD(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextField))
-#define SWFDEC_TEXT_FIELD_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
-
-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 {
-  const char		*text;
-  guint			text_length;
-
-  gboolean		bullet;
-  int			indent;
-
-  GList *		blocks;		// SwfdecBlock
-
-  GList *		attrs;	// PangoAttribute
-  PangoAttrList *	attrs_list;
-} SwfdecParagraph;
-
-typedef enum {
-  SWFDEC_AUTO_SIZE_NONE,
-  SWFDEC_AUTO_SIZE_LEFT,
-  SWFDEC_AUTO_SIZE_CENTER,
-  SWFDEC_AUTO_SIZE_RIGHT
-} SwfdecAutoSize;
-
-struct _SwfdecTextField
-{
-  SwfdecGraphic		graphic;
-
-  gboolean		html;
-
-  gboolean		input;
-  gboolean		password;
-  guint			max_length;
-  gboolean		selectable;
-
-  gboolean		embed_fonts;
-
-  gboolean		wrap;
-  gboolean		multiline;
-  SwfdecAutoSize	auto_size;
-
-  gboolean		border;
-
-  /* only to be passed to the movie object */
-  SwfdecFont *		font;
-  char *		text_input;
-  char *		variable;
-  guint			size;
-  SwfdecColor		color;
-  SwfdecTextAlign	align;
-  guint			left_margin;
-  guint			right_margin;
-  guint			indent;
-  int			leading;
-};
-
-struct _SwfdecTextFieldClass
-{
-  SwfdecGraphicClass	graphic_class;
-};
-
-GType			swfdec_text_field_get_type	(void);
-
-int			tag_func_define_edit_text	(SwfdecSwfDecoder *	s,
-							 guint			tag);
-
-void			swfdec_text_field_render		(SwfdecTextField *	text,
-							 cairo_t *		cr,
-							 const SwfdecParagraph *	paragraphs,
-							 const SwfdecColorTransform *	trans,
-							 const SwfdecRect *		rect);
-
-G_END_DECLS
-#endif
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
deleted file mode 100644
index dd79e9a..0000000
--- a/libswfdec/swfdec_edittext_movie.c
+++ /dev/null
@@ -1,619 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
- *                    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_edittext_movie.h"
-#include "swfdec_as_context.h"
-#include "swfdec_as_strings.h"
-#include "swfdec_text_format.h"
-#include "swfdec_font.h"
-#include "swfdec_debug.h"
-#include "swfdec_player_internal.h"
-
-G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
-
-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_paragraph_add_attribute (SwfdecParagraph *paragraph,
-    PangoAttribute *attr)
-{
-  paragraph->attrs = g_list_append (paragraph->attrs,
-      pango_attribute_copy (attr));
-  pango_attr_list_insert (paragraph->attrs_list, attr);
-}
-
-static void
-swfdec_text_paragraph_add_block_attributes (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;
-  }
-  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;
-
-  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);
-  }
-
-  paragraph->blocks = g_list_append (paragraph->blocks, block);
-}
-
-static void
-swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
-    SwfdecParagraph *paragraph, guint start_index, guint end_index)
-{
-  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
-
-  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
-  g_assert (paragraph != NULL);
-  g_assert (start_index < end_index);
-  g_assert (end_index <= strlen (text->text_display));
-
-  paragraph->text = text->text_display + start_index;
-  paragraph->text_length = end_index - start_index;
-
-  paragraph->blocks = NULL;
-  paragraph->attrs = NULL;
-  paragraph->attrs_list = pango_attr_list_new ();
-
-  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_attributes (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;
-
-  if (text->text->embed_fonts)
-    SWFDEC_FIXME ("Using embed fonts in TextField not supported");
-  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); // FIXME: correct scaling?
-  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 < end_index;
-      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_attributes (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);
-
-      if (text->text->embed_fonts)
-	SWFDEC_FIXME ("Using embed fonts in TextField not supported");
-      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);
-
-      // FIXME: correct scaling?
-      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 = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
-  attr_bold = NULL;
-
-  attr_color->end_index = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_color);
-  attr_color = NULL;
-
-  attr_font->end_index = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_font);
-  attr_font = NULL;
-
-  attr_italic->end_index = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
-  attr_italic = NULL;
-
-  attr_letter_spacing->end_index = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
-  attr_letter_spacing = NULL;
-
-  attr_size->end_index = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_size);
-  attr_size = NULL;
-
-  attr_underline->end_index = end_index - start_index;
-  swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
-  attr_underline = NULL;
-}
-
-static void
-swfdec_text_field_movie_generate_paragraphs (SwfdecTextFieldMovie *text)
-{
-  const char *p, *end;
-  int num, i;
-
-  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
-
-  num = 0;
-  p = text->text_display;
-  while (p != NULL) {
-    num++;
-    p = strchr (p, '\r');
-    if (p != NULL) p++;
-  }
-
-  text->paragraphs = g_new0 (SwfdecParagraph, num + 1);
-
-  i = 0;
-  p = text->text_display;
-  while (*p != '\0') {
-    g_assert (i < num);
-    end = strchr (p, '\r');
-    if (end == NULL)
-      end = strchr (p, '\0');
-
-    swfdec_text_field_movie_generate_paragraph (text, &text->paragraphs[i],
-	p - text->text_display, end - text->text_display);
-
-    p = end;
-    if (*p == '\r') p++;
-
-    i++;
-  }
-  g_assert (i == num);
-}
-
-static void
-swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
-    const SwfdecColorTransform *trans, const SwfdecRect *inval)
-{
-  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-
-  if (text->paragraphs == NULL)
-    swfdec_text_field_movie_generate_paragraphs (text);
-
-  if (text->paragraphs[0].text == NULL)
-    return;
-  swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
-}
-
-static void
-swfdec_text_field_movie_free_paragraphs (SwfdecTextFieldMovie *text)
-{
-  GList *iter;
-  int i;
-
-  if (text->paragraphs) {
-    for (i = 0; text->paragraphs[i].text != NULL; i++)
-    {
-      for (iter = text->paragraphs[i].blocks; iter != NULL; iter = iter->next) {
-	pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
-      }
-      g_list_free (text->paragraphs[i].blocks);
-
-      for (iter = text->paragraphs[i].attrs; iter != NULL; iter = iter->next) {
-	pango_attribute_destroy ((PangoAttribute *)(iter->data));
-      }
-      g_list_free (text->paragraphs[i].attrs);
-
-      if (text->paragraphs[i].attrs_list != NULL)
-	pango_attr_list_unref (text->paragraphs[i].attrs_list);
-    }
-    g_free (text->paragraphs);
-    text->paragraphs = NULL;
-  }
-}
-
-void
-swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
-{
-  swfdec_text_field_movie_free_paragraphs (text);
-}
-
-static void
-swfdec_text_field_movie_dispose (GObject *object)
-{
-  SwfdecTextFieldMovie *text;
-  GSList *iter;
-
-  text = SWFDEC_TEXT_FIELD_MOVIE (object);
-
-  swfdec_text_field_movie_free_paragraphs (text);
-
-  for (iter = text->formats; iter != NULL; iter = iter->next) {
-    g_free (text->formats->data);
-    text->formats->data = NULL;
-  }
-  g_slist_free (text->formats);
-
-  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);
-
-  swfdec_as_string_mark (text->text_input);
-  swfdec_as_string_mark (text->text_display);
-  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 (SWFDEC_AS_OBJECT (text->style_sheet));
-
-  SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
-}
-
-static void
-swfdec_text_field_movie_iterate (SwfdecMovie *movie)
-{
-  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-  SwfdecAsObject *parent;
-  const char *s;
-  SwfdecAsValue val = { 0, };
-
-  if (text->text->variable == NULL)
-    return;
-
-  parent = SWFDEC_AS_OBJECT (movie->parent);
-  swfdec_as_context_eval (parent->context, parent, text->text->variable, &val);
-  if (SWFDEC_AS_VALUE_IS_UNDEFINED (&val))
-    return;
-
-  s = swfdec_as_value_to_string (parent->context, &val);
-  g_assert (s);
-  if (text->text_input == s)
-    return;
-
-  swfdec_text_field_movie_set_text (text, s, text->text->html);
-}
-
-static void
-swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
-{
-  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-  SwfdecAsContext *cx;
-  SwfdecAsObject *parent;
-  SwfdecAsValue val = { 0, };
-  const char *s;
-
-  cx = SWFDEC_AS_OBJECT (movie)->context;
-
-  // format
-  text->format_new = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
-  swfdec_text_format_set_defaults (text->format_new);
-  text->format_new->color = text->text->color;
-  text->format_new->align = text->text->align;
-  text->format_new->font = text->text->font->name;
-  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
-  if (text->text->text_input != NULL) {
-    swfdec_text_field_movie_set_text (text,
-	swfdec_as_context_get_string (cx, text->text->text_input),
-	text->text->html);
-  }
-
-  // variable
-  if (text->text->variable != NULL)
-  {
-    text->variable = swfdec_as_context_get_string (cx, text->text->variable);
-
-    parent = SWFDEC_AS_OBJECT (movie->parent);
-    swfdec_as_context_eval (parent->context, parent, text->variable, &val);
-    if (!SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
-      s = swfdec_as_value_to_string (parent->context, &val);
-      g_assert (s);
-      if (text->text_input != s)
-	swfdec_text_field_movie_set_text (text, s, text->text->html);
-    } else {
-      SWFDEC_LOG ("setting variable %s to \"%s\"", text->variable,
-	  text->text_input ? text->text_input : "");
-      s = text->text_input ? swfdec_as_context_get_string (parent->context,
-	  text->text_input) : SWFDEC_AS_STR_EMPTY;
-      SWFDEC_AS_VALUE_SET_STRING (&val, s);
-      swfdec_as_context_eval_set (parent->context, parent, text->variable,
-	  &val);
-    }
-  }
-}
-
-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->update_extents = swfdec_text_field_movie_update_extents;
-  movie_class->render = swfdec_text_field_movie_render;
-  movie_class->iterate_start = swfdec_text_field_movie_iterate;
-}
-
-static void
-swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
-{
-}
-
-void
-swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
-    SwfdecTextFormat *format, guint start_index, guint end_index)
-{
-  SwfdecFormatIndex *findex, *findex_new;
-  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 <= strlen (text->text_display));
-
-  g_assert (text->formats != NULL);
-  g_assert (text->formats->data != NULL);
-  g_assert (((SwfdecFormatIndex *)text->formats->data)->index == 0);
-  for (iter = text->formats; iter != NULL &&
-      ((SwfdecFormatIndex *)iter->data)->index < end_index;
-      iter = next)
-  {
-    next = iter->next;
-    findex = iter->data;
-    if (iter->next != NULL) {
-      findex_end_index =
-	((SwfdecFormatIndex *)iter->next->data)->index;
-    } else {
-      findex_end_index = strlen (text->text_display);
-    }
-
-    if (findex_end_index < start_index)
-      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);
-
-      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);
-      swfdec_text_format_add (findex_new->format, format);
-
-      iter = g_slist_insert (iter, findex_new, 1);
-    } else {
-      swfdec_text_format_add (findex->format, format);
-    }
-  }
-
-  swfdec_text_field_movie_format_changed (text);
-}
-
-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));
-
-  text->text_input = str;
-
-  // 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 = text->format_new;
-  text->formats = g_slist_prepend (text->formats, block);
-
-  if (html) {
-    swfdec_text_field_movie_html_parse (text, str);
-  } else {
-    // change all \n to \r
-    if (strchr (str, '\n') != NULL) {
-      char *string, *p;
-
-      string = g_strdup (str);
-      p = string;
-      while ((p = strchr (p, '\n')) != NULL) {
-	*p = '\r';
-      }
-      text->text_display = swfdec_as_context_give_string (
-	  SWFDEC_AS_OBJECT (text)->context, string);
-    } else {
-      text->text_display = str;
-    }
-  }
-
-  swfdec_text_field_movie_format_changed (text);
-}
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
deleted file mode 100644
index 8b7999a..0000000
--- a/libswfdec/swfdec_edittext_movie.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
- *                    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 <libswfdec/swfdec_movie.h>
-#include <libswfdec/swfdec_edittext.h>
-#include <libswfdec/swfdec_style_sheet.h>
-#include <libswfdec/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 {
-  guint			index;
-  SwfdecTextFormat *	format;
-} SwfdecFormatIndex;
-
-typedef enum {
-  SWFDEC_ANTI_ALIAS_TYPE_NORMAL,
-  SWFDEC_ANTI_ALIAS_TYPE_ADVANCED
-} SwfdecAntiAliasType;
-
-typedef enum {
-  SWFDEC_GRID_FIT_TYPE_NONE,
-  SWFDEC_GRID_FIT_TYPE_PIXEL,
-  SWFDEC_GRID_FIT_TYPE_SUBPIXEL
-} SwfdecGridFitType;
-
-struct _SwfdecTextFieldMovie {
-  SwfdecMovie		movie;
-
-  SwfdecTextField *	text;		/* the text_field object we render */
-
-  const char *		text_input;
-  const char *		text_display;
-
-  const char *		variable;
-
-  SwfdecTextFormat *	format_new;
-  GSList *		formats;
-
-  SwfdecAntiAliasType	anti_alias_type;
-  gboolean		background_fill;
-  guint			border_color;
-  gboolean		condense_white;
-  gboolean		embed_fonts;
-  SwfdecGridFitType	grid_fit_type;
-  guint			hscroll;
-  gboolean		mouse_wheel_enabled;
-  const char *		restrict_;
-  guint			scroll;
-  int			sharpness;
-  SwfdecStyleSheet *	style_sheet;
-  int			thickness;
-
-  /* for rendering */
-  SwfdecParagraph *	paragraphs;
-};
-
-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_format_changed	(SwfdecTextFieldMovie *	text);
-void		swfdec_text_field_movie_set_text_format	(SwfdecTextFieldMovie *	text,
-							 SwfdecTextFormat *	format,
-							 guint			start_index,
-							 guint			end_index);
-
-/* implemented in swfdec_html_parser.c */
-void		swfdec_text_field_movie_html_parse	(SwfdecTextFieldMovie *	text, 
-							 const char *		str);
-
-G_END_DECLS
-#endif
diff --git a/libswfdec/swfdec_edittext_movie_as.c b/libswfdec/swfdec_edittext_movie_as.c
deleted file mode 100644
index c9d4cd0..0000000
--- a/libswfdec/swfdec_edittext_movie_as.c
+++ /dev/null
@@ -1,705 +0,0 @@
-/* Swfdec
- * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
- *                    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_edittext.h"
-#include "swfdec_edittext_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_frame_internal.h"
-#include "swfdec_xml.h"
-#include "swfdec_internal.h"
-#include "swfdec_player_internal.h"
-
-static void
-swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
-  SwfdecTextFieldMovie *text;
-
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
-  SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
-	swfdec_as_context_get_string (cx, text->text_display) :
-	SWFDEC_AS_STR_EMPTY));
-}
-
-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, (gpointer)&text, "s", &value);
-
-  swfdec_text_field_movie_set_text (text, value, FALSE);
-}
-
-static const char *
-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 ();
-  }
-}
-
-/*
- * 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_htmlText_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;
-  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\">",
-	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->text_display + 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 (iter_font != NULL) {
-      while (fonts != iter_font) {
-	string = g_string_append (string, "</FONT>");
-	fonts = g_slist_remove (fonts, fonts->data);
-      }
-    }
-    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>");
-
-    // 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->text_display + 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;
-}
-
-static void
-swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
-    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
-    SwfdecAsValue *ret)
-{
-  SwfdecTextFieldMovie *text;
-  const char *p, *end;
-  GString *string;
-
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
-  if (text->text->html == FALSE) {
-    swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
-    return;
-  }
-
-  if (text->text_display == NULL) {
-    SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_EMPTY);
-    return;
-  }
-
-  string = g_string_new ("");
-
-  p = text->text_display;
-  while (*p != '\0') {
-    end = strchr (p, '\r');
-    if (end == NULL)
-      end = strchr (p, '\0');
-
-    string = swfdec_text_field_movie_htmlText_append_paragraph (text, string,
-	p - text->text_display, end - text->text_display);
-
-    if (*end == '\r') {
-      p = end + 1;
-    } else {
-      p = end;
-    }
-  }
-
-  SWFDEC_AS_VALUE_SET_STRING (ret,
-      swfdec_as_context_give_string (cx, g_string_free (string, FALSE)));
-}
-
-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, (gpointer)&text, "s", &value);
-
-  swfdec_text_field_movie_set_text (text, value, text->text->html);
-}
-
-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, (gpointer)&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, (gpointer)&text, "b", &value);
-
-  text->text->html = value;
-}
-
-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, (gpointer)&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, (gpointer)&text, "b", &value);
-
-  text->condense_white = value;
-}
-
-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, (gpointer)&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, (gpointer)&text, "b", &value);
-
-  text->text->embed_fonts = value;
-}
-
-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, (gpointer)&text, "");
-
-  SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
-}
-
-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, (gpointer)&text, "");
-
-  swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
-      SWFDEC_AS_STR_color, ret);
-}
-
-static void
-swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
-    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
-    SwfdecAsValue *ret)
-{
-  SwfdecTextFieldMovie *text;
-
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
-  if (argc < 1)
-    return;
-
-  swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new),
-      SWFDEC_AS_STR_color, &argv[0]);
-}
-
-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, (gpointer)&text, "");
-
-  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, (gpointer)&text, "o", &obj);
-
-  if (!SWFDEC_IS_TEXT_FORMAT (obj))
-    return;
-
-  text->format_new = swfdec_text_format_copy (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;
-  guint start_index, end_index;
-  int i;
-
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
-  if (argc < 1)
-    return;
-
-  i = 0;
-  if (argc >= 2) {
-    start_index = swfdec_as_value_to_integer (cx, &argv[i++]);
-    start_index = MIN (start_index, strlen (text->text_display));
-  } else {
-    start_index = 0;
-  }
-  if (argc >= 3) {
-    end_index = swfdec_as_value_to_integer (cx, &argv[i++]);
-    end_index = CLAMP (end_index, start_index, strlen (text->text_display));
-  } else {
-    end_index = strlen (text->text_display);
-  }
-  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, start_index, end_index);
-}
-
-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, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
-
-  edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
-  edittext->html = FALSE;
-  edittext->input = FALSE;
-  edittext->password = FALSE;
-  edittext->selectable = TRUE;
-  edittext->font = NULL; // FIXME
-  edittext->wrap = FALSE;
-  edittext->multiline = FALSE;
-  edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
-  edittext->border = FALSE;
-  edittext->size = 240; // FIXME: Correct?
-
-  edittext->text_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;
-
-  edittext->graphic.extents.x0 = x;
-  edittext->graphic.extents.x1 = x + width;
-  edittext->graphic.extents.y0 = y;
-  edittext->graphic.extents.y1 = y + height;
-
-  movie = swfdec_movie_find (parent, depth);
-  if (movie)
-    swfdec_movie_remove (movie);
-
-  movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent,
-      SWFDEC_GRAPHIC (edittext), name);
-  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
-  swfdec_movie_initialize (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);
-}
-
-static void
-swfdec_text_field_movie_add_variable (SwfdecAsObject *object,
-    const char *variable, SwfdecAsNative get, SwfdecAsNative set)
-{
-  SwfdecAsFunction *get_func, *set_func;
-
-  g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
-  g_return_if_fail (variable != NULL);
-  g_return_if_fail (get != NULL);
-
-  get_func =
-    swfdec_as_native_function_new (object->context, variable, get, 0, NULL);
-  if (get_func == NULL)
-    return;
-
-  if (set != NULL) {
-    set_func =
-      swfdec_as_native_function_new (object->context, variable, set, 0, NULL);
-  } else {
-    set_func = NULL;
-  }
-
-  swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
-}
-
-SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
-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 (SwfdecTextFieldMovie)))
-      return;
-    object = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
-    swfdec_as_object_add (object, cx, sizeof (SwfdecTextFieldMovie));
-    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");
-    }
-  }
-
-  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
-
-  if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
-    SwfdecAsValue val;
-    SwfdecAsObject *proto;
-
-    swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
-    g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
-    proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
-	swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
-	swfdec_text_field_movie_get_htmlText,
-	swfdec_text_field_movie_set_htmlText);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
-	swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
-	swfdec_text_field_movie_get_condenseWhite,
-	swfdec_text_field_movie_set_condenseWhite);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
-	swfdec_text_field_movie_get_embedFonts,
-	swfdec_text_field_movie_set_embedFonts);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
-	swfdec_text_field_movie_get_length, NULL);
-    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
-	swfdec_text_field_movie_get_textColor,
-	swfdec_text_field_movie_set_textColor);
-
-    SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
-  }
-
-  SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
-}
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
new file mode 100644
index 0000000..7905673
--- /dev/null
+++ b/libswfdec/swfdec_text_field.c
@@ -0,0 +1,334 @@
+/* Swfdec
+ * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ *                    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 <pango/pangocairo.h>
+#include <string.h>
+#include "swfdec_edittext.h"
+#include "swfdec_debug.h"
+#include "swfdec_edittext_movie.h"
+#include "swfdec_font.h"
+#include "swfdec_player_internal.h"
+#include "swfdec_swf_decoder.h"
+
+G_DEFINE_TYPE (SwfdecTextField, swfdec_text_field, SWFDEC_TYPE_GRAPHIC)
+
+static gboolean
+swfdec_text_field_mouse_in (SwfdecGraphic *graphic, double x, double y)
+{
+  return swfdec_rect_contains (&graphic->extents, x, y);
+}
+
+static SwfdecMovie *
+swfdec_text_field_create_movie (SwfdecGraphic *graphic, gsize *size)
+{
+  SwfdecTextField *text = SWFDEC_TEXT_FIELD (graphic);
+  SwfdecTextFieldMovie *ret = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
+
+  ret->text = text;
+
+  *size = sizeof (SwfdecTextFieldMovie);
+
+  return SWFDEC_MOVIE (ret);
+}
+
+static void
+swfdec_text_field_dispose (GObject *object)
+{
+  SwfdecTextField *text = SWFDEC_TEXT_FIELD (object);
+
+  g_free (text->text_input);
+  text->text_input = NULL;
+  g_free (text->variable);
+  text->variable = NULL;
+
+  G_OBJECT_CLASS (swfdec_text_field_parent_class)->dispose (object);
+}
+
+static void
+swfdec_text_field_class_init (SwfdecTextFieldClass * g_class)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (g_class);
+  SwfdecGraphicClass *graphic_class = SWFDEC_GRAPHIC_CLASS (g_class);
+
+  object_class->dispose = swfdec_text_field_dispose;
+  graphic_class->create_movie = swfdec_text_field_create_movie;
+  graphic_class->mouse_in = swfdec_text_field_mouse_in;
+}
+
+static void
+swfdec_text_field_init (SwfdecTextField * text)
+{
+  text->max_length = G_MAXUINT;
+}
+
+void
+swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
+    const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
+    const SwfdecRect *inval)
+{
+  PangoLayout *layout;
+  guint i;
+
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
+  g_return_if_fail (cr != NULL);
+  g_return_if_fail (paragraphs != NULL);
+  g_return_if_fail (trans != NULL);
+  g_return_if_fail (inval != NULL);
+
+  cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+      SWFDEC_GRAPHIC (text)->extents.y0);
+
+  layout = pango_cairo_create_layout (cr);
+
+  for (i = 0; paragraphs[i].text != NULL; i++)
+  {
+    GList *iter;
+    guint skip;
+
+    skip = 0;
+    for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
+    {
+      int height, width;
+      guint length;
+      SwfdecBlock *block;
+      PangoAttrList *attr_list;
+
+      block = (SwfdecBlock *)iter->data;
+      if (iter->next != NULL) {
+	length =
+	  ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
+      } else {
+	length = paragraphs[i].text_length - block->index_;
+      }
+
+      if (skip > length) {
+	skip -= length;
+	continue;
+      }
+
+      // update position
+      cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
+      width = SWFDEC_GRAPHIC (text)->extents.x1 -
+	SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
+	block->right_margin - block->block_indent;
+
+      if (block->index_ == 0 && paragraphs[i].indent < 0) {
+	cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
+	width += -paragraphs[i].indent / PANGO_SCALE;
+      }
+
+      pango_cairo_update_layout (cr, layout);
+      pango_layout_context_changed (layout);
+      pango_layout_set_width (layout, width * PANGO_SCALE);
+
+      // set paragraph styles
+      if (block->index_ == 0) {
+	pango_layout_set_indent (layout, paragraphs[i].indent);
+	// TODO: bullet
+      } else {
+	pango_layout_set_indent (layout, 0);
+      }
+
+      // set block styles
+      pango_layout_set_alignment (layout, block->align);
+      pango_layout_set_justify (layout, block->justify);
+      pango_layout_set_spacing (layout, block->leading);
+      pango_layout_set_tabs (layout, block->tab_stops);
+
+      // set text attributes
+      if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
+      {
+	GList *iter_attrs;
+
+	attr_list = pango_attr_list_new ();
+
+	for (iter_attrs = paragraphs[i].attrs; iter_attrs != NULL;
+	    iter_attrs = iter_attrs->next)
+	{
+	  PangoAttribute *attr;
+
+	  attr = (PangoAttribute *)iter_attrs->data;
+
+	  if (attr->end_index <= block->index_ + skip)
+	    continue;
+
+	  attr = pango_attribute_copy (attr);
+	  if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
+	      !swfdec_color_transform_is_identity (trans))
+	  {
+	    PangoColor pcolor;
+	    SwfdecColor color;
+
+	    pcolor = ((PangoAttrColor *)attr)->color;
+	    color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
+		pcolor.blue >> 8, 255);
+	    color = swfdec_color_apply_transform (color, trans);
+	    pcolor.red = SWFDEC_COLOR_R (color) << 8;
+	    pcolor.green = SWFDEC_COLOR_G (color) << 8;
+	    pcolor.blue = SWFDEC_COLOR_B (color) << 8;
+	    ((PangoAttrColor *)attr)->color = pcolor;
+	  }
+	  attr->start_index = (attr->start_index > block->index_ + skip ?
+	      attr->start_index - (block->index_ + skip) : 0);
+	  attr->end_index = attr->end_index - (block->index_ + skip);
+	  pango_attr_list_insert (attr_list, attr);
+	}
+      } else {
+	attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
+      }
+      pango_layout_set_attributes (layout, attr_list);
+      pango_attr_list_unref (attr_list);
+      attr_list = NULL;
+
+      pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
+	  paragraphs[i].text_length - block->index_ - skip);
+
+      if (iter->next != NULL)
+      {
+	PangoLayoutLine *line;
+	int line_num;
+	guint skip_new;
+
+	pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
+	    NULL);
+	line = pango_layout_get_line_readonly (layout, line_num);
+	skip_new = line->start_index + line->length - (length - skip);
+	pango_layout_set_text (layout,
+	    paragraphs[i].text + block->index_ + skip,
+	    length - skip + skip_new);
+	skip = skip_new;
+      }
+      else
+      {
+	skip = 0;
+      }
+
+      pango_cairo_show_layout (cr, layout);
+
+      pango_layout_get_pixel_size (layout, NULL, &height);
+      cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
+	  height + block->leading / PANGO_SCALE);
+      if (block->index_ == 0 && paragraphs[i].indent < 0)
+	cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
+    }
+  }
+
+  g_object_unref (layout);
+}
+
+int
+tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
+{
+  SwfdecTextField *text;
+  guint id;
+  int reserved;
+  gboolean has_font, has_color, has_max_length, has_layout, has_text;
+  SwfdecBits *b = &s->b;
+
+  id = swfdec_bits_get_u16 (b);
+  SWFDEC_LOG ("  id = %u", id);
+  text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_TEXT_FIELD);
+  if (text == NULL)
+    return SWFDEC_STATUS_OK;
+
+  swfdec_bits_get_rect (b, &SWFDEC_GRAPHIC (text)->extents);
+  SWFDEC_LOG ("  extents: %g %g  %g %g", 
+      SWFDEC_GRAPHIC (text)->extents.x0, SWFDEC_GRAPHIC (text)->extents.y0,
+      SWFDEC_GRAPHIC (text)->extents.x1, SWFDEC_GRAPHIC (text)->extents.y1);
+  swfdec_bits_syncbits (b);
+  has_text = swfdec_bits_getbit (b);
+  text->wrap = swfdec_bits_getbit (b);
+  text->multiline = swfdec_bits_getbit (b);
+  text->password = swfdec_bits_getbit (b);
+  text->input = !swfdec_bits_getbit (b);
+  has_color = swfdec_bits_getbit (b);
+  has_max_length = swfdec_bits_getbit (b);
+  has_font = swfdec_bits_getbit (b);
+  reserved = swfdec_bits_getbit (b);
+  text->auto_size =
+    (swfdec_bits_getbit (b) ? SWFDEC_AUTO_SIZE_LEFT : SWFDEC_AUTO_SIZE_NONE);
+  has_layout = swfdec_bits_getbit (b);
+  text->selectable = !swfdec_bits_getbit (b);
+  text->border = swfdec_bits_getbit (b);
+  reserved = swfdec_bits_getbit (b);
+  text->html = swfdec_bits_getbit (b);
+  text->embed_fonts = swfdec_bits_getbit (b);
+  if (has_font) {
+    SwfdecCharacter *font;
+
+    id = swfdec_bits_get_u16 (b);
+    font = swfdec_swf_decoder_get_character (s, id);
+    if (SWFDEC_IS_FONT (font)) {
+      SWFDEC_LOG ("  font = %u", id);
+      text->font = SWFDEC_FONT (font);
+    } else {
+      SWFDEC_ERROR ("id %u does not specify a font", id);
+    }
+    text->size = swfdec_bits_get_u16 (b);
+    SWFDEC_LOG ("  size = %u", text->size);
+  }
+  if (has_color) {
+    text->color = swfdec_bits_get_rgba (b);
+    SWFDEC_LOG ("  color = %u", text->color);
+  } else {
+    SWFDEC_WARNING ("FIXME: figure out default color");
+    text->color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
+  }
+  if (has_max_length) {
+    text->max_length = swfdec_bits_get_u16 (b);
+  }
+  if (has_layout) {
+    guint align = swfdec_bits_get_u8 (b);
+    switch (align) {
+      case 0:
+	text->align = SWFDEC_TEXT_ALIGN_LEFT;
+	break;
+      case 1:
+	text->align = SWFDEC_TEXT_ALIGN_RIGHT;
+	break;
+      case 2:
+	text->align = SWFDEC_TEXT_ALIGN_CENTER;
+	break;
+      case 3:
+	text->align = SWFDEC_TEXT_ALIGN_JUSTIFY;
+	break;
+      default:
+	SWFDEC_ERROR ("undefined align value %u", align);
+	break;
+    }
+    text->left_margin = swfdec_bits_get_u16 (b);
+    text->right_margin = swfdec_bits_get_u16 (b);
+    text->indent = swfdec_bits_get_u16 (b);
+    text->leading = swfdec_bits_get_s16 (b);
+  }
+  text->variable = swfdec_bits_get_string (b);
+  if (text->variable && *text->variable == 0) {
+    g_free (text->variable);
+    text->variable = NULL;
+  }
+  if (has_text)
+    text->text_input = swfdec_bits_get_string (b);
+
+  return SWFDEC_STATUS_OK;
+}
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
new file mode 100644
index 0000000..aa84422
--- /dev/null
+++ b/libswfdec/swfdec_text_field.h
@@ -0,0 +1,123 @@
+/* Swfdec
+ * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ *                    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_H_
+#define _SWFDEC_TEXT_FIELD_H_
+
+#include <pango/pango.h>
+#include <libswfdec/swfdec_types.h>
+#include <libswfdec/swfdec_color.h>
+#include <libswfdec/swfdec_graphic.h>
+#include <libswfdec/swfdec_player.h>
+#include <libswfdec/swfdec_text_format.h>
+
+G_BEGIN_DECLS
+
+typedef struct _SwfdecTextField SwfdecTextField;
+typedef struct _SwfdecTextFieldClass SwfdecTextFieldClass;
+
+#define SWFDEC_TYPE_TEXT_FIELD                    (swfdec_text_field_get_type())
+#define SWFDEC_IS_TEXT_FIELD(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_IS_TEXT_FIELD_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_TEXT_FIELD(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextField))
+#define SWFDEC_TEXT_FIELD_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
+
+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 {
+  const char		*text;
+  guint			text_length;
+
+  gboolean		bullet;
+  int			indent;
+
+  GList *		blocks;		// SwfdecBlock
+
+  GList *		attrs;	// PangoAttribute
+  PangoAttrList *	attrs_list;
+} SwfdecParagraph;
+
+typedef enum {
+  SWFDEC_AUTO_SIZE_NONE,
+  SWFDEC_AUTO_SIZE_LEFT,
+  SWFDEC_AUTO_SIZE_CENTER,
+  SWFDEC_AUTO_SIZE_RIGHT
+} SwfdecAutoSize;
+
+struct _SwfdecTextField
+{
+  SwfdecGraphic		graphic;
+
+  gboolean		html;
+
+  gboolean		input;
+  gboolean		password;
+  guint			max_length;
+  gboolean		selectable;
+
+  gboolean		embed_fonts;
+
+  gboolean		wrap;
+  gboolean		multiline;
+  SwfdecAutoSize	auto_size;
+
+  gboolean		border;
+
+  /* only to be passed to the movie object */
+  SwfdecFont *		font;
+  char *		text_input;
+  char *		variable;
+  guint			size;
+  SwfdecColor		color;
+  SwfdecTextAlign	align;
+  guint			left_margin;
+  guint			right_margin;
+  guint			indent;
+  int			leading;
+};
+
+struct _SwfdecTextFieldClass
+{
+  SwfdecGraphicClass	graphic_class;
+};
+
+GType			swfdec_text_field_get_type	(void);
+
+int			tag_func_define_edit_text	(SwfdecSwfDecoder *	s,
+							 guint			tag);
+
+void			swfdec_text_field_render		(SwfdecTextField *	text,
+							 cairo_t *		cr,
+							 const SwfdecParagraph *	paragraphs,
+							 const SwfdecColorTransform *	trans,
+							 const SwfdecRect *		rect);
+
+G_END_DECLS
+#endif
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
new file mode 100644
index 0000000..dd79e9a
--- /dev/null
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -0,0 +1,619 @@
+/* Swfdec
+ * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ *                    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_edittext_movie.h"
+#include "swfdec_as_context.h"
+#include "swfdec_as_strings.h"
+#include "swfdec_text_format.h"
+#include "swfdec_font.h"
+#include "swfdec_debug.h"
+#include "swfdec_player_internal.h"
+
+G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
+
+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_paragraph_add_attribute (SwfdecParagraph *paragraph,
+    PangoAttribute *attr)
+{
+  paragraph->attrs = g_list_append (paragraph->attrs,
+      pango_attribute_copy (attr));
+  pango_attr_list_insert (paragraph->attrs_list, attr);
+}
+
+static void
+swfdec_text_paragraph_add_block_attributes (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;
+  }
+  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;
+
+  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);
+  }
+
+  paragraph->blocks = g_list_append (paragraph->blocks, block);
+}
+
+static void
+swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
+    SwfdecParagraph *paragraph, guint start_index, guint end_index)
+{
+  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
+
+  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+  g_assert (paragraph != NULL);
+  g_assert (start_index < end_index);
+  g_assert (end_index <= strlen (text->text_display));
+
+  paragraph->text = text->text_display + start_index;
+  paragraph->text_length = end_index - start_index;
+
+  paragraph->blocks = NULL;
+  paragraph->attrs = NULL;
+  paragraph->attrs_list = pango_attr_list_new ();
+
+  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_attributes (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;
+
+  if (text->text->embed_fonts)
+    SWFDEC_FIXME ("Using embed fonts in TextField not supported");
+  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); // FIXME: correct scaling?
+  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 < end_index;
+      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_attributes (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);
+
+      if (text->text->embed_fonts)
+	SWFDEC_FIXME ("Using embed fonts in TextField not supported");
+      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);
+
+      // FIXME: correct scaling?
+      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 = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
+  attr_bold = NULL;
+
+  attr_color->end_index = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_color);
+  attr_color = NULL;
+
+  attr_font->end_index = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_font);
+  attr_font = NULL;
+
+  attr_italic->end_index = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
+  attr_italic = NULL;
+
+  attr_letter_spacing->end_index = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
+  attr_letter_spacing = NULL;
+
+  attr_size->end_index = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_size);
+  attr_size = NULL;
+
+  attr_underline->end_index = end_index - start_index;
+  swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
+  attr_underline = NULL;
+}
+
+static void
+swfdec_text_field_movie_generate_paragraphs (SwfdecTextFieldMovie *text)
+{
+  const char *p, *end;
+  int num, i;
+
+  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+
+  num = 0;
+  p = text->text_display;
+  while (p != NULL) {
+    num++;
+    p = strchr (p, '\r');
+    if (p != NULL) p++;
+  }
+
+  text->paragraphs = g_new0 (SwfdecParagraph, num + 1);
+
+  i = 0;
+  p = text->text_display;
+  while (*p != '\0') {
+    g_assert (i < num);
+    end = strchr (p, '\r');
+    if (end == NULL)
+      end = strchr (p, '\0');
+
+    swfdec_text_field_movie_generate_paragraph (text, &text->paragraphs[i],
+	p - text->text_display, end - text->text_display);
+
+    p = end;
+    if (*p == '\r') p++;
+
+    i++;
+  }
+  g_assert (i == num);
+}
+
+static void
+swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
+    const SwfdecColorTransform *trans, const SwfdecRect *inval)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+
+  if (text->paragraphs == NULL)
+    swfdec_text_field_movie_generate_paragraphs (text);
+
+  if (text->paragraphs[0].text == NULL)
+    return;
+  swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
+}
+
+static void
+swfdec_text_field_movie_free_paragraphs (SwfdecTextFieldMovie *text)
+{
+  GList *iter;
+  int i;
+
+  if (text->paragraphs) {
+    for (i = 0; text->paragraphs[i].text != NULL; i++)
+    {
+      for (iter = text->paragraphs[i].blocks; iter != NULL; iter = iter->next) {
+	pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
+      }
+      g_list_free (text->paragraphs[i].blocks);
+
+      for (iter = text->paragraphs[i].attrs; iter != NULL; iter = iter->next) {
+	pango_attribute_destroy ((PangoAttribute *)(iter->data));
+      }
+      g_list_free (text->paragraphs[i].attrs);
+
+      if (text->paragraphs[i].attrs_list != NULL)
+	pango_attr_list_unref (text->paragraphs[i].attrs_list);
+    }
+    g_free (text->paragraphs);
+    text->paragraphs = NULL;
+  }
+}
+
+void
+swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
+{
+  swfdec_text_field_movie_free_paragraphs (text);
+}
+
+static void
+swfdec_text_field_movie_dispose (GObject *object)
+{
+  SwfdecTextFieldMovie *text;
+  GSList *iter;
+
+  text = SWFDEC_TEXT_FIELD_MOVIE (object);
+
+  swfdec_text_field_movie_free_paragraphs (text);
+
+  for (iter = text->formats; iter != NULL; iter = iter->next) {
+    g_free (text->formats->data);
+    text->formats->data = NULL;
+  }
+  g_slist_free (text->formats);
+
+  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);
+
+  swfdec_as_string_mark (text->text_input);
+  swfdec_as_string_mark (text->text_display);
+  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 (SWFDEC_AS_OBJECT (text->style_sheet));
+
+  SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
+}
+
+static void
+swfdec_text_field_movie_iterate (SwfdecMovie *movie)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  SwfdecAsObject *parent;
+  const char *s;
+  SwfdecAsValue val = { 0, };
+
+  if (text->text->variable == NULL)
+    return;
+
+  parent = SWFDEC_AS_OBJECT (movie->parent);
+  swfdec_as_context_eval (parent->context, parent, text->text->variable, &val);
+  if (SWFDEC_AS_VALUE_IS_UNDEFINED (&val))
+    return;
+
+  s = swfdec_as_value_to_string (parent->context, &val);
+  g_assert (s);
+  if (text->text_input == s)
+    return;
+
+  swfdec_text_field_movie_set_text (text, s, text->text->html);
+}
+
+static void
+swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
+{
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+  SwfdecAsContext *cx;
+  SwfdecAsObject *parent;
+  SwfdecAsValue val = { 0, };
+  const char *s;
+
+  cx = SWFDEC_AS_OBJECT (movie)->context;
+
+  // format
+  text->format_new = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
+  swfdec_text_format_set_defaults (text->format_new);
+  text->format_new->color = text->text->color;
+  text->format_new->align = text->text->align;
+  text->format_new->font = text->text->font->name;
+  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
+  if (text->text->text_input != NULL) {
+    swfdec_text_field_movie_set_text (text,
+	swfdec_as_context_get_string (cx, text->text->text_input),
+	text->text->html);
+  }
+
+  // variable
+  if (text->text->variable != NULL)
+  {
+    text->variable = swfdec_as_context_get_string (cx, text->text->variable);
+
+    parent = SWFDEC_AS_OBJECT (movie->parent);
+    swfdec_as_context_eval (parent->context, parent, text->variable, &val);
+    if (!SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
+      s = swfdec_as_value_to_string (parent->context, &val);
+      g_assert (s);
+      if (text->text_input != s)
+	swfdec_text_field_movie_set_text (text, s, text->text->html);
+    } else {
+      SWFDEC_LOG ("setting variable %s to \"%s\"", text->variable,
+	  text->text_input ? text->text_input : "");
+      s = text->text_input ? swfdec_as_context_get_string (parent->context,
+	  text->text_input) : SWFDEC_AS_STR_EMPTY;
+      SWFDEC_AS_VALUE_SET_STRING (&val, s);
+      swfdec_as_context_eval_set (parent->context, parent, text->variable,
+	  &val);
+    }
+  }
+}
+
+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->update_extents = swfdec_text_field_movie_update_extents;
+  movie_class->render = swfdec_text_field_movie_render;
+  movie_class->iterate_start = swfdec_text_field_movie_iterate;
+}
+
+static void
+swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
+{
+}
+
+void
+swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
+    SwfdecTextFormat *format, guint start_index, guint end_index)
+{
+  SwfdecFormatIndex *findex, *findex_new;
+  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 <= strlen (text->text_display));
+
+  g_assert (text->formats != NULL);
+  g_assert (text->formats->data != NULL);
+  g_assert (((SwfdecFormatIndex *)text->formats->data)->index == 0);
+  for (iter = text->formats; iter != NULL &&
+      ((SwfdecFormatIndex *)iter->data)->index < end_index;
+      iter = next)
+  {
+    next = iter->next;
+    findex = iter->data;
+    if (iter->next != NULL) {
+      findex_end_index =
+	((SwfdecFormatIndex *)iter->next->data)->index;
+    } else {
+      findex_end_index = strlen (text->text_display);
+    }
+
+    if (findex_end_index < start_index)
+      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);
+
+      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);
+      swfdec_text_format_add (findex_new->format, format);
+
+      iter = g_slist_insert (iter, findex_new, 1);
+    } else {
+      swfdec_text_format_add (findex->format, format);
+    }
+  }
+
+  swfdec_text_field_movie_format_changed (text);
+}
+
+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));
+
+  text->text_input = str;
+
+  // 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 = text->format_new;
+  text->formats = g_slist_prepend (text->formats, block);
+
+  if (html) {
+    swfdec_text_field_movie_html_parse (text, str);
+  } else {
+    // change all \n to \r
+    if (strchr (str, '\n') != NULL) {
+      char *string, *p;
+
+      string = g_strdup (str);
+      p = string;
+      while ((p = strchr (p, '\n')) != NULL) {
+	*p = '\r';
+      }
+      text->text_display = swfdec_as_context_give_string (
+	  SWFDEC_AS_OBJECT (text)->context, string);
+    } else {
+      text->text_display = str;
+    }
+  }
+
+  swfdec_text_field_movie_format_changed (text);
+}
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
new file mode 100644
index 0000000..8b7999a
--- /dev/null
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -0,0 +1,108 @@
+/* Swfdec
+ * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ *                    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 <libswfdec/swfdec_movie.h>
+#include <libswfdec/swfdec_edittext.h>
+#include <libswfdec/swfdec_style_sheet.h>
+#include <libswfdec/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 {
+  guint			index;
+  SwfdecTextFormat *	format;
+} SwfdecFormatIndex;
+
+typedef enum {
+  SWFDEC_ANTI_ALIAS_TYPE_NORMAL,
+  SWFDEC_ANTI_ALIAS_TYPE_ADVANCED
+} SwfdecAntiAliasType;
+
+typedef enum {
+  SWFDEC_GRID_FIT_TYPE_NONE,
+  SWFDEC_GRID_FIT_TYPE_PIXEL,
+  SWFDEC_GRID_FIT_TYPE_SUBPIXEL
+} SwfdecGridFitType;
+
+struct _SwfdecTextFieldMovie {
+  SwfdecMovie		movie;
+
+  SwfdecTextField *	text;		/* the text_field object we render */
+
+  const char *		text_input;
+  const char *		text_display;
+
+  const char *		variable;
+
+  SwfdecTextFormat *	format_new;
+  GSList *		formats;
+
+  SwfdecAntiAliasType	anti_alias_type;
+  gboolean		background_fill;
+  guint			border_color;
+  gboolean		condense_white;
+  gboolean		embed_fonts;
+  SwfdecGridFitType	grid_fit_type;
+  guint			hscroll;
+  gboolean		mouse_wheel_enabled;
+  const char *		restrict_;
+  guint			scroll;
+  int			sharpness;
+  SwfdecStyleSheet *	style_sheet;
+  int			thickness;
+
+  /* for rendering */
+  SwfdecParagraph *	paragraphs;
+};
+
+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_format_changed	(SwfdecTextFieldMovie *	text);
+void		swfdec_text_field_movie_set_text_format	(SwfdecTextFieldMovie *	text,
+							 SwfdecTextFormat *	format,
+							 guint			start_index,
+							 guint			end_index);
+
+/* implemented in swfdec_html_parser.c */
+void		swfdec_text_field_movie_html_parse	(SwfdecTextFieldMovie *	text, 
+							 const char *		str);
+
+G_END_DECLS
+#endif
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
new file mode 100644
index 0000000..c9d4cd0
--- /dev/null
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -0,0 +1,705 @@
+/* Swfdec
+ * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ *                    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_edittext.h"
+#include "swfdec_edittext_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_frame_internal.h"
+#include "swfdec_xml.h"
+#include "swfdec_internal.h"
+#include "swfdec_player_internal.h"
+
+static void
+swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecTextFieldMovie *text;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+  SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
+	swfdec_as_context_get_string (cx, text->text_display) :
+	SWFDEC_AS_STR_EMPTY));
+}
+
+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, (gpointer)&text, "s", &value);
+
+  swfdec_text_field_movie_set_text (text, value, FALSE);
+}
+
+static const char *
+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 ();
+  }
+}
+
+/*
+ * 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_htmlText_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;
+  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\">",
+	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->text_display + 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 (iter_font != NULL) {
+      while (fonts != iter_font) {
+	string = g_string_append (string, "</FONT>");
+	fonts = g_slist_remove (fonts, fonts->data);
+      }
+    }
+    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>");
+
+    // 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->text_display + 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;
+}
+
+static void
+swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
+    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+    SwfdecAsValue *ret)
+{
+  SwfdecTextFieldMovie *text;
+  const char *p, *end;
+  GString *string;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+  if (text->text->html == FALSE) {
+    swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
+    return;
+  }
+
+  if (text->text_display == NULL) {
+    SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_EMPTY);
+    return;
+  }
+
+  string = g_string_new ("");
+
+  p = text->text_display;
+  while (*p != '\0') {
+    end = strchr (p, '\r');
+    if (end == NULL)
+      end = strchr (p, '\0');
+
+    string = swfdec_text_field_movie_htmlText_append_paragraph (text, string,
+	p - text->text_display, end - text->text_display);
+
+    if (*end == '\r') {
+      p = end + 1;
+    } else {
+      p = end;
+    }
+  }
+
+  SWFDEC_AS_VALUE_SET_STRING (ret,
+      swfdec_as_context_give_string (cx, g_string_free (string, FALSE)));
+}
+
+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, (gpointer)&text, "s", &value);
+
+  swfdec_text_field_movie_set_text (text, value, text->text->html);
+}
+
+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, (gpointer)&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, (gpointer)&text, "b", &value);
+
+  text->text->html = value;
+}
+
+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, (gpointer)&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, (gpointer)&text, "b", &value);
+
+  text->condense_white = value;
+}
+
+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, (gpointer)&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, (gpointer)&text, "b", &value);
+
+  text->text->embed_fonts = value;
+}
+
+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, (gpointer)&text, "");
+
+  SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
+}
+
+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, (gpointer)&text, "");
+
+  swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
+      SWFDEC_AS_STR_color, ret);
+}
+
+static void
+swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
+    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+    SwfdecAsValue *ret)
+{
+  SwfdecTextFieldMovie *text;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+  if (argc < 1)
+    return;
+
+  swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new),
+      SWFDEC_AS_STR_color, &argv[0]);
+}
+
+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, (gpointer)&text, "");
+
+  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, (gpointer)&text, "o", &obj);
+
+  if (!SWFDEC_IS_TEXT_FORMAT (obj))
+    return;
+
+  text->format_new = swfdec_text_format_copy (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;
+  guint start_index, end_index;
+  int i;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+  if (argc < 1)
+    return;
+
+  i = 0;
+  if (argc >= 2) {
+    start_index = swfdec_as_value_to_integer (cx, &argv[i++]);
+    start_index = MIN (start_index, strlen (text->text_display));
+  } else {
+    start_index = 0;
+  }
+  if (argc >= 3) {
+    end_index = swfdec_as_value_to_integer (cx, &argv[i++]);
+    end_index = CLAMP (end_index, start_index, strlen (text->text_display));
+  } else {
+    end_index = strlen (text->text_display);
+  }
+  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, start_index, end_index);
+}
+
+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, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
+
+  edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
+  edittext->html = FALSE;
+  edittext->input = FALSE;
+  edittext->password = FALSE;
+  edittext->selectable = TRUE;
+  edittext->font = NULL; // FIXME
+  edittext->wrap = FALSE;
+  edittext->multiline = FALSE;
+  edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
+  edittext->border = FALSE;
+  edittext->size = 240; // FIXME: Correct?
+
+  edittext->text_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;
+
+  edittext->graphic.extents.x0 = x;
+  edittext->graphic.extents.x1 = x + width;
+  edittext->graphic.extents.y0 = y;
+  edittext->graphic.extents.y1 = y + height;
+
+  movie = swfdec_movie_find (parent, depth);
+  if (movie)
+    swfdec_movie_remove (movie);
+
+  movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent,
+      SWFDEC_GRAPHIC (edittext), name);
+  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
+  swfdec_movie_initialize (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);
+}
+
+static void
+swfdec_text_field_movie_add_variable (SwfdecAsObject *object,
+    const char *variable, SwfdecAsNative get, SwfdecAsNative set)
+{
+  SwfdecAsFunction *get_func, *set_func;
+
+  g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
+  g_return_if_fail (variable != NULL);
+  g_return_if_fail (get != NULL);
+
+  get_func =
+    swfdec_as_native_function_new (object->context, variable, get, 0, NULL);
+  if (get_func == NULL)
+    return;
+
+  if (set != NULL) {
+    set_func =
+      swfdec_as_native_function_new (object->context, variable, set, 0, NULL);
+  } else {
+    set_func = NULL;
+  }
+
+  swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
+}
+
+SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
+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 (SwfdecTextFieldMovie)))
+      return;
+    object = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
+    swfdec_as_object_add (object, cx, sizeof (SwfdecTextFieldMovie));
+    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");
+    }
+  }
+
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
+
+  if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
+    SwfdecAsValue val;
+    SwfdecAsObject *proto;
+
+    swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
+    g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
+    proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
+	swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
+	swfdec_text_field_movie_get_htmlText,
+	swfdec_text_field_movie_set_htmlText);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
+	swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
+	swfdec_text_field_movie_get_condenseWhite,
+	swfdec_text_field_movie_set_condenseWhite);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
+	swfdec_text_field_movie_get_embedFonts,
+	swfdec_text_field_movie_set_embedFonts);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
+	swfdec_text_field_movie_get_length, NULL);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
+	swfdec_text_field_movie_get_textColor,
+	swfdec_text_field_movie_set_textColor);
+
+    SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
+  }
+
+  SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
+}
diff-tree ba72dd43b20c244e1de4a2a5aea7438bdbcc318d (from ef5288e48b9b4cd61e44429dbf5db01598e9d066)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 11:42:43 2007 +0300

    Rename everything EditText to TextField

diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 8c7eadc..a8413b7 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2104,7 +2104,7 @@ swfdec_action_type_of (SwfdecAsContext *
     case SWFDEC_AS_TYPE_OBJECT:
       {
 	SwfdecAsObject *obj = SWFDEC_AS_VALUE_GET_OBJECT (val);
-	if (SWFDEC_IS_EDIT_TEXT_MOVIE (obj)) {
+	if (SWFDEC_IS_TEXT_FIELD_MOVIE (obj)) {
 	  type = SWFDEC_AS_STR_object;
 	} else if (SWFDEC_IS_MOVIE (obj)) {
 	  type = SWFDEC_AS_STR_movieclip;
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 8ad6de7..7905673 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -31,66 +31,66 @@
 #include "swfdec_player_internal.h"
 #include "swfdec_swf_decoder.h"
 
-G_DEFINE_TYPE (SwfdecEditText, swfdec_edit_text, SWFDEC_TYPE_GRAPHIC)
+G_DEFINE_TYPE (SwfdecTextField, swfdec_text_field, SWFDEC_TYPE_GRAPHIC)
 
 static gboolean
-swfdec_edit_text_mouse_in (SwfdecGraphic *graphic, double x, double y)
+swfdec_text_field_mouse_in (SwfdecGraphic *graphic, double x, double y)
 {
   return swfdec_rect_contains (&graphic->extents, x, y);
 }
 
 static SwfdecMovie *
-swfdec_edit_text_create_movie (SwfdecGraphic *graphic, gsize *size)
+swfdec_text_field_create_movie (SwfdecGraphic *graphic, gsize *size)
 {
-  SwfdecEditText *text = SWFDEC_EDIT_TEXT (graphic);
-  SwfdecEditTextMovie *ret = g_object_new (SWFDEC_TYPE_EDIT_TEXT_MOVIE, NULL);
+  SwfdecTextField *text = SWFDEC_TEXT_FIELD (graphic);
+  SwfdecTextFieldMovie *ret = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
 
   ret->text = text;
 
-  *size = sizeof (SwfdecEditTextMovie);
+  *size = sizeof (SwfdecTextFieldMovie);
 
   return SWFDEC_MOVIE (ret);
 }
 
 static void
-swfdec_edit_text_dispose (GObject *object)
+swfdec_text_field_dispose (GObject *object)
 {
-  SwfdecEditText *text = SWFDEC_EDIT_TEXT (object);
+  SwfdecTextField *text = SWFDEC_TEXT_FIELD (object);
 
   g_free (text->text_input);
   text->text_input = NULL;
   g_free (text->variable);
   text->variable = NULL;
 
-  G_OBJECT_CLASS (swfdec_edit_text_parent_class)->dispose (object);
+  G_OBJECT_CLASS (swfdec_text_field_parent_class)->dispose (object);
 }
 
 static void
-swfdec_edit_text_class_init (SwfdecEditTextClass * g_class)
+swfdec_text_field_class_init (SwfdecTextFieldClass * g_class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (g_class);
   SwfdecGraphicClass *graphic_class = SWFDEC_GRAPHIC_CLASS (g_class);
 
-  object_class->dispose = swfdec_edit_text_dispose;
-  graphic_class->create_movie = swfdec_edit_text_create_movie;
-  graphic_class->mouse_in = swfdec_edit_text_mouse_in;
+  object_class->dispose = swfdec_text_field_dispose;
+  graphic_class->create_movie = swfdec_text_field_create_movie;
+  graphic_class->mouse_in = swfdec_text_field_mouse_in;
 }
 
 static void
-swfdec_edit_text_init (SwfdecEditText * text)
+swfdec_text_field_init (SwfdecTextField * text)
 {
   text->max_length = G_MAXUINT;
 }
 
 void
-swfdec_edit_text_render (SwfdecEditText *text, cairo_t *cr,
+swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
     const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
     const SwfdecRect *inval)
 {
   PangoLayout *layout;
   guint i;
 
-  g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
   g_return_if_fail (cr != NULL);
   g_return_if_fail (paragraphs != NULL);
   g_return_if_fail (trans != NULL);
@@ -240,7 +240,7 @@ swfdec_edit_text_render (SwfdecEditText 
 int
 tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
 {
-  SwfdecEditText *text;
+  SwfdecTextField *text;
   guint id;
   int reserved;
   gboolean has_font, has_color, has_max_length, has_layout, has_text;
@@ -248,7 +248,7 @@ tag_func_define_edit_text (SwfdecSwfDeco
 
   id = swfdec_bits_get_u16 (b);
   SWFDEC_LOG ("  id = %u", id);
-  text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_EDIT_TEXT);
+  text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_TEXT_FIELD);
   if (text == NULL)
     return SWFDEC_STATUS_OK;
 
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index f7c6e22..aa84422 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -18,8 +18,8 @@
  * Boston, MA  02110-1301  USA
  */
 
-#ifndef _SWFDEC_EDIT_TEXT_H_
-#define _SWFDEC_EDIT_TEXT_H_
+#ifndef _SWFDEC_TEXT_FIELD_H_
+#define _SWFDEC_TEXT_FIELD_H_
 
 #include <pango/pango.h>
 #include <libswfdec/swfdec_types.h>
@@ -30,14 +30,14 @@
 
 G_BEGIN_DECLS
 
-typedef struct _SwfdecEditText SwfdecEditText;
-typedef struct _SwfdecEditTextClass SwfdecEditTextClass;
+typedef struct _SwfdecTextField SwfdecTextField;
+typedef struct _SwfdecTextFieldClass SwfdecTextFieldClass;
 
-#define SWFDEC_TYPE_EDIT_TEXT                    (swfdec_edit_text_get_type())
-#define SWFDEC_IS_EDIT_TEXT(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_EDIT_TEXT))
-#define SWFDEC_IS_EDIT_TEXT_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_EDIT_TEXT))
-#define SWFDEC_EDIT_TEXT(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_EDIT_TEXT, SwfdecEditText))
-#define SWFDEC_EDIT_TEXT_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_EDIT_TEXT, SwfdecEditTextClass))
+#define SWFDEC_TYPE_TEXT_FIELD                    (swfdec_text_field_get_type())
+#define SWFDEC_IS_TEXT_FIELD(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_IS_TEXT_FIELD_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_TEXT_FIELD(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextField))
+#define SWFDEC_TEXT_FIELD_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
 
 typedef struct {
   guint			index_;
@@ -71,7 +71,7 @@ typedef enum {
   SWFDEC_AUTO_SIZE_RIGHT
 } SwfdecAutoSize;
 
-struct _SwfdecEditText
+struct _SwfdecTextField
 {
   SwfdecGraphic		graphic;
 
@@ -103,17 +103,17 @@ struct _SwfdecEditText
   int			leading;
 };
 
-struct _SwfdecEditTextClass
+struct _SwfdecTextFieldClass
 {
   SwfdecGraphicClass	graphic_class;
 };
 
-GType			swfdec_edit_text_get_type	(void);
+GType			swfdec_text_field_get_type	(void);
 
 int			tag_func_define_edit_text	(SwfdecSwfDecoder *	s,
 							 guint			tag);
 
-void			swfdec_edit_text_render		(SwfdecEditText *	text,
+void			swfdec_text_field_render		(SwfdecTextField *	text,
 							 cairo_t *		cr,
 							 const SwfdecParagraph *	paragraphs,
 							 const SwfdecColorTransform *	trans,
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 4f68687..dd79e9a 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -32,14 +32,14 @@
 #include "swfdec_debug.h"
 #include "swfdec_player_internal.h"
 
-G_DEFINE_TYPE (SwfdecEditTextMovie, swfdec_edit_text_movie, SWFDEC_TYPE_MOVIE)
+G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
 
 static void
-swfdec_edit_text_movie_update_extents (SwfdecMovie *movie,
+swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
     SwfdecRect *extents)
 {
   swfdec_rect_union (extents, extents, 
-      &SWFDEC_GRAPHIC (SWFDEC_EDIT_TEXT_MOVIE (movie)->text)->extents);
+      &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
 }
 
 static void
@@ -99,7 +99,7 @@ swfdec_text_paragraph_add_block_attribut
 }
 
 static void
-swfdec_edit_text_movie_generate_paragraph (SwfdecEditTextMovie *text,
+swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
     SwfdecParagraph *paragraph, guint start_index, guint end_index)
 {
   SwfdecTextFormat *format, *format_prev;
@@ -109,7 +109,7 @@ swfdec_edit_text_movie_generate_paragrap
 		 *attr_letter_spacing, *attr_size, *attr_underline;
   // TODO: kerning
 
-  g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
   g_assert (paragraph != NULL);
   g_assert (start_index < end_index);
   g_assert (end_index <= strlen (text->text_display));
@@ -287,12 +287,12 @@ swfdec_edit_text_movie_generate_paragrap
 }
 
 static void
-swfdec_edit_text_movie_generate_paragraphs (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_generate_paragraphs (SwfdecTextFieldMovie *text)
 {
   const char *p, *end;
   int num, i;
 
-  g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
 
   num = 0;
   p = text->text_display;
@@ -312,7 +312,7 @@ swfdec_edit_text_movie_generate_paragrap
     if (end == NULL)
       end = strchr (p, '\0');
 
-    swfdec_edit_text_movie_generate_paragraph (text, &text->paragraphs[i],
+    swfdec_text_field_movie_generate_paragraph (text, &text->paragraphs[i],
 	p - text->text_display, end - text->text_display);
 
     p = end;
@@ -324,21 +324,21 @@ swfdec_edit_text_movie_generate_paragrap
 }
 
 static void
-swfdec_edit_text_movie_render (SwfdecMovie *movie, cairo_t *cr,
+swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
     const SwfdecColorTransform *trans, const SwfdecRect *inval)
 {
-  SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
 
   if (text->paragraphs == NULL)
-    swfdec_edit_text_movie_generate_paragraphs (text);
+    swfdec_text_field_movie_generate_paragraphs (text);
 
   if (text->paragraphs[0].text == NULL)
     return;
-  swfdec_edit_text_render (text->text, cr, text->paragraphs, trans, inval);
+  swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
 }
 
 static void
-swfdec_edit_text_movie_free_paragraphs (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_free_paragraphs (SwfdecTextFieldMovie *text)
 {
   GList *iter;
   int i;
@@ -365,20 +365,20 @@ swfdec_edit_text_movie_free_paragraphs (
 }
 
 void
-swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
 {
-  swfdec_edit_text_movie_free_paragraphs (text);
+  swfdec_text_field_movie_free_paragraphs (text);
 }
 
 static void
-swfdec_edit_text_movie_dispose (GObject *object)
+swfdec_text_field_movie_dispose (GObject *object)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   GSList *iter;
 
-  text = SWFDEC_EDIT_TEXT_MOVIE (object);
+  text = SWFDEC_TEXT_FIELD_MOVIE (object);
 
-  swfdec_edit_text_movie_free_paragraphs (text);
+  swfdec_text_field_movie_free_paragraphs (text);
 
   for (iter = text->formats; iter != NULL; iter = iter->next) {
     g_free (text->formats->data);
@@ -386,16 +386,16 @@ swfdec_edit_text_movie_dispose (GObject 
   }
   g_slist_free (text->formats);
 
-  G_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->dispose (object);
+  G_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->dispose (object);
 }
 
 static void
-swfdec_edit_text_movie_mark (SwfdecAsObject *object)
+swfdec_text_field_movie_mark (SwfdecAsObject *object)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   GSList *iter;
 
-  text = SWFDEC_EDIT_TEXT_MOVIE (object);
+  text = SWFDEC_TEXT_FIELD_MOVIE (object);
 
   swfdec_as_string_mark (text->text_input);
   swfdec_as_string_mark (text->text_display);
@@ -409,13 +409,13 @@ swfdec_edit_text_movie_mark (SwfdecAsObj
   if (text->style_sheet != NULL)
     swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->style_sheet));
 
-  SWFDEC_AS_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->mark (object);
+  SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
 }
 
 static void
-swfdec_edit_text_movie_iterate (SwfdecMovie *movie)
+swfdec_text_field_movie_iterate (SwfdecMovie *movie)
 {
-  SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
   SwfdecAsObject *parent;
   const char *s;
   SwfdecAsValue val = { 0, };
@@ -433,13 +433,13 @@ swfdec_edit_text_movie_iterate (SwfdecMo
   if (text->text_input == s)
     return;
 
-  swfdec_edit_text_movie_set_text (text, s, text->text->html);
+  swfdec_text_field_movie_set_text (text, s, text->text->html);
 }
 
 static void
-swfdec_edit_text_movie_init_movie (SwfdecMovie *movie)
+swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
 {
-  SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
+  SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
   SwfdecAsContext *cx;
   SwfdecAsObject *parent;
   SwfdecAsValue val = { 0, };
@@ -461,7 +461,7 @@ swfdec_edit_text_movie_init_movie (Swfde
 
   // text
   if (text->text->text_input != NULL) {
-    swfdec_edit_text_movie_set_text (text,
+    swfdec_text_field_movie_set_text (text,
 	swfdec_as_context_get_string (cx, text->text->text_input),
 	text->text->html);
   }
@@ -477,7 +477,7 @@ swfdec_edit_text_movie_init_movie (Swfde
       s = swfdec_as_value_to_string (parent->context, &val);
       g_assert (s);
       if (text->text_input != s)
-	swfdec_edit_text_movie_set_text (text, s, text->text->html);
+	swfdec_text_field_movie_set_text (text, s, text->text->html);
     } else {
       SWFDEC_LOG ("setting variable %s to \"%s\"", text->variable,
 	  text->text_input ? text->text_input : "");
@@ -491,36 +491,36 @@ swfdec_edit_text_movie_init_movie (Swfde
 }
 
 static void
-swfdec_edit_text_movie_class_init (SwfdecEditTextMovieClass * g_class)
+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_edit_text_movie_dispose;
+  object_class->dispose = swfdec_text_field_movie_dispose;
 
-  asobject_class->mark = swfdec_edit_text_movie_mark;
+  asobject_class->mark = swfdec_text_field_movie_mark;
 
-  movie_class->init_movie = swfdec_edit_text_movie_init_movie;
-  movie_class->update_extents = swfdec_edit_text_movie_update_extents;
-  movie_class->render = swfdec_edit_text_movie_render;
-  movie_class->iterate_start = swfdec_edit_text_movie_iterate;
+  movie_class->init_movie = swfdec_text_field_movie_init_movie;
+  movie_class->update_extents = swfdec_text_field_movie_update_extents;
+  movie_class->render = swfdec_text_field_movie_render;
+  movie_class->iterate_start = swfdec_text_field_movie_iterate;
 }
 
 static void
-swfdec_edit_text_movie_init (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
 {
 }
 
 void
-swfdec_edit_text_movie_set_text_format (SwfdecEditTextMovie *text,
+swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
     SwfdecTextFormat *format, guint start_index, guint end_index)
 {
   SwfdecFormatIndex *findex, *findex_new;
   guint findex_end_index;
   GSList *iter, *next;
 
-  g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+  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 <= strlen (text->text_display));
@@ -564,17 +564,17 @@ swfdec_edit_text_movie_set_text_format (
     }
   }
 
-  swfdec_edit_text_movie_format_changed (text);
+  swfdec_text_field_movie_format_changed (text);
 }
 
 void
-swfdec_edit_text_movie_set_text (SwfdecEditTextMovie *text, const char *str,
+swfdec_text_field_movie_set_text (SwfdecTextFieldMovie *text, const char *str,
     gboolean html)
 {
   SwfdecFormatIndex *block;
   GSList *iter;
 
-  g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
 
   text->text_input = str;
 
@@ -597,7 +597,7 @@ swfdec_edit_text_movie_set_text (SwfdecE
   text->formats = g_slist_prepend (text->formats, block);
 
   if (html) {
-    swfdec_edit_text_movie_html_parse (text, str);
+    swfdec_text_field_movie_html_parse (text, str);
   } else {
     // change all \n to \r
     if (strchr (str, '\n') != NULL) {
@@ -615,5 +615,5 @@ swfdec_edit_text_movie_set_text (SwfdecE
     }
   }
 
-  swfdec_edit_text_movie_format_changed (text);
+  swfdec_text_field_movie_format_changed (text);
 }
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
index 103942b..8b7999a 100644
--- a/libswfdec/swfdec_edittext_movie.h
+++ b/libswfdec/swfdec_edittext_movie.h
@@ -18,8 +18,8 @@
  * Boston, MA  02110-1301  USA
  */
 
-#ifndef _SWFDEC_EDIT_TEXT_MOVIE_H_
-#define _SWFDEC_EDIT_TEXT_MOVIE_H_
+#ifndef _SWFDEC_TEXT_FIELD_MOVIE_H_
+#define _SWFDEC_TEXT_FIELD_MOVIE_H_
 
 #include <libswfdec/swfdec_movie.h>
 #include <libswfdec/swfdec_edittext.h>
@@ -29,14 +29,14 @@
 G_BEGIN_DECLS
 
 
-typedef struct _SwfdecEditTextMovie SwfdecEditTextMovie;
-typedef struct _SwfdecEditTextMovieClass SwfdecEditTextMovieClass;
+typedef struct _SwfdecTextFieldMovie SwfdecTextFieldMovie;
+typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
 
-#define SWFDEC_TYPE_EDIT_TEXT_MOVIE                    (swfdec_edit_text_movie_get_type())
-#define SWFDEC_IS_EDIT_TEXT_MOVIE(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_EDIT_TEXT_MOVIE))
-#define SWFDEC_IS_EDIT_TEXT_MOVIE_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_EDIT_TEXT_MOVIE))
-#define SWFDEC_EDIT_TEXT_MOVIE(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_EDIT_TEXT_MOVIE, SwfdecEditTextMovie))
-#define SWFDEC_EDIT_TEXT_MOVIE_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_EDIT_TEXT_MOVIE, SwfdecEditTextMovieClass))
+#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 {
   guint			index;
@@ -54,10 +54,10 @@ typedef enum {
   SWFDEC_GRID_FIT_TYPE_SUBPIXEL
 } SwfdecGridFitType;
 
-struct _SwfdecEditTextMovie {
+struct _SwfdecTextFieldMovie {
   SwfdecMovie		movie;
 
-  SwfdecEditText *	text;		/* the edit_text object we render */
+  SwfdecTextField *	text;		/* the text_field object we render */
 
   const char *		text_input;
   const char *		text_display;
@@ -85,23 +85,23 @@ struct _SwfdecEditTextMovie {
   SwfdecParagraph *	paragraphs;
 };
 
-struct _SwfdecEditTextMovieClass {
+struct _SwfdecTextFieldMovieClass {
   SwfdecMovieClass	movie_class;
 };
 
-GType		swfdec_edit_text_movie_get_type		(void);
+GType		swfdec_text_field_movie_get_type		(void);
 
-void		swfdec_edit_text_movie_set_text		(SwfdecEditTextMovie *	movie,
+void		swfdec_text_field_movie_set_text		(SwfdecTextFieldMovie *	movie,
 							 const char *		str,
 							 gboolean		html);
-void		swfdec_edit_text_movie_format_changed	(SwfdecEditTextMovie *	text);
-void		swfdec_edit_text_movie_set_text_format	(SwfdecEditTextMovie *	text,
+void		swfdec_text_field_movie_format_changed	(SwfdecTextFieldMovie *	text);
+void		swfdec_text_field_movie_set_text_format	(SwfdecTextFieldMovie *	text,
 							 SwfdecTextFormat *	format,
 							 guint			start_index,
 							 guint			end_index);
 
 /* implemented in swfdec_html_parser.c */
-void		swfdec_edit_text_movie_html_parse	(SwfdecEditTextMovie *	text, 
+void		swfdec_text_field_movie_html_parse	(SwfdecTextFieldMovie *	text, 
 							 const char *		str);
 
 G_END_DECLS
diff --git a/libswfdec/swfdec_edittext_movie_as.c b/libswfdec/swfdec_edittext_movie_as.c
index bb58e9b..c9d4cd0 100644
--- a/libswfdec/swfdec_edittext_movie_as.c
+++ b/libswfdec/swfdec_edittext_movie_as.c
@@ -37,12 +37,12 @@
 #include "swfdec_player_internal.h"
 
 static void
-swfdec_edit_text_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
 	swfdec_as_context_get_string (cx, text->text_display) :
@@ -50,16 +50,16 @@ swfdec_edit_text_movie_get_text (SwfdecA
 }
 
 static void
-swfdec_edit_text_movie_do_set_text (SwfdecAsContext *cx,
+swfdec_text_field_movie_do_set_text (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   const char *value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "s", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
 
-  swfdec_edit_text_movie_set_text (text, value, FALSE);
+  swfdec_text_field_movie_set_text (text, value, FALSE);
 }
 
 static const char *
@@ -95,7 +95,7 @@ align_to_string (SwfdecTextAlign align)
  * U: none
  */
 static GString *
-swfdec_edit_text_movie_htmlText_append_paragraph (SwfdecEditTextMovie *text,
+swfdec_text_field_movie_htmlText_append_paragraph (SwfdecTextFieldMovie *text,
     GString *string, guint start_index, guint end_index)
 {
   SwfdecTextFormat *format, *format_prev, *format_font;
@@ -104,7 +104,7 @@ swfdec_edit_text_movie_htmlText_append_p
   gboolean textformat, bullet, font;
   char *escaped;
 
-  g_return_val_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text), string);
+  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);
 
@@ -305,18 +305,18 @@ swfdec_edit_text_movie_htmlText_append_p
 }
 
 static void
-swfdec_edit_text_movie_get_htmlText (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   const char *p, *end;
   GString *string;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   if (text->text->html == FALSE) {
-    swfdec_edit_text_movie_get_text (cx, object, argc, argv, ret);
+    swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
     return;
   }
 
@@ -333,7 +333,7 @@ swfdec_edit_text_movie_get_htmlText (Swf
     if (end == NULL)
       end = strchr (p, '\0');
 
-    string = swfdec_edit_text_movie_htmlText_append_paragraph (text, string,
+    string = swfdec_text_field_movie_htmlText_append_paragraph (text, string,
 	p - text->text_display, end - text->text_display);
 
     if (*end == '\r') {
@@ -348,123 +348,123 @@ swfdec_edit_text_movie_get_htmlText (Swf
 }
 
 static void
-swfdec_edit_text_movie_set_htmlText (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_htmlText (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   const char *value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "s", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
 
-  swfdec_edit_text_movie_set_text (text, value, text->text->html);
+  swfdec_text_field_movie_set_text (text, value, text->text->html);
 }
 
 static void
-swfdec_edit_text_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
 }
 
 static void
-swfdec_edit_text_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   gboolean value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "b", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
 
   text->text->html = value;
 }
 
 static void
-swfdec_edit_text_movie_get_condenseWhite (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_condenseWhite (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
 }
 
 static void
-swfdec_edit_text_movie_set_condenseWhite (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_condenseWhite (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   gboolean value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "b", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
 
   text->condense_white = value;
 }
 
 static void
-swfdec_edit_text_movie_get_embedFonts (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
 }
 
 static void
-swfdec_edit_text_movie_set_embedFonts (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   gboolean value;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "b", &value);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
 
   text->text->embed_fonts = value;
 }
 
 static void
-swfdec_edit_text_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
 }
 
 static void
-swfdec_edit_text_movie_get_textColor (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
       SWFDEC_AS_STR_color, ret);
 }
 
 static void
-swfdec_edit_text_movie_set_textColor (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   if (argc < 1)
     return;
@@ -473,30 +473,30 @@ swfdec_edit_text_movie_set_textColor (Sw
       SWFDEC_AS_STR_color, &argv[0]);
 }
 
-SWFDEC_AS_NATIVE (104, 104, swfdec_edit_text_movie_getNewTextFormat)
+SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
 void
-swfdec_edit_text_movie_getNewTextFormat (SwfdecAsContext *cx,
+swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   SWFDEC_AS_VALUE_SET_OBJECT (ret,
       SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
 }
 
-SWFDEC_AS_NATIVE (104, 105, swfdec_edit_text_movie_setNewTextFormat)
+SWFDEC_AS_NATIVE (104, 105, swfdec_text_field_movie_setNewTextFormat)
 void
-swfdec_edit_text_movie_setNewTextFormat (SwfdecAsContext *cx,
+swfdec_text_field_movie_setNewTextFormat (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   SwfdecAsObject *obj;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "o", &obj);
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "o", &obj);
 
   if (!SWFDEC_IS_TEXT_FORMAT (obj))
     return;
@@ -504,18 +504,18 @@ swfdec_edit_text_movie_setNewTextFormat 
   text->format_new = swfdec_text_format_copy (SWFDEC_TEXT_FORMAT (obj));
 }
 
-SWFDEC_AS_NATIVE (104, 102, swfdec_edit_text_movie_setTextFormat)
+SWFDEC_AS_NATIVE (104, 102, swfdec_text_field_movie_setTextFormat)
 void
-swfdec_edit_text_movie_setTextFormat (SwfdecAsContext *cx,
+swfdec_text_field_movie_setTextFormat (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *ret)
 {
-  SwfdecEditTextMovie *text;
+  SwfdecTextFieldMovie *text;
   SwfdecTextFormat *format;
   guint start_index, end_index;
   int i;
 
-  SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
 
   if (argc < 1)
     return;
@@ -543,17 +543,17 @@ swfdec_edit_text_movie_setTextFormat (Sw
 
   format = SWFDEC_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]));
 
-  swfdec_edit_text_movie_set_text_format (text, format, start_index, end_index);
+  swfdec_text_field_movie_set_text_format (text, format, start_index, end_index);
 }
 
-SWFDEC_AS_NATIVE (104, 200, swfdec_edit_text_movie_createTextField)
+SWFDEC_AS_NATIVE (104, 200, swfdec_text_field_movie_createTextField)
 void
-swfdec_edit_text_movie_createTextField (SwfdecAsContext *cx,
+swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
     SwfdecAsValue *rval)
 {
   SwfdecMovie *movie, *parent;
-  SwfdecEditText *edittext;
+  SwfdecTextField *edittext;
   int depth, x, y, width, height;
   const char *name;
   SwfdecAsFunction *fun;
@@ -561,7 +561,7 @@ swfdec_edit_text_movie_createTextField (
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
 
-  edittext = g_object_new (SWFDEC_TYPE_EDIT_TEXT, NULL);
+  edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
   edittext->html = FALSE;
   edittext->input = FALSE;
   edittext->password = FALSE;
@@ -593,7 +593,7 @@ swfdec_edit_text_movie_createTextField (
 
   movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent,
       SWFDEC_GRAPHIC (edittext), name);
-  g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (movie));
+  g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
   swfdec_movie_initialize (movie);
 
   swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
@@ -625,7 +625,7 @@ swfdec_edit_text_movie_createTextField (
 }
 
 static void
-swfdec_edit_text_movie_add_variable (SwfdecAsObject *object,
+swfdec_text_field_movie_add_variable (SwfdecAsObject *object,
     const char *variable, SwfdecAsNative get, SwfdecAsNative set)
 {
   SwfdecAsFunction *get_func, *set_func;
@@ -649,17 +649,17 @@ swfdec_edit_text_movie_add_variable (Swf
   swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
 }
 
-SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_edit_text_movie_construct, swfdec_edit_text_movie_get_type)
+SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
 void
-swfdec_edit_text_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
+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 (SwfdecEditTextMovie)))
+    if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecTextFieldMovie)))
       return;
-    object = g_object_new (SWFDEC_TYPE_EDIT_TEXT_MOVIE, NULL);
-    swfdec_as_object_add (object, cx, sizeof (SwfdecEditTextMovie));
+    object = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
+    swfdec_as_object_add (object, cx, sizeof (SwfdecTextFieldMovie));
     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,
@@ -669,7 +669,7 @@ swfdec_edit_text_movie_construct (Swfdec
     }
   }
 
-  g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (object));
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
 
   if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
     SwfdecAsValue val;
@@ -679,24 +679,24 @@ swfdec_edit_text_movie_construct (Swfdec
     g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
     proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
 
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_text,
-	swfdec_edit_text_movie_get_text, swfdec_edit_text_movie_do_set_text);
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
-	swfdec_edit_text_movie_get_htmlText,
-	swfdec_edit_text_movie_set_htmlText);
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_html,
-	swfdec_edit_text_movie_get_html, swfdec_edit_text_movie_set_html);
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
-	swfdec_edit_text_movie_get_condenseWhite,
-	swfdec_edit_text_movie_set_condenseWhite);
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
-	swfdec_edit_text_movie_get_embedFonts,
-	swfdec_edit_text_movie_set_embedFonts);
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_length,
-	swfdec_edit_text_movie_get_length, NULL);
-    swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
-	swfdec_edit_text_movie_get_textColor,
-	swfdec_edit_text_movie_set_textColor);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
+	swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
+	swfdec_text_field_movie_get_htmlText,
+	swfdec_text_field_movie_set_htmlText);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
+	swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
+	swfdec_text_field_movie_get_condenseWhite,
+	swfdec_text_field_movie_set_condenseWhite);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
+	swfdec_text_field_movie_get_embedFonts,
+	swfdec_text_field_movie_set_embedFonts);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
+	swfdec_text_field_movie_get_length, NULL);
+    swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
+	swfdec_text_field_movie_get_textColor,
+	swfdec_text_field_movie_set_textColor);
 
     SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
   }
diff --git a/libswfdec/swfdec_graphic_movie.c b/libswfdec/swfdec_graphic_movie.c
index 9552ee3..a4a86fa 100644
--- a/libswfdec/swfdec_graphic_movie.c
+++ b/libswfdec/swfdec_graphic_movie.c
@@ -63,7 +63,7 @@ swfdec_graphic_movie_replace (SwfdecMovi
     /* nothing to do here, please move along */
   } else if (SWFDEC_IS_SPRITE (graphic) ||
       SWFDEC_IS_BUTTON (graphic) ||
-      SWFDEC_IS_EDIT_TEXT (graphic)) {
+      SWFDEC_IS_TEXT_FIELD (graphic)) {
     SWFDEC_INFO ("can't replace with scriptable objects");
     return;
   } else {
diff --git a/libswfdec/swfdec_html_parser.c b/libswfdec/swfdec_html_parser.c
index 60fb4e4..430eec5 100644
--- a/libswfdec/swfdec_html_parser.c
+++ b/libswfdec/swfdec_html_parser.c
@@ -44,7 +44,7 @@ typedef struct {
 } ParserData;
 
 static const char *
-swfdec_edit_text_movie_html_parse_comment (ParserData *data, const char *p)
+swfdec_text_field_movie_html_parse_comment (ParserData *data, const char *p)
 {
   const char *end;
 
@@ -61,7 +61,7 @@ swfdec_edit_text_movie_html_parse_commen
 }
 
 static void
-swfdec_edit_text_movie_html_tag_set_attribute (ParserTag *tag,
+swfdec_text_field_movie_html_tag_set_attribute (ParserTag *tag,
     const char *name, int name_length, const char *value, int value_length)
 {
   SwfdecAsValue val;
@@ -136,7 +136,7 @@ swfdec_edit_text_movie_html_tag_set_attr
 }
 
 static const char *
-swfdec_edit_text_movie_html_parse_attribute (ParserTag *tag, const char *p)
+swfdec_text_field_movie_html_parse_attribute (ParserTag *tag, const char *p)
 {
   const char *end, *name, *value;
   int name_length, value_length;
@@ -171,7 +171,7 @@ swfdec_edit_text_movie_html_parse_attrib
   value_length = end - (p + 1);
 
   if (tag != NULL) {
-    swfdec_edit_text_movie_html_tag_set_attribute (tag, name, name_length,
+    swfdec_text_field_movie_html_tag_set_attribute (tag, name, name_length,
 	value, value_length);
   }
 
@@ -181,7 +181,7 @@ swfdec_edit_text_movie_html_parse_attrib
 }
 
 static const char *
-swfdec_edit_text_movie_html_parse_tag (ParserData *data, const char *p)
+swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
 {
   ParserTag *tag;
   const char *name, *end;
@@ -283,7 +283,7 @@ swfdec_edit_text_movie_html_parse_tag (P
     // parse attributes
     end = end + strspn (end, " \r\n\t");
     while (*end != '\0' && *end != '>' && (*end != '/' || *(end + 1) != '>')) {
-      end = swfdec_edit_text_movie_html_parse_attribute (tag, end);
+      end = swfdec_text_field_movie_html_parse_attribute (tag, end);
       if (end == NULL)
 	break;
       end = end + strspn (end, " \r\n\t");
@@ -300,7 +300,7 @@ swfdec_edit_text_movie_html_parse_tag (P
 }
 
 static const char *
-swfdec_edit_text_movie_html_parse_text (ParserData *data, const char *p,
+swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p,
     gboolean condense_white)
 {
   const char *end;
@@ -338,12 +338,12 @@ swfdec_edit_text_movie_html_parse_text (
 }
 
 void
-swfdec_edit_text_movie_html_parse (SwfdecEditTextMovie *text, const char *str)
+swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie *text, const char *str)
 {
   ParserData data;
   const char *p;
 
-  g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+  g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
   g_return_if_fail (str != NULL);
 
   data.cx = SWFDEC_AS_OBJECT (text)->context;
@@ -355,12 +355,12 @@ swfdec_edit_text_movie_html_parse (Swfde
   while (p != NULL && *p != '\0') {
     if (*p == '<') {
       if (strncmp (p + 1, "!--", strlen ("!--")) == 0) {
-	p = swfdec_edit_text_movie_html_parse_comment (&data, p);
+	p = swfdec_text_field_movie_html_parse_comment (&data, p);
       } else {
-	p = swfdec_edit_text_movie_html_parse_tag (&data, p);
+	p = swfdec_text_field_movie_html_parse_tag (&data, p);
       }
     } else {
-      p = swfdec_edit_text_movie_html_parse_text (&data, p,
+      p = swfdec_text_field_movie_html_parse_text (&data, p,
 	  text->condense_white);
     }
   }
@@ -391,7 +391,7 @@ swfdec_edit_text_movie_html_parse (Swfde
     ParserTag *tag = (ParserTag *)data.tags_closed->data;
 
     if (tag->index != tag->end_index) {
-      swfdec_edit_text_movie_set_text_format (text, tag->format, tag->index,
+      swfdec_text_field_movie_set_text_format (text, tag->format, tag->index,
 	  tag->end_index);
     }
 
diff --git a/test/dump.c b/test/dump.c
index e0c3c63..adf0cb1 100644
--- a/test/dump.c
+++ b/test/dump.c
@@ -223,7 +223,7 @@ dump_shape (SwfdecShape *shape)
 }
 
 static void
-dump_edit_text (SwfdecEditText *text)
+dump_text_field (SwfdecTextField *text)
 {
   g_print ("  %s\n", text->text_input ? text->text_input : "");
   if (verbose) {
@@ -353,8 +353,8 @@ dump_object (gpointer value, gpointer de
   if (SWFDEC_IS_TEXT (c)) {
     dump_text (SWFDEC_TEXT (c));
   }
-  if (SWFDEC_IS_EDIT_TEXT (c)) {
-    dump_edit_text (SWFDEC_EDIT_TEXT (c));
+  if (SWFDEC_IS_TEXT_FIELD (c)) {
+    dump_text_field (SWFDEC_TEXT_FIELD (c));
   }
   if (SWFDEC_IS_FONT (c)) {
     dump_font (SWFDEC_FONT (c));
diff-tree ef5288e48b9b4cd61e44429dbf5db01598e9d066 (from parents)
Merge: ca558329498eba55d3b8b9f97d9714a1d33636a9 0dda3049b019a5a04045f6bdc36e80cd407b5f19
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 11:13:15 2007 +0300

    Merge branch 'master' into textfield

diff-tree ca558329498eba55d3b8b9f97d9714a1d33636a9 (from 35f353b7f4ae6c7a69aa307832eb6ef164468207)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 10:51:51 2007 +0300

    Add my name to bunch of edittext files' copyright headers

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 7950cfc..8ad6de7 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -1,5 +1,6 @@
 /* Swfdec
  * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ *                    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
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 1d8f7e5..f7c6e22 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -1,5 +1,6 @@
 /* Swfdec
  * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ *                    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
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 48f981e..4f68687 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -1,5 +1,6 @@
 /* Swfdec
  * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ *                    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
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
index 9f0b6a9..103942b 100644
--- a/libswfdec/swfdec_edittext_movie.h
+++ b/libswfdec/swfdec_edittext_movie.h
@@ -1,5 +1,6 @@
 /* Swfdec
  * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ *                    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
diff --git a/libswfdec/swfdec_edittext_movie_as.c b/libswfdec/swfdec_edittext_movie_as.c
index 6fdafeb..bb58e9b 100644
--- a/libswfdec/swfdec_edittext_movie_as.c
+++ b/libswfdec/swfdec_edittext_movie_as.c
@@ -1,5 +1,6 @@
 /* Swfdec
  * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ *                    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
diff-tree 35f353b7f4ae6c7a69aa307832eb6ef164468207 (from 4046fdb9a8b482579848e9ce282667fe89025298)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 10:42:36 2007 +0300

    Add copyright header to swfdec_html_parser.c and remove an extra include

diff --git a/libswfdec/swfdec_html_parser.c b/libswfdec/swfdec_html_parser.c
index 3bfb688..60fb4e4 100644
--- a/libswfdec/swfdec_html_parser.c
+++ b/libswfdec/swfdec_html_parser.c
@@ -1,3 +1,22 @@
+/* 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
@@ -7,7 +26,6 @@
 
 #include "swfdec_edittext_movie.h"
 #include "swfdec_as_strings.h"
-#include "swfdec_font.h"
 #include "swfdec_debug.h"
 
 typedef struct {
diff-tree 4046fdb9a8b482579848e9ce282667fe89025298 (from 06751dc79e85534b6d8dd5f9316e149bf63ca203)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 10:33:42 2007 +0300

    Mark garbage collected variables in EditTextMovie

diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 8e4c2f0..48f981e 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -373,7 +373,7 @@ static void
 swfdec_edit_text_movie_dispose (GObject *object)
 {
   SwfdecEditTextMovie *text;
-  GList *iter;
+  GSList *iter;
 
   text = SWFDEC_EDIT_TEXT_MOVIE (object);
 
@@ -389,6 +389,29 @@ swfdec_edit_text_movie_dispose (GObject 
 }
 
 static void
+swfdec_edit_text_movie_mark (SwfdecAsObject *object)
+{
+  SwfdecEditTextMovie *text;
+  GSList *iter;
+
+  text = SWFDEC_EDIT_TEXT_MOVIE (object);
+
+  swfdec_as_string_mark (text->text_input);
+  swfdec_as_string_mark (text->text_display);
+  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 (SWFDEC_AS_OBJECT (text->style_sheet));
+
+  SWFDEC_AS_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->mark (object);
+}
+
+static void
 swfdec_edit_text_movie_iterate (SwfdecMovie *movie)
 {
   SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
@@ -470,10 +493,13 @@ static void
 swfdec_edit_text_movie_class_init (SwfdecEditTextMovieClass * 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_edit_text_movie_dispose;
 
+  asobject_class->mark = swfdec_edit_text_movie_mark;
+
   movie_class->init_movie = swfdec_edit_text_movie_init_movie;
   movie_class->update_extents = swfdec_edit_text_movie_update_extents;
   movie_class->render = swfdec_edit_text_movie_render;
diff-tree 06751dc79e85534b6d8dd5f9316e149bf63ca203 (from 17d7b4d7dd4685ec24d441ff07d31a22299916e3)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 10:24:14 2007 +0300

    Free memory in SwfdecEdittextMovie

diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 6276167..8e4c2f0 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -339,13 +339,22 @@ swfdec_edit_text_movie_render (SwfdecMov
 static void
 swfdec_edit_text_movie_free_paragraphs (SwfdecEditTextMovie *text)
 {
+  GList *iter;
   int i;
 
   if (text->paragraphs) {
-    for (i = 0; text->paragraphs[i].text != NULL; i++) {
-      // FIXME
-      /*if (text->paragraphs[i].tab_stops != NULL)
-	pango_tab_array_free (text->paragraphs[i].tab_stops);*/
+    for (i = 0; text->paragraphs[i].text != NULL; i++)
+    {
+      for (iter = text->paragraphs[i].blocks; iter != NULL; iter = iter->next) {
+	pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
+      }
+      g_list_free (text->paragraphs[i].blocks);
+
+      for (iter = text->paragraphs[i].attrs; iter != NULL; iter = iter->next) {
+	pango_attribute_destroy ((PangoAttribute *)(iter->data));
+      }
+      g_list_free (text->paragraphs[i].attrs);
+
       if (text->paragraphs[i].attrs_list != NULL)
 	pango_attr_list_unref (text->paragraphs[i].attrs_list);
     }
@@ -363,10 +372,19 @@ swfdec_edit_text_movie_format_changed (S
 static void
 swfdec_edit_text_movie_dispose (GObject *object)
 {
-  SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (object);
+  SwfdecEditTextMovie *text;
+  GList *iter;
+
+  text = SWFDEC_EDIT_TEXT_MOVIE (object);
 
   swfdec_edit_text_movie_free_paragraphs (text);
 
+  for (iter = text->formats; iter != NULL; iter = iter->next) {
+    g_free (text->formats->data);
+    text->formats->data = NULL;
+  }
+  g_slist_free (text->formats);
+
   G_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->dispose (object);
 }
 
diff-tree 17d7b4d7dd4685ec24d441ff07d31a22299916e3 (from parents)
Merge: 5bd4a248279cf4d905d39d66b985477939ad7859 d5d06f45e7c5a64725dd1c6fe061ff1e0fd15110
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 09:58:25 2007 +0300

    Merge branch 'master' into textfield
    
    Conflicts:
    
    	libswfdec/swfdec_initialize.h

diff --cc libswfdec/swfdec_initialize.h
index 7970384,6420e24..0921de8
@@@ -74,473 -74,454 +74,473 @@@
    0x6E, 0x64, 0x53, 0x74,  0x6F, 0x70, 0x00, 0x64,  0x75, 0x70, 0x6C, 0x69,  0x63, 0x61, 0x74, 0x65,
    0x4D, 0x6F, 0x76, 0x69,  0x65, 0x43, 0x6C, 0x69,  0x70, 0x00, 0x72, 0x65,  0x6D, 0x6F, 0x76, 0x65,
    0x4D, 0x6F, 0x76, 0x69,  0x65, 0x43, 0x6C, 0x69,  0x70, 0x00, 0x73, 0x74,  0x61, 0x72, 0x74, 0x44,
 -  0x72, 0x61, 0x67, 0x00,  0x73, 0x74, 0x6F, 0x70,  0x44, 0x72, 0x61, 0x67,  0x00, 0x36, 0x63, 0x72,
 -  0x65, 0x61, 0x74, 0x65,  0x45, 0x6D, 0x70, 0x74,  0x79, 0x4D, 0x6F, 0x76,  0x69, 0x65, 0x43, 0x6C,
 -  0x69, 0x70, 0x2C, 0x36,  0x62, 0x65, 0x67, 0x69,  0x6E, 0x46, 0x69, 0x6C,  0x6C, 0x2C, 0x36, 0x62,
 -  0x65, 0x67, 0x69, 0x6E,  0x47, 0x72, 0x61, 0x64,  0x69, 0x65, 0x6E, 0x74,  0x46, 0x69, 0x6C, 0x6C,
 -  0x2C, 0x36, 0x6D, 0x6F,  0x76, 0x65, 0x54, 0x6F,  0x2C, 0x36, 0x6C, 0x69,  0x6E, 0x65, 0x54, 0x6F,
 -  0x2C, 0x36, 0x63, 0x75,  0x72, 0x76, 0x65, 0x54,  0x6F, 0x2C, 0x36, 0x6C,  0x69, 0x6E, 0x65, 0x53,
 -  0x74, 0x79, 0x6C, 0x65,  0x2C, 0x36, 0x65, 0x6E,  0x64, 0x46, 0x69, 0x6C,  0x6C, 0x2C, 0x36, 0x63,
 -  0x6C, 0x65, 0x61, 0x72,  0x00, 0x54, 0x65, 0x78,  0x74, 0x46, 0x69, 0x65,  0x6C, 0x64, 0x00, 0x54,
 -  0x65, 0x78, 0x74, 0x46,  0x6F, 0x72, 0x6D, 0x61,  0x74, 0x00, 0x53, 0x74,  0x79, 0x6C, 0x65, 0x53,
 -  0x68, 0x65, 0x65, 0x74,  0x00, 0x5F, 0x63, 0x6F,  0x70, 0x79, 0x00, 0x6F,  0x62, 0x6A, 0x65, 0x63,
 -  0x74, 0x00, 0x6F, 0x5F,  0x6E, 0x65, 0x77, 0x00,  0x70, 0x72, 0x6F, 0x70,  0x00, 0x63, 0x6C, 0x65,
 -  0x61, 0x72, 0x00, 0x5F,  0x63, 0x73, 0x73, 0x00,  0x5F, 0x73, 0x74, 0x79,  0x6C, 0x65, 0x73, 0x00,
 -  0x67, 0x65, 0x74, 0x53,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x6E, 0x61, 0x6D,  0x65, 0x00, 0x73, 0x65,
 -  0x74, 0x53, 0x74, 0x79,  0x6C, 0x65, 0x00, 0x73,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x64, 0x6F, 0x54,
 -  0x72, 0x61, 0x6E, 0x73,  0x66, 0x6F, 0x72, 0x6D,  0x00, 0x67, 0x65, 0x74,  0x53, 0x74, 0x79, 0x6C,
 -  0x65, 0x4E, 0x61, 0x6D,  0x65, 0x73, 0x00, 0x74,  0x6D, 0x70, 0x00, 0x6E,  0x61, 0x6D, 0x65, 0x73,
 -  0x00, 0x74, 0x72, 0x61,  0x6E, 0x73, 0x66, 0x6F,  0x72, 0x6D, 0x00, 0x66,  0x6F, 0x72, 0x6D, 0x61,
 -  0x74, 0x00, 0x74, 0x65,  0x78, 0x74, 0x41, 0x6C,  0x69, 0x67, 0x6E, 0x00,  0x61, 0x6C, 0x69, 0x67,
 -  0x6E, 0x00, 0x66, 0x6F,  0x6E, 0x74, 0x57, 0x65,  0x69, 0x67, 0x68, 0x74,  0x00, 0x62, 0x6F, 0x6C,
 -  0x64, 0x00, 0x6E, 0x6F,  0x72, 0x6D, 0x61, 0x6C,  0x00, 0x63, 0x6F, 0x6C,  0x6F, 0x72, 0x00, 0x70,
 -  0x61, 0x72, 0x73, 0x65,  0x43, 0x6F, 0x6C, 0x6F,  0x72, 0x00, 0x64, 0x69,  0x73, 0x70, 0x6C, 0x61,
 -  0x79, 0x00, 0x66, 0x6F,  0x6E, 0x74, 0x46, 0x61,  0x6D, 0x69, 0x6C, 0x79,  0x00, 0x66, 0x6F, 0x6E,
 -  0x74, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x43,  0x53, 0x53, 0x46, 0x6F,  0x6E, 0x74, 0x46, 0x61,
 -  0x6D, 0x69, 0x6C, 0x79,  0x00, 0x74, 0x65, 0x78,  0x74, 0x49, 0x6E, 0x64,  0x65, 0x6E, 0x74, 0x00,
 -  0x69, 0x6E, 0x64, 0x65,  0x6E, 0x74, 0x00, 0x70,  0x61, 0x72, 0x73, 0x65,  0x49, 0x6E, 0x74, 0x00,
 -  0x66, 0x6F, 0x6E, 0x74,  0x53, 0x74, 0x79, 0x6C,  0x65, 0x00, 0x69, 0x74,  0x61, 0x6C, 0x69, 0x63,
 -  0x00, 0x6B, 0x65, 0x72,  0x6E, 0x69, 0x6E, 0x67,  0x00, 0x74, 0x72, 0x75,  0x65, 0x00, 0x66, 0x61,
 -  0x6C, 0x73, 0x65, 0x00,  0x6C, 0x65, 0x61, 0x64,  0x69, 0x6E, 0x67, 0x00,  0x6D, 0x61, 0x72, 0x67,
 -  0x69, 0x6E, 0x4C, 0x65,  0x66, 0x74, 0x00, 0x6C,  0x65, 0x66, 0x74, 0x4D,  0x61, 0x72, 0x67, 0x69,
 -  0x6E, 0x00, 0x6C, 0x65,  0x74, 0x74, 0x65, 0x72,  0x53, 0x70, 0x61, 0x63,  0x69, 0x6E, 0x67, 0x00,
 -  0x6D, 0x61, 0x72, 0x67,  0x69, 0x6E, 0x52, 0x69,  0x67, 0x68, 0x74, 0x00,  0x72, 0x69, 0x67, 0x68,
 -  0x74, 0x4D, 0x61, 0x72,  0x67, 0x69, 0x6E, 0x00,  0x66, 0x6F, 0x6E, 0x74,  0x53, 0x69, 0x7A, 0x65,
 -  0x00, 0x73, 0x69, 0x7A,  0x65, 0x00, 0x74, 0x65,  0x78, 0x74, 0x44, 0x65,  0x63, 0x6F, 0x72, 0x61,
 -  0x74, 0x69, 0x6F, 0x6E,  0x00, 0x75, 0x6E, 0x64,  0x65, 0x72, 0x6C, 0x69,  0x6E, 0x65, 0x00, 0x6E,
 -  0x6F, 0x6E, 0x65, 0x00,  0x70, 0x61, 0x72, 0x73,  0x65, 0x43, 0x53, 0x53,  0x00, 0x63, 0x73, 0x73,
 -  0x00, 0x70, 0x61, 0x72,  0x73, 0x65, 0x43, 0x53,  0x53, 0x49, 0x6E, 0x74,  0x65, 0x72, 0x6E, 0x61,
 -  0x6C, 0x00, 0x72, 0x65,  0x73, 0x75, 0x6C, 0x74,  0x00, 0x6E, 0x75, 0x6C,  0x6C, 0x00, 0x70, 0x61,
 -  0x72, 0x73, 0x65, 0x00,  0x73, 0x65, 0x74, 0x49,  0x6E, 0x74, 0x65, 0x72,  0x76, 0x61, 0x6C, 0x00,
 -  0x63, 0x6C, 0x65, 0x61,  0x72, 0x49, 0x6E, 0x74,  0x65, 0x72, 0x76, 0x61,  0x6C, 0x00, 0x73, 0x65,
 -  0x74, 0x54, 0x69, 0x6D,  0x65, 0x6F, 0x75, 0x74,  0x00, 0x63, 0x6C, 0x65,  0x61, 0x72, 0x54, 0x69,
 -  0x6D, 0x65, 0x6F, 0x75,  0x74, 0x00, 0x9B, 0x12,  0x00, 0x41, 0x73, 0x42,  0x72, 0x6F, 0x61, 0x64,
 -  0x63, 0x61, 0x73, 0x74,  0x65, 0x72, 0x00, 0x00,  0x00, 0x00, 0x00, 0x9B,  0x0D, 0x00, 0x4C, 0x6F,
 -  0x61, 0x64, 0x56, 0x61,  0x72, 0x73, 0x00, 0x00,  0x00, 0x00, 0x00, 0x96,  0x13, 0x00, 0x08, 0x00,
 -  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 -  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x02,  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0x04, 0x00,
 -  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x03,
 -  0x1C, 0x96, 0x13, 0x00,  0x08, 0x04, 0x07, 0x08,  0x00, 0x00, 0x00, 0x07,  0x65, 0x00, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
 -  0x00, 0x02, 0x08, 0x03,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
 -  0x17, 0x96, 0x02, 0x00,  0x08, 0x06, 0x1C, 0x96,  0x13, 0x00, 0x08, 0x07,  0x07, 0x0C, 0x00, 0x00,
 -  0x00, 0x07, 0x65, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
 -  0x02, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x08, 0x9B, 0x07,  0x00, 0x00, 0x01, 0x00,
 -  0x78, 0x00, 0x3C, 0x00,  0x96, 0x02, 0x00, 0x08,  0x0A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 -  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0B, 0x52, 0x17,  0x96, 0x02, 0x00, 0x08,
 -  0x0A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x0C, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x0D,  0x52, 0x17, 0x96, 0x02,  0x00, 0x05, 0x01, 0x3E,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x06, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x0B,  0x9B, 0x07, 0x00, 0x00,
 -  0x01, 0x00, 0x78, 0x00,  0x8F, 0x00, 0x96, 0x04,  0x00, 0x08, 0x0E, 0x08,  0x09, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x0C, 0x4E,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x0F, 0x41, 0x96,  0x07, 0x00, 0x08, 0x0F,
 -  0x07, 0x00, 0x00, 0x00,  0x00, 0x3C, 0x99, 0x02,  0x00, 0x09, 0x00, 0x96,  0x02, 0x00, 0x08, 0x0F,
 -  0x4C, 0x1C, 0x50, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x0F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0E, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x10, 0x4E, 0x48, 0x12,  0x9D, 0x02, 0x00, 0x42,  0x00, 0x96, 0x02, 0x00,
 -  0x08, 0x0E, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x0F,  0x1C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x0A, 0x1C,
 -  0x49, 0x12, 0x9D, 0x02,  0x00, 0x23, 0x00, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
 -  0x0F, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0E,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x11, 0x52, 0x17,  0x96, 0x02, 0x00, 0x05,  0x01, 0x3E, 0x99, 0x02,  0x00, 0x9C, 0xFF, 0x96,
 -  0x02, 0x00, 0x05, 0x00,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x06, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x12, 0x9B, 0x07, 0x00,  0x00, 0x01, 0x00, 0x6F,  0x00, 0x73, 0x00, 0x96,  0x02, 0x00, 0x08, 0x13,
 -  0x1C, 0x96, 0x13, 0x00,  0x08, 0x07, 0x07, 0x0C,  0x00, 0x00, 0x00, 0x07,  0x65, 0x00, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,
 -  0x04, 0x00, 0x08, 0x08,  0x08, 0x06, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x08,  0x4E, 0x4F, 0x96, 0x02,
 -  0x00, 0x08, 0x13, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x0B, 0x08, 0x06, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x0B, 0x4E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x13,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x0C, 0x07, 0x00,
 -  0x00, 0x00, 0x00, 0x42,  0x4F, 0x96, 0x09, 0x00,  0x07, 0x83, 0x00, 0x00,  0x00, 0x08, 0x14, 0x08,
 -  0x13, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x4F, 0x96,
 -  0x08, 0x00, 0x07, 0x83,  0x00, 0x00, 0x00, 0x02,  0x08, 0x06, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,
 -  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,  0x8C, 0x00, 0x08, 0x15,  0x08, 0x16, 0x07, 0x12,
 -  0x00, 0x00, 0x00, 0x08,  0x17, 0x07, 0x08, 0x00,  0x00, 0x00, 0x08, 0x18,  0x07, 0x14, 0x00, 0x00,
 -  0x00, 0x08, 0x19, 0x07,  0x11, 0x00, 0x00, 0x00,  0x08, 0x1A, 0x07, 0x2E,  0x00, 0x00, 0x00, 0x08,
 -  0x1B, 0x07, 0x28, 0x00,  0x00, 0x00, 0x08, 0x1C,  0x07, 0x23, 0x00, 0x00,  0x00, 0x08, 0x1D, 0x07,
 -  0x0D, 0x00, 0x00, 0x00,  0x08, 0x1E, 0x07, 0x1B,  0x00, 0x00, 0x00, 0x08,  0x1F, 0x07, 0x24, 0x00,
 -  0x00, 0x00, 0x08, 0x20,  0x07, 0x2D, 0x00, 0x00,  0x00, 0x08, 0x21, 0x07,  0x25, 0x00, 0x00, 0x00,
 -  0x08, 0x22, 0x07, 0x22,  0x00, 0x00, 0x00, 0x08,  0x23, 0x07, 0x21, 0x00,  0x00, 0x00, 0x08, 0x24,
 -  0x07, 0x27, 0x00, 0x00,  0x00, 0x08, 0x25, 0x07,  0x10, 0x00, 0x00, 0x00,  0x08, 0x26, 0x07, 0x20,
 -  0x00, 0x00, 0x00, 0x08,  0x27, 0x07, 0x09, 0x00,  0x00, 0x00, 0x08, 0x28,  0x07, 0x26, 0x00, 0x00,
 -  0x00, 0x07, 0x13, 0x00,  0x00, 0x00, 0x43, 0x1D,  0x96, 0x09, 0x00, 0x08,  0x29, 0x07, 0x20, 0x03,
 -  0x00, 0x00, 0x08, 0x15,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
 -  0x17, 0x96, 0x02, 0x00,  0x08, 0x15, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
 -  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x12, 0x52,  0x17, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
 -  0x00, 0x02, 0x08, 0x15,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
 -  0x17, 0x96, 0x07, 0x00,  0x08, 0x2A, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x02, 0x00,
 -  0x08, 0x2A, 0x1C, 0x96,  0x13, 0x00, 0x08, 0x2B,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x05, 0x00,
 -  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2A,
 -  0x1C, 0x96, 0x13, 0x00,  0x08, 0x2C, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,  0x05, 0x00, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x2A, 0x1C, 0x96,
 -  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x12, 0x52,
 -  0x17, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,  0x00, 0x02, 0x08, 0x2A,  0x1C, 0x96, 0x07, 0x00,
 -  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x07, 0x00,  0x08, 0x2D, 0x07, 0x00,
 -  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x02, 0x00,  0x08, 0x2D, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,
 -  0x00, 0x00, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x12, 0x52,  0x17, 0x96, 0x0E, 0x00,
 -  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x2E, 0x07,  0x9A, 0x02, 0x00, 0x00,  0x08, 0x2D, 0x1C, 0x96,
 -  0x07, 0x00, 0x07, 0x04,  0x00, 0x00, 0x00, 0x08,  0x02, 0x3D, 0x17, 0x96,  0x02, 0x00, 0x08, 0x2F,
 -  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x04, 0x00, 0x08, 0x31,  0x08, 0x32, 0x4F, 0x96,
 -  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x33,
 -  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 -  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 -  0x13, 0x00, 0x08, 0x34,  0x07, 0x03, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,
 -  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x35,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x2F, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,
 -  0x08, 0x36, 0x9B, 0x09,  0x00, 0x00, 0x01, 0x00,  0x73, 0x72, 0x63, 0x00,  0x64, 0x00, 0x96, 0x02,
 -  0x00, 0x08, 0x09, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x37, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x38, 0x1C, 0x96, 0x01,  0x00, 0x02, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x19,  0x00, 0x96, 0x09, 0x00,
 -  0x05, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x35, 0x52,
 -  0x17, 0x99, 0x02, 0x00,  0x2C, 0x00, 0x96, 0x02,  0x00, 0x08, 0x38, 0x1C,  0x96, 0x07, 0x00, 0x07,
 -  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x34,  0x52, 0x17, 0x96, 0x09,
 -  0x00, 0x05, 0x01, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x35,
 -  0x52, 0x17, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 -  0x02, 0x00, 0x08, 0x39,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0xB3, 0x00,  0x96, 0x03, 0x00, 0x08,
 -  0x3A, 0x02, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x46, 0x87, 0x01, 0x00,  0x00, 0x96, 0x01, 0x00,
 -  0x02, 0x49, 0x9D, 0x02,  0x00, 0x91, 0x00, 0x96,  0x04, 0x00, 0x08, 0x0A,  0x04, 0x00, 0x3C, 0x96,
 -  0x02, 0x00, 0x08, 0x3A,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x9D, 0x02,  0x00, 0x41, 0x00, 0x96,
 -  0x02, 0x00, 0x08, 0x3A,  0x4C, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x3D, 0x08,  0x0A, 0x1C, 0x96, 0x07,
 -  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x3B,  0x3D, 0x47, 0x96, 0x02,  0x00, 0x08, 0x3C, 0x47,
 -  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0A, 0x1C,  0x4E, 0x96, 0x07, 0x00,
 -  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x3B, 0x3D,  0x47, 0x47, 0x1D, 0x99,  0x02, 0x00, 0x33, 0x00,
 -  0x96, 0x04, 0x00, 0x08,  0x3A, 0x08, 0x0A, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
 -  0x08, 0x3B, 0x3D, 0x96,  0x02, 0x00, 0x08, 0x3C,  0x47, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x0A,  0x1C, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x3B,
 -  0x3D, 0x47, 0x1D, 0x99,  0x02, 0x00, 0x61, 0xFF,  0x96, 0x02, 0x00, 0x08,  0x3A, 0x1C, 0x3E, 0x4F,
 -  0x96, 0x02, 0x00, 0x08,  0x2F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
 -  0x3E, 0x9B, 0x05, 0x00,  0x00, 0x00, 0x00, 0x0D,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x3F,  0x4E, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x40,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x0D, 0x00,
 -  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x41, 0x4E,  0x3E, 0x4F, 0x96, 0x08,
 -  0x00, 0x07, 0x83, 0x00,  0x00, 0x00, 0x02, 0x08,  0x2F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 -  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,
 -  0x42, 0x07, 0x10, 0x00,  0x00, 0x00, 0x07, 0xF4,  0x01, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
 -  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x0E, 0x00, 0x07,  0x06, 0x00, 0x00, 0x00,  0x08, 0x44, 0x07, 0xF4,
 -  0x01, 0x00, 0x00, 0x08,  0x42, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,
 -  0x04, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0x45, 0x07, 0x00, 0x00,
 -  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,
 -  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
 -  0x46, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
 -  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 -  0x96, 0x13, 0x00, 0x08,  0x47, 0x07, 0x02, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
 -  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x48, 0x07, 0x03, 0x00,  0x00, 0x00, 0x07, 0xFD,
 -  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x49, 0x07, 0x04, 0x00,
 -  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
 -  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
 -  0x4A, 0x07, 0x05, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
 -  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 -  0x96, 0x13, 0x00, 0x08,  0x39, 0x07, 0x06, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
 -  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x45, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x4B, 0x07, 0x07, 0x00,  0x00, 0x00, 0x07, 0xFD,
 +  0x72, 0x61, 0x67, 0x00,  0x73, 0x74, 0x6F, 0x70,  0x44, 0x72, 0x61, 0x67,  0x00, 0x63, 0x72, 0x65,
 +  0x61, 0x74, 0x65, 0x45,  0x6D, 0x70, 0x74, 0x79,  0x4D, 0x6F, 0x76, 0x69,  0x65, 0x43, 0x6C, 0x69,
 +  0x70, 0x00, 0x63, 0x72,  0x65, 0x61, 0x74, 0x65,  0x54, 0x65, 0x78, 0x74,  0x46, 0x69, 0x65, 0x6C,
 +  0x64, 0x00, 0x67, 0x65,  0x74, 0x44, 0x65, 0x70,  0x74, 0x68, 0x2C, 0x63,  0x72, 0x65, 0x61, 0x74,
 +  0x65, 0x45, 0x6D, 0x70,  0x74, 0x79, 0x4D, 0x6F,  0x76, 0x69, 0x65, 0x43,  0x6C, 0x69, 0x70, 0x00,
 +  0x36, 0x63, 0x72, 0x65,  0x61, 0x74, 0x65, 0x45,  0x6D, 0x70, 0x74, 0x79,  0x4D, 0x6F, 0x76, 0x69,
 +  0x65, 0x43, 0x6C, 0x69,  0x70, 0x2C, 0x36, 0x62,  0x65, 0x67, 0x69, 0x6E,  0x46, 0x69, 0x6C, 0x6C,
 +  0x2C, 0x36, 0x62, 0x65,  0x67, 0x69, 0x6E, 0x47,  0x72, 0x61, 0x64, 0x69,  0x65, 0x6E, 0x74, 0x46,
 +  0x69, 0x6C, 0x6C, 0x2C,  0x36, 0x6D, 0x6F, 0x76,  0x65, 0x54, 0x6F, 0x2C,  0x36, 0x6C, 0x69, 0x6E,
 +  0x65, 0x54, 0x6F, 0x2C,  0x36, 0x63, 0x75, 0x72,  0x76, 0x65, 0x54, 0x6F,  0x2C, 0x36, 0x6C, 0x69,
 +  0x6E, 0x65, 0x53, 0x74,  0x79, 0x6C, 0x65, 0x2C,  0x36, 0x65, 0x6E, 0x64,  0x46, 0x69, 0x6C, 0x6C,
 +  0x2C, 0x36, 0x63, 0x6C,  0x65, 0x61, 0x72, 0x00,  0x54, 0x65, 0x78, 0x74,  0x46, 0x69, 0x65, 0x6C,
 +  0x64, 0x00, 0x73, 0x65,  0x74, 0x54, 0x65, 0x78,  0x74, 0x46, 0x6F, 0x72,  0x6D, 0x61, 0x74, 0x00,
 +  0x67, 0x65, 0x74, 0x4E,  0x65, 0x77, 0x54, 0x65,  0x78, 0x74, 0x46, 0x6F,  0x72, 0x6D, 0x61, 0x74,
 +  0x00, 0x73, 0x65, 0x74,  0x4E, 0x65, 0x77, 0x54,  0x65, 0x78, 0x74, 0x46,  0x6F, 0x72, 0x6D, 0x61,
 +  0x74, 0x00, 0x54, 0x65,  0x78, 0x74, 0x46, 0x6F,  0x72, 0x6D, 0x61, 0x74,  0x00, 0x53, 0x74, 0x79,
 +  0x6C, 0x65, 0x53, 0x68,  0x65, 0x65, 0x74, 0x00,  0x5F, 0x63, 0x6F, 0x70,  0x79, 0x00, 0x6F, 0x62,
 +  0x6A, 0x65, 0x63, 0x74,  0x00, 0x6F, 0x5F, 0x6E,  0x65, 0x77, 0x00, 0x70,  0x72, 0x6F, 0x70, 0x00,
 +  0x63, 0x6C, 0x65, 0x61,  0x72, 0x00, 0x5F, 0x63,  0x73, 0x73, 0x00, 0x5F,  0x73, 0x74, 0x79, 0x6C,
 +  0x65, 0x73, 0x00, 0x67,  0x65, 0x74, 0x53, 0x74,  0x79, 0x6C, 0x65, 0x00,  0x6E, 0x61, 0x6D, 0x65,
 +  0x00, 0x73, 0x65, 0x74,  0x53, 0x74, 0x79, 0x6C,  0x65, 0x00, 0x73, 0x74,  0x79, 0x6C, 0x65, 0x00,
 +  0x64, 0x6F, 0x54, 0x72,  0x61, 0x6E, 0x73, 0x66,  0x6F, 0x72, 0x6D, 0x00,  0x67, 0x65, 0x74, 0x53,
 +  0x74, 0x79, 0x6C, 0x65,  0x4E, 0x61, 0x6D, 0x65,  0x73, 0x00, 0x74, 0x6D,  0x70, 0x00, 0x6E, 0x61,
 +  0x6D, 0x65, 0x73, 0x00,  0x74, 0x72, 0x61, 0x6E,  0x73, 0x66, 0x6F, 0x72,  0x6D, 0x00, 0x66, 0x6F,
 +  0x72, 0x6D, 0x61, 0x74,  0x00, 0x74, 0x65, 0x78,  0x74, 0x41, 0x6C, 0x69,  0x67, 0x6E, 0x00, 0x61,
 +  0x6C, 0x69, 0x67, 0x6E,  0x00, 0x66, 0x6F, 0x6E,  0x74, 0x57, 0x65, 0x69,  0x67, 0x68, 0x74, 0x00,
 +  0x62, 0x6F, 0x6C, 0x64,  0x00, 0x6E, 0x6F, 0x72,  0x6D, 0x61, 0x6C, 0x00,  0x63, 0x6F, 0x6C, 0x6F,
 +  0x72, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x43,  0x6F, 0x6C, 0x6F, 0x72,  0x00, 0x64, 0x69, 0x73,
 +  0x70, 0x6C, 0x61, 0x79,  0x00, 0x66, 0x6F, 0x6E,  0x74, 0x46, 0x61, 0x6D,  0x69, 0x6C, 0x79, 0x00,
 +  0x66, 0x6F, 0x6E, 0x74,  0x00, 0x70, 0x61, 0x72,  0x73, 0x65, 0x43, 0x53,  0x53, 0x46, 0x6F, 0x6E,
 +  0x74, 0x46, 0x61, 0x6D,  0x69, 0x6C, 0x79, 0x00,  0x74, 0x65, 0x78, 0x74,  0x49, 0x6E, 0x64, 0x65,
 +  0x6E, 0x74, 0x00, 0x69,  0x6E, 0x64, 0x65, 0x6E,  0x74, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x49,
 +  0x6E, 0x74, 0x00, 0x66,  0x6F, 0x6E, 0x74, 0x53,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x69, 0x74, 0x61,
 +  0x6C, 0x69, 0x63, 0x00,  0x6B, 0x65, 0x72, 0x6E,  0x69, 0x6E, 0x67, 0x00,  0x74, 0x72, 0x75, 0x65,
 +  0x00, 0x66, 0x61, 0x6C,  0x73, 0x65, 0x00, 0x6C,  0x65, 0x61, 0x64, 0x69,  0x6E, 0x67, 0x00, 0x6D,
 +  0x61, 0x72, 0x67, 0x69,  0x6E, 0x4C, 0x65, 0x66,  0x74, 0x00, 0x6C, 0x65,  0x66, 0x74, 0x4D, 0x61,
 +  0x72, 0x67, 0x69, 0x6E,  0x00, 0x6C, 0x65, 0x74,  0x74, 0x65, 0x72, 0x53,  0x70, 0x61, 0x63, 0x69,
 +  0x6E, 0x67, 0x00, 0x6D,  0x61, 0x72, 0x67, 0x69,  0x6E, 0x52, 0x69, 0x67,  0x68, 0x74, 0x00, 0x72,
 +  0x69, 0x67, 0x68, 0x74,  0x4D, 0x61, 0x72, 0x67,  0x69, 0x6E, 0x00, 0x66,  0x6F, 0x6E, 0x74, 0x53,
 +  0x69, 0x7A, 0x65, 0x00,  0x73, 0x69, 0x7A, 0x65,  0x00, 0x74, 0x65, 0x78,  0x74, 0x44, 0x65, 0x63,
 +  0x6F, 0x72, 0x61, 0x74,  0x69, 0x6F, 0x6E, 0x00,  0x75, 0x6E, 0x64, 0x65,  0x72, 0x6C, 0x69, 0x6E,
 +  0x65, 0x00, 0x6E, 0x6F,  0x6E, 0x65, 0x00, 0x70,  0x61, 0x72, 0x73, 0x65,  0x43, 0x53, 0x53, 0x00,
 +  0x63, 0x73, 0x73, 0x00,  0x70, 0x61, 0x72, 0x73,  0x65, 0x43, 0x53, 0x53,  0x49, 0x6E, 0x74, 0x65,
 +  0x72, 0x6E, 0x61, 0x6C,  0x00, 0x72, 0x65, 0x73,  0x75, 0x6C, 0x74, 0x00,  0x6E, 0x75, 0x6C, 0x6C,
 +  0x00, 0x70, 0x61, 0x72,  0x73, 0x65, 0x00, 0x73,  0x65, 0x74, 0x49, 0x6E,  0x74, 0x65, 0x72, 0x76,
 +  0x61, 0x6C, 0x00, 0x63,  0x6C, 0x65, 0x61, 0x72,  0x49, 0x6E, 0x74, 0x65,  0x72, 0x76, 0x61, 0x6C,
 +  0x00, 0x73, 0x65, 0x74,  0x54, 0x69, 0x6D, 0x65,  0x6F, 0x75, 0x74, 0x00,  0x63, 0x6C, 0x65, 0x61,
 +  0x72, 0x54, 0x69, 0x6D,  0x65, 0x6F, 0x75, 0x74,  0x00, 0x9B, 0x12, 0x00,  0x41, 0x73, 0x42, 0x72,
 +  0x6F, 0x61, 0x64, 0x63,  0x61, 0x73, 0x74, 0x65,  0x72, 0x00, 0x00, 0x00,  0x00, 0x00, 0x9B, 0x0D,
 +  0x00, 0x4C, 0x6F, 0x61,  0x64, 0x56, 0x61, 0x72,  0x73, 0x00, 0x00, 0x00,  0x00, 0x00, 0x96, 0x13,
 +  0x00, 0x08, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
 +  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x13,  0x00, 0x08, 0x02, 0x07,  0x01, 0x00, 0x00, 0x00,
 +  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x02,
 +  0x00, 0x08, 0x03, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x04, 0x07, 0x08, 0x00,  0x00, 0x00, 0x07, 0x65,
 +  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x08, 0x00, 0x07,
 +  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x03, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
 +  0x08, 0x05, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x07, 0x07,
 +  0x0C, 0x00, 0x00, 0x00,  0x07, 0x65, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
 +  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x06, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x08, 0x9B, 0x07, 0x00,
 +  0x00, 0x01, 0x00, 0x78,  0x00, 0x3C, 0x00, 0x96,  0x02, 0x00, 0x08, 0x0A,  0x1C, 0x96, 0x07, 0x00,
 +  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x0B, 0x52, 0x17, 0x96,
 +  0x02, 0x00, 0x08, 0x0A,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
 +  0x96, 0x02, 0x00, 0x08,  0x0C, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x0D, 0x52,  0x17, 0x96, 0x02, 0x00,
 +  0x05, 0x01, 0x3E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0B, 0x9B,
 +  0x07, 0x00, 0x00, 0x01,  0x00, 0x78, 0x00, 0x8F,  0x00, 0x96, 0x04, 0x00,  0x08, 0x0E, 0x08, 0x09,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0C, 0x4E, 0x3C,  0x96, 0x02, 0x00, 0x08,  0x0F, 0x41, 0x96, 0x07,
 +  0x00, 0x08, 0x0F, 0x07,  0x00, 0x00, 0x00, 0x00,  0x3C, 0x99, 0x02, 0x00,  0x09, 0x00, 0x96, 0x02,
 +  0x00, 0x08, 0x0F, 0x4C,  0x1C, 0x50, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x0F,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x0E, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x10,  0x4E, 0x48, 0x12, 0x9D,  0x02, 0x00, 0x42, 0x00,
 +  0x96, 0x02, 0x00, 0x08,  0x0E, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0F, 0x1C,  0x4E, 0x96, 0x02, 0x00,
 +  0x08, 0x0A, 0x1C, 0x49,  0x12, 0x9D, 0x02, 0x00,  0x23, 0x00, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 +  0x00, 0x00, 0x08, 0x0F,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x0E, 0x1C,
 +  0x96, 0x02, 0x00, 0x08,  0x11, 0x52, 0x17, 0x96,  0x02, 0x00, 0x05, 0x01,  0x3E, 0x99, 0x02, 0x00,
 +  0x9C, 0xFF, 0x96, 0x02,  0x00, 0x05, 0x00, 0x3E,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x06, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x12,  0x9B, 0x07, 0x00, 0x00,  0x01, 0x00, 0x6F, 0x00,  0x73, 0x00, 0x96, 0x02,
 +  0x00, 0x08, 0x13, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x07, 0x07, 0x0C, 0x00,  0x00, 0x00, 0x07, 0x65,
    0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x45, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x4C, 0x07, 0x08, 0x00,
 -  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
 -  0x96, 0x13, 0x00, 0x08,  0x4D, 0x07, 0x09, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
 -  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x10,
 -  0x00, 0x08, 0x30, 0x08,  0x4E, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 -  0x45, 0x40, 0x4F, 0x96,  0x09, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x30, 0x08, 0x4D, 0x1C,
 -  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,
 -  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x33, 0x07, 0x00, 0x00,
 -  0x00, 0x00, 0x07, 0x2D,  0x01, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
 -  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
 -  0x4F, 0x07, 0x0A, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
 -  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 -  0x96, 0x13, 0x00, 0x08,  0x50, 0x07, 0x0B, 0x00,  0x00, 0x00, 0x07, 0xFD,  0x00, 0x00, 0x00, 0x07,
 -  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x51, 0x07, 0x0C, 0x00,  0x00, 0x00, 0x07, 0xFD,
 +  0x13, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x08, 0x08,  0x06, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x08, 0x4E,
 +  0x4F, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x0B,  0x08, 0x06, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x0B,  0x4E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x13, 0x1C,  0x96, 0x07, 0x00, 0x08,
 +  0x0C, 0x07, 0x00, 0x00,  0x00, 0x00, 0x42, 0x4F,  0x96, 0x09, 0x00, 0x07,  0x83, 0x00, 0x00, 0x00,
 +  0x08, 0x14, 0x08, 0x13,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
 +  0x17, 0x4F, 0x96, 0x08,  0x00, 0x07, 0x83, 0x00,  0x00, 0x00, 0x02, 0x08,  0x06, 0x1C, 0x96, 0x07,
 +  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x96, 0x8C,  0x00, 0x08, 0x15, 0x08,
 +  0x16, 0x07, 0x12, 0x00,  0x00, 0x00, 0x08, 0x17,  0x07, 0x08, 0x00, 0x00,  0x00, 0x08, 0x18, 0x07,
 +  0x14, 0x00, 0x00, 0x00,  0x08, 0x19, 0x07, 0x11,  0x00, 0x00, 0x00, 0x08,  0x1A, 0x07, 0x2E, 0x00,
 +  0x00, 0x00, 0x08, 0x1B,  0x07, 0x28, 0x00, 0x00,  0x00, 0x08, 0x1C, 0x07,  0x23, 0x00, 0x00, 0x00,
 +  0x08, 0x1D, 0x07, 0x0D,  0x00, 0x00, 0x00, 0x08,  0x1E, 0x07, 0x1B, 0x00,  0x00, 0x00, 0x08, 0x1F,
 +  0x07, 0x24, 0x00, 0x00,  0x00, 0x08, 0x20, 0x07,  0x2D, 0x00, 0x00, 0x00,  0x08, 0x21, 0x07, 0x25,
 +  0x00, 0x00, 0x00, 0x08,  0x22, 0x07, 0x22, 0x00,  0x00, 0x00, 0x08, 0x23,  0x07, 0x21, 0x00, 0x00,
 +  0x00, 0x08, 0x24, 0x07,  0x27, 0x00, 0x00, 0x00,  0x08, 0x25, 0x07, 0x10,  0x00, 0x00, 0x00, 0x08,
 +  0x26, 0x07, 0x20, 0x00,  0x00, 0x00, 0x08, 0x27,  0x07, 0x09, 0x00, 0x00,  0x00, 0x08, 0x28, 0x07,
 +  0x26, 0x00, 0x00, 0x00,  0x07, 0x13, 0x00, 0x00,  0x00, 0x43, 0x1D, 0x96,  0x09, 0x00, 0x08, 0x29,
 +  0x07, 0x20, 0x03, 0x00,  0x00, 0x08, 0x15, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
 +  0x08, 0x00, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,  0x15, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 +  0x00, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x12, 0x52, 0x17,  0x96, 0x08, 0x00, 0x07,
 +  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x15, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
 +  0x08, 0x05, 0x3D, 0x17,  0x96, 0x07, 0x00, 0x08,  0x2A, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x1D,
 +  0x96, 0x02, 0x00, 0x08,  0x2A, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x2B, 0x07,  0x00, 0x00, 0x00, 0x00,
 +  0x07, 0x05, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
 +  0x00, 0x08, 0x2A, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x2C, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0x05,
    0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x35, 0x9B, 0x05, 0x00,
 -  0x00, 0x00, 0x00, 0x00,  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x4D, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x36, 0x9B,  0x09, 0x00, 0x00, 0x01,  0x00, 0x73, 0x72, 0x63,
 -  0x00, 0x72, 0x00, 0x96,  0x02, 0x00, 0x08, 0x38,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x12, 0x9D,
 -  0x02, 0x00, 0x27, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x37, 0x05,
 -  0x00, 0x4F, 0x96, 0x09,  0x00, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x35,  0x52, 0x17, 0x99, 0x02,  0x00, 0x3A, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
 -  0x1C, 0x96, 0x04, 0x00,  0x08, 0x37, 0x05, 0x01,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x38, 0x1C, 0x96,
 -  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x51, 0x52,
 +  0x2A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x12, 0x52, 0x17,  0x96, 0x08, 0x00, 0x07,  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x2A, 0x1C,
 +  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x07, 0x00, 0x08,
 +  0x2D, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x2D, 0x1C, 0x96, 0x07,
 +  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x06,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x12, 0x52, 0x17,
 +  0x96, 0x0E, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x2E, 0x07, 0x9A,  0x02, 0x00, 0x00, 0x08,
 +  0x2D, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x02,  0x3D, 0x17, 0x96, 0x02,
 +  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x04,  0x00, 0x08, 0x31, 0x08,
 +  0x32, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
 +  0x00, 0x08, 0x33, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x2D, 0x01, 0x00,  0x00, 0x07, 0x02, 0x00,
 +  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,
 +  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x34, 0x07,  0x03, 0x00, 0x00, 0x00,  0x07, 0x2D, 0x01, 0x00,
 +  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,
 +  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x35, 0x9B,  0x05, 0x00, 0x00, 0x00,
 +  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x2F, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 +  0x96, 0x02, 0x00, 0x08,  0x36, 0x9B, 0x09, 0x00,  0x00, 0x01, 0x00, 0x73,  0x72, 0x63, 0x00, 0x64,
 +  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x37,  0x05, 0x01, 0x4F, 0x96,
 +  0x02, 0x00, 0x08, 0x38,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x12, 0x9D,  0x02, 0x00, 0x19, 0x00,
 +  0x96, 0x09, 0x00, 0x05,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x35, 0x52, 0x17,  0x99, 0x02, 0x00, 0x2C,  0x00, 0x96, 0x02, 0x00,  0x08, 0x38, 0x1C, 0x96,
 +  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x34, 0x52,
    0x17, 0x96, 0x09, 0x00,  0x05, 0x01, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x35, 0x52,  0x17, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x4D, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x3E, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0x0D, 0x00, 0x96,
 -  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x3F, 0x4E, 0x3E,  0x4F, 0x96, 0x02, 0x00,
 -  0x08, 0x4D, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x40, 0x9B, 0x05,
 -  0x00, 0x00, 0x00, 0x00,  0x0D, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x41, 0x4E, 0x3E, 0x4F,  0x96, 0x07, 0x00, 0x08,  0x52, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x1D,
 -  0x96, 0x02, 0x00, 0x08,  0x52, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x53, 0x07,  0x00, 0x00, 0x00, 0x00,
 -  0x43, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x52, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x53, 0x4E, 0x96, 0x13,
 -  0x00, 0x08, 0x54, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x0B, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
 -  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x07,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x08, 0x52,
 -  0x1C, 0x96, 0x02, 0x00,  0x08, 0x53, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x54,  0x52, 0x17, 0x96, 0x02,
 -  0x00, 0x08, 0x52, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x53, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x54, 0x3A,
 -  0x17, 0x96, 0x02, 0x00,  0x08, 0x55, 0x9B, 0x0C,  0x00, 0x00, 0x01, 0x00,  0x74, 0x61, 0x72, 0x67,
 -  0x65, 0x74, 0x00, 0x27,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x56,
 -  0x08, 0x56, 0x1C, 0x4F,  0x96, 0x08, 0x00, 0x07,  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x09, 0x1C,
 -  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x1D, 0x96, 0x09, 0x00,
 -  0x08, 0x57, 0x07, 0xBC,  0x02, 0x00, 0x00, 0x08,  0x55, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 -  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,  0x96, 0x08, 0x00, 0x07,
 -  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x55, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,
 -  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x59, 0x9B,  0x0C, 0x00, 0x00, 0x01,
 -  0x00, 0x6D, 0x65, 0x74,  0x68, 0x6F, 0x64, 0x00,  0x5B, 0x00, 0x96, 0x09,  0x00, 0x08, 0x5C, 0x07,
 -  0x00, 0x00, 0x00, 0x00,  0x08, 0x5A, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x5B,  0x52, 0x3C, 0x96, 0x02,
 -  0x00, 0x08, 0x5C, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x5D, 0x49, 0x9D, 0x02,  0x00, 0x2D, 0x00, 0x96,
 -  0x02, 0x00, 0x08, 0x5C,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x5E, 0x49, 0x9D,  0x02, 0x00, 0x0E, 0x00,
 -  0x96, 0x05, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x3E, 0x99, 0x02, 0x00,  0x09, 0x00, 0x96, 0x05,
 -  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x3E, 0x99,  0x02, 0x00, 0x09, 0x00,  0x96, 0x05, 0x00, 0x07,
 -  0x02, 0x00, 0x00, 0x00,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x5F, 0x9B,  0x17, 0x00, 0x00, 0x03,  0x00, 0x75, 0x72, 0x6C,
 -  0x00, 0x74, 0x61, 0x72,  0x67, 0x65, 0x74, 0x00,  0x6D, 0x65, 0x74, 0x68,  0x6F, 0x64, 0x00, 0x97,
 -  0x00, 0x96, 0x02, 0x00,  0x08, 0x56, 0x1C, 0x44,  0x96, 0x02, 0x00, 0x08,  0x60, 0x49, 0x12, 0x9D,
 -  0x02, 0x00, 0x08, 0x00,  0x96, 0x04, 0x00, 0x08,  0x56, 0x08, 0x4E, 0x1D,  0x96, 0x04, 0x00, 0x08,
 -  0x61, 0x08, 0x5A, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x59,  0x52, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x61, 0x1C,  0x96, 0x05, 0x00, 0x07,
 -  0x00, 0x00, 0x00, 0x00,  0x49, 0x9D, 0x02, 0x00,  0x3E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x61, 0x1C,
 -  0x96, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x49, 0x9D, 0x02, 0x00,  0x15, 0x00, 0x96, 0x02,
 -  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x56, 0x1C, 0x9A, 0x01,  0x00, 0x02, 0x99, 0x02,
 -  0x00, 0x10, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x56, 0x1C, 0x9A,
 -  0x01, 0x00, 0x01, 0x99,  0x02, 0x00, 0x10, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x56, 0x1C,  0x9A, 0x01, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x63, 0x9B, 0x10,  0x00, 0x00, 0x02, 0x00,
 -  0x75, 0x72, 0x6C, 0x00,  0x6D, 0x65, 0x74, 0x68,  0x6F, 0x64, 0x00, 0x99,  0x00, 0x96, 0x04, 0x00,
 -  0x08, 0x61, 0x08, 0x5A,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x59, 0x52, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x20, 0x96, 0x02,
 -  0x00, 0x08, 0x61, 0x1C,  0x96, 0x05, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x49, 0x9D, 0x02, 0x00,
 -  0x4A, 0x00, 0x96, 0x02,  0x00, 0x08, 0x61, 0x1C,  0x96, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
 -  0x49, 0x9D, 0x02, 0x00,  0x1B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x64, 0x4E,  0x9A, 0x01, 0x00, 0xC2,  0x99, 0x02, 0x00, 0x16,
 -  0x00, 0x96, 0x02, 0x00,  0x08, 0x62, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x64, 0x4E, 0x9A,  0x01, 0x00, 0xC1, 0x99,  0x02, 0x00, 0x16, 0x00,  0x96, 0x02, 0x00, 0x08,
 -  0x62, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,
 -  0x00, 0xC0, 0x8B, 0x01,  0x00, 0x00, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x58,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x65,  0x9B, 0x10, 0x00, 0x00,  0x02, 0x00, 0x75, 0x72,
 -  0x6C, 0x00, 0x6D, 0x65,  0x74, 0x68, 0x6F, 0x64,  0x00, 0x99, 0x00, 0x96,  0x04, 0x00, 0x08, 0x61,
 -  0x08, 0x5A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x59, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x20,  0x96, 0x02, 0x00, 0x08,
 -  0x61, 0x1C, 0x96, 0x05,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x49, 0x9D,  0x02, 0x00, 0x4A, 0x00,
 -  0x96, 0x02, 0x00, 0x08,  0x61, 0x1C, 0x96, 0x05,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x49, 0x9D,
 -  0x02, 0x00, 0x1B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,  0x00, 0x42, 0x99, 0x02,  0x00, 0x16, 0x00, 0x96,
 +  0x00, 0x08, 0x35, 0x52,  0x17, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,  0x96, 0x02, 0x00, 0x08,
 +  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x39, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0xB3, 0x00, 0x96,
 +  0x03, 0x00, 0x08, 0x3A,  0x02, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x46,  0x87, 0x01, 0x00, 0x00,
 +  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,  0x91, 0x00, 0x96, 0x04,  0x00, 0x08, 0x0A, 0x04,
 +  0x00, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x3A, 0x1C,  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,
 +  0x41, 0x00, 0x96, 0x02,  0x00, 0x08, 0x3A, 0x4C,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x3D, 0x08, 0x0A,
 +  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x3B, 0x3D,  0x47, 0x96, 0x02, 0x00,
 +  0x08, 0x3C, 0x47, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0A, 0x1C, 0x4E,
 +  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x3B, 0x3D, 0x47,  0x47, 0x1D, 0x99, 0x02,
 +  0x00, 0x33, 0x00, 0x96,  0x04, 0x00, 0x08, 0x3A,  0x08, 0x0A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,
 +  0x00, 0x00, 0x00, 0x08,  0x3B, 0x3D, 0x96, 0x02,  0x00, 0x08, 0x3C, 0x47,  0x96, 0x02, 0x00, 0x08,
 +  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0A, 0x1C,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,
 +  0x00, 0x08, 0x3B, 0x3D,  0x47, 0x1D, 0x99, 0x02,  0x00, 0x61, 0xFF, 0x96,  0x02, 0x00, 0x08, 0x3A,
 +  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 +  0x02, 0x00, 0x08, 0x3E,  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x0D, 0x00,  0x96, 0x02, 0x00, 0x08,
 +  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x3F, 0x4E,  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2F, 0x1C,
 +  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x40, 0x9B,  0x05, 0x00, 0x00, 0x00,
 +  0x00, 0x0D, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x41, 0x4E, 0x3E,
 +  0x4F, 0x96, 0x08, 0x00,  0x07, 0x83, 0x00, 0x00,  0x00, 0x02, 0x08, 0x2F,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
 +  0x13, 0x00, 0x08, 0x42,  0x07, 0x10, 0x00, 0x00,  0x00, 0x07, 0xF4, 0x01,  0x00, 0x00, 0x07, 0x02,
 +  0x00, 0x00, 0x00, 0x08,  0x43, 0x3D, 0x1D, 0x96,  0x0E, 0x00, 0x07, 0x06,  0x00, 0x00, 0x00, 0x08,
 +  0x44, 0x07, 0xF4, 0x01,  0x00, 0x00, 0x08, 0x42,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 +  0x07, 0x00, 0x07, 0x04,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,  0x13, 0x00, 0x08, 0x45,
 +  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 +  0x43, 0x3D, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 +  0x13, 0x00, 0x08, 0x46,  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,
 +  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x47,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
 +  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x48,  0x07, 0x03, 0x00, 0x00,
 +  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
 +  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x49,
 +  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 +  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 +  0x13, 0x00, 0x08, 0x4A,  0x07, 0x05, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,
 +  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x39,  0x07, 0x06, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
 +  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x45,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x4B,  0x07, 0x07, 0x00, 0x00,
 +  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
 +  0x02, 0x00, 0x08, 0x45,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x4C,
 +  0x07, 0x08, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 +  0x01, 0x3D, 0x4F, 0x96,  0x13, 0x00, 0x08, 0x4D,  0x07, 0x09, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
 +  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x43, 0x3D, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x4D,
 +  0x1C, 0x96, 0x10, 0x00,  0x08, 0x30, 0x08, 0x4E,  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
 +  0x00, 0x00, 0x08, 0x45,  0x40, 0x4F, 0x96, 0x09,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x30,
 +  0x08, 0x4D, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
 +  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x33,
 +  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
 +  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
 +  0x13, 0x00, 0x08, 0x4F,  0x07, 0x0A, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,
 +  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x50,  0x07, 0x0B, 0x00, 0x00,  0x00, 0x07, 0xFD, 0x00,
 +  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x4D,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x51,  0x07, 0x0C, 0x00, 0x00,
 +  0x00, 0x07, 0xFD, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
 +  0x02, 0x00, 0x08, 0x4D,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x35,
 +  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x4D, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x36, 0x9B, 0x09,  0x00, 0x00, 0x01, 0x00,
 +  0x73, 0x72, 0x63, 0x00,  0x72, 0x00, 0x96, 0x02,  0x00, 0x08, 0x38, 0x1C,  0x96, 0x01, 0x00, 0x02,
 +  0x49, 0x12, 0x9D, 0x02,  0x00, 0x27, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x04, 0x00,
 +  0x08, 0x37, 0x05, 0x00,  0x4F, 0x96, 0x09, 0x00,  0x05, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
 +  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x35, 0x52,  0x17, 0x99, 0x02, 0x00,  0x3A, 0x00, 0x96, 0x02,
 +  0x00, 0x08, 0x09, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x37, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,
 +  0x38, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x51, 0x52, 0x17,  0x96, 0x09, 0x00, 0x05,  0x01, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x35, 0x52, 0x17,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x4D, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x3E, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,
 +  0x0D, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x3F, 0x4E, 0x3E, 0x4F,
 +  0x96, 0x02, 0x00, 0x08,  0x4D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
 +  0x40, 0x9B, 0x05, 0x00,  0x00, 0x00, 0x00, 0x0D,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x41,  0x4E, 0x3E, 0x4F, 0x96,  0x07, 0x00, 0x08, 0x52,  0x07, 0x00, 0x00, 0x00,
 +  0x00, 0x43, 0x1D, 0x96,  0x02, 0x00, 0x08, 0x52,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x53, 0x07, 0x00,
 +  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x52, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x53,
 +  0x4E, 0x96, 0x13, 0x00,  0x08, 0x54, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x0B, 0x00, 0x00, 0x00,
 +  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x07, 0x00,  0x07, 0x00, 0x00, 0x00,
 +  0x00, 0x08, 0x52, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x53, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x54, 0x52,
 +  0x17, 0x96, 0x02, 0x00,  0x08, 0x52, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x53,  0x4E, 0x96, 0x02, 0x00,
 +  0x08, 0x54, 0x3A, 0x17,  0x96, 0x02, 0x00, 0x08,  0x55, 0x9B, 0x0C, 0x00,  0x00, 0x01, 0x00, 0x74,
 +  0x61, 0x72, 0x67, 0x65,  0x74, 0x00, 0x27, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x04,
 +  0x00, 0x08, 0x56, 0x08,  0x56, 0x1C, 0x4F, 0x96,  0x08, 0x00, 0x07, 0x07,  0x00, 0x00, 0x00, 0x02,
 +  0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x1D,
 +  0x96, 0x09, 0x00, 0x08,  0x57, 0x07, 0xBC, 0x02,  0x00, 0x00, 0x08, 0x55,  0x1C, 0x96, 0x02, 0x00,
 +  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,
 +  0x08, 0x00, 0x07, 0x07,  0x00, 0x00, 0x00, 0x02,  0x08, 0x55, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
 +  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x02, 0x00,
 +  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x59, 0x9B, 0x0C,
 +  0x00, 0x00, 0x01, 0x00,  0x6D, 0x65, 0x74, 0x68,  0x6F, 0x64, 0x00, 0x5B,  0x00, 0x96, 0x09, 0x00,
 +  0x08, 0x5C, 0x07, 0x00,  0x00, 0x00, 0x00, 0x08,  0x5A, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x5B, 0x52,
 +  0x3C, 0x96, 0x02, 0x00,  0x08, 0x5C, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x5D,  0x49, 0x9D, 0x02, 0x00,
 +  0x2D, 0x00, 0x96, 0x02,  0x00, 0x08, 0x5C, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x5E, 0x49, 0x9D, 0x02,
 +  0x00, 0x0E, 0x00, 0x96,  0x05, 0x00, 0x07, 0x00,  0x00, 0x00, 0x00, 0x3E,  0x99, 0x02, 0x00, 0x09,
 +  0x00, 0x96, 0x05, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x3E, 0x99, 0x02,  0x00, 0x09, 0x00, 0x96,
 +  0x05, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x3E,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x5F, 0x9B, 0x17,  0x00, 0x00, 0x03, 0x00,
 +  0x75, 0x72, 0x6C, 0x00,  0x74, 0x61, 0x72, 0x67,  0x65, 0x74, 0x00, 0x6D,  0x65, 0x74, 0x68, 0x6F,
 +  0x64, 0x00, 0x97, 0x00,  0x96, 0x02, 0x00, 0x08,  0x56, 0x1C, 0x44, 0x96,  0x02, 0x00, 0x08, 0x60,
 +  0x49, 0x12, 0x9D, 0x02,  0x00, 0x08, 0x00, 0x96,  0x04, 0x00, 0x08, 0x56,  0x08, 0x4E, 0x1D, 0x96,
 +  0x04, 0x00, 0x08, 0x61,  0x08, 0x5A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
 +  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x59, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x61, 0x1C, 0x96,
 +  0x05, 0x00, 0x07, 0x00,  0x00, 0x00, 0x00, 0x49,  0x9D, 0x02, 0x00, 0x3E,  0x00, 0x96, 0x02, 0x00,
 +  0x08, 0x61, 0x1C, 0x96,  0x05, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x49,  0x9D, 0x02, 0x00, 0x15,
 +  0x00, 0x96, 0x02, 0x00,  0x08, 0x62, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x56,  0x1C, 0x9A, 0x01, 0x00,
 +  0x02, 0x99, 0x02, 0x00,  0x10, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,
 +  0x56, 0x1C, 0x9A, 0x01,  0x00, 0x01, 0x99, 0x02,  0x00, 0x10, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x56, 0x1C, 0x9A,  0x01, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,
 +  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x63, 0x9B, 0x10, 0x00,
-   0x00, 0x02, 0x00, 0x75,  0x72, 0x6C, 0x00, 0x6D,  0x65, 0x74, 0x68, 0x6F,  0x64, 0x00, 0x9A, 0x00,
++  0x00, 0x02, 0x00, 0x75,  0x72, 0x6C, 0x00, 0x6D,  0x65, 0x74, 0x68, 0x6F,  0x64, 0x00, 0x99, 0x00,
 +  0x96, 0x04, 0x00, 0x08,  0x61, 0x08, 0x5A, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
 +  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x59,  0x52, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
 +  0x20, 0x96, 0x02, 0x00,  0x08, 0x61, 0x1C, 0x96,  0x05, 0x00, 0x07, 0x00,  0x00, 0x00, 0x00, 0x49,
 +  0x9D, 0x02, 0x00, 0x4A,  0x00, 0x96, 0x02, 0x00,  0x08, 0x61, 0x1C, 0x96,  0x05, 0x00, 0x07, 0x01,
 +  0x00, 0x00, 0x00, 0x49,  0x9D, 0x02, 0x00, 0x1B,  0x00, 0x96, 0x02, 0x00,  0x08, 0x62, 0x1C, 0x96,
 +  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x64, 0x4E, 0x9A,  0x01, 0x00, 0xC2, 0x99,
 +  0x02, 0x00, 0x16, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
 +  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,  0x00, 0xC1, 0x99, 0x02,  0x00, 0x16, 0x00, 0x96,
    0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x64,
-   0x4E, 0x9A, 0x01, 0x00,  0xC0, 0x96, 0x01, 0x00,  0x02, 0x20, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x58,
-   0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x65,  0x9B, 0x10, 0x00, 0x00,
-   0x02, 0x00, 0x75, 0x72,  0x6C, 0x00, 0x6D, 0x65,  0x74, 0x68, 0x6F, 0x64,  0x00, 0x9A, 0x00, 0x96,
-   0x04, 0x00, 0x08, 0x61,  0x08, 0x5A, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
-   0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x59, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x20,
-   0x96, 0x02, 0x00, 0x08,  0x61, 0x1C, 0x96, 0x05,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x49, 0x9D,
-   0x02, 0x00, 0x4A, 0x00,  0x96, 0x02, 0x00, 0x08,  0x61, 0x1C, 0x96, 0x05,  0x00, 0x07, 0x01, 0x00,
-   0x00, 0x00, 0x49, 0x9D,  0x02, 0x00, 0x1B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x62, 0x1C, 0x96, 0x02,
-   0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x64, 0x4E, 0x9A, 0x01,  0x00, 0x42, 0x99, 0x02,
-   0x00, 0x16, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
-   0x02, 0x00, 0x08, 0x64,  0x4E, 0x9A, 0x01, 0x00,  0x41, 0x99, 0x02, 0x00,  0x16, 0x00, 0x96, 0x02,
-   0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x64, 0x4E,
-   0x9A, 0x01, 0x00, 0x40,  0x96, 0x01, 0x00, 0x02,  0x20, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x66, 0x07,  0x00, 0x00, 0x00, 0x00,
-   0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-   0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x67, 0x07,
-   0x01, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-   0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-   0x00, 0x08, 0x68, 0x07,  0x04, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,
-   0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x69, 0x07,  0x05, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,
-   0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x40, 0x07,  0x06, 0x00, 0x00, 0x00,
-   0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-   0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x3E, 0x07,
-   0x07, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-   0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-   0x00, 0x08, 0x6A, 0x07,  0x0A, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,
-   0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x6B, 0x07,  0x0C, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,
-   0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x6C, 0x07,  0x0D, 0x00, 0x00, 0x00,
-   0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-   0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x6D, 0x07,
-   0x0E, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-   0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-   0x00, 0x08, 0x6E, 0x07,  0x0F, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,
-   0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x6F, 0x07,  0x10, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,
-   0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x70, 0x07,  0x11, 0x00, 0x00, 0x00,
-   0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-   0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x71, 0x07,
-   0x12, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-   0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-   0x00, 0x08, 0x72, 0x07,  0x13, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,
-   0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x73, 0x07,  0x14, 0x00, 0x00, 0x00,  0x07, 0x84, 0x03, 0x00,
-   0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x74, 0x07,  0x15, 0x00, 0x00, 0x00,
-   0x07, 0x84, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-   0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x75, 0x07,
-   0x00, 0x00, 0x00, 0x00,  0x07, 0x85, 0x03, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-   0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-   0x00, 0x08, 0x76, 0x07,  0xC8, 0x00, 0x00, 0x00,  0x07, 0x68, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
-   0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x09,  0x00, 0x07, 0x80, 0x00,  0x00, 0x00, 0x08, 0x77,
-   0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,
-   0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x09, 0x00,  0x08, 0x78, 0x07, 0x85,  0x03, 0x00, 0x00, 0x08,
-   0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-   0x08, 0x00, 0x3D, 0x17,  0x96, 0x08, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x02, 0x08, 0x58, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x05,
-   0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x79, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x68, 0x00, 0x00,
-   0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x43,  0x3D, 0x1D, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x7A, 0x07,  0x66, 0x00, 0x00, 0x00,
-   0x07, 0x68, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
-   0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x7B, 0x07,
-   0x68, 0x00, 0x00, 0x00,  0x07, 0x68, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-   0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,
-   0x00, 0x08, 0x7C, 0x07,  0x69, 0x00, 0x00, 0x00,  0x07, 0x68, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,
-   0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x13,  0x00, 0x08, 0x7D, 0x07,  0x00, 0x00, 0x00, 0x00,
-   0x07, 0x6E, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x43,  0x3D, 0x1D, 0x96, 0x02,
-   0x00, 0x08, 0x79, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x7E, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x71,
-   0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
-   0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,
-   0x00, 0x08, 0x7F, 0x9B,  0x07, 0x00, 0x00, 0x01,  0x00, 0x6F, 0x00, 0x67,  0x00, 0x96, 0x02, 0x00,
-   0x08, 0x13, 0x1C, 0x44,  0x96, 0x02, 0x00, 0x08,  0x80, 0x49, 0x12, 0x12,  0x9D, 0x02, 0x00, 0x05,
-   0x00, 0x96, 0x01, 0x00,  0x02, 0x3E, 0x96, 0x07,  0x00, 0x08, 0x81, 0x07,  0x00, 0x00, 0x00, 0x00,
-   0x43, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x13, 0x46,  0x87, 0x01, 0x00, 0x00,  0x96, 0x01, 0x00, 0x02,
-   0x49, 0x9D, 0x02, 0x00,  0x27, 0x00, 0x96, 0x04,  0x00, 0x08, 0x82, 0x04,  0x00, 0x3C, 0x96, 0x02,
-   0x00, 0x08, 0x81, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x82, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x13, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x82, 0x1C, 0x4E, 0x4F,  0x99, 0x02, 0x00, 0xCB,  0xFF, 0x96, 0x02, 0x00,
-   0x08, 0x81, 0x1C, 0x3E,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
-   0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x83,  0x9B, 0x05, 0x00, 0x00,
-   0x00, 0x00, 0x24, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x84, 0x07,
-   0x00, 0x00, 0x00, 0x00,  0x43, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,
-   0x85, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x4F,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,
-   0x02, 0x00, 0x08, 0x7E,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x86,
-   0x9B, 0x0A, 0x00, 0x00,  0x01, 0x00, 0x6E, 0x61,  0x6D, 0x65, 0x00, 0x25,  0x00, 0x96, 0x02, 0x00,
-   0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x84,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x4E,
-   0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7F,
-   0x52, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,
-   0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x88, 0x9B, 0x10,  0x00, 0x00, 0x02, 0x00,
-   0x6E, 0x61, 0x6D, 0x65,  0x00, 0x73, 0x74, 0x79,  0x6C, 0x65, 0x00, 0x67,  0x00, 0x96, 0x02, 0x00,
-   0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x84,  0x4E, 0x12, 0x12, 0x9D,  0x02, 0x00, 0x12, 0x00,
-   0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x84, 0x07,  0x00, 0x00, 0x00, 0x00,
-   0x43, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x84, 0x4E, 0x96, 0x02,
-   0x00, 0x08, 0x87, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
-   0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7F, 0x52, 0x4F,  0x96, 0x02, 0x00, 0x08,
-   0x87, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0x8A, 0x52, 0x17,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
-   0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x8B,  0x9B, 0x05, 0x00, 0x00,
-   0x00, 0x00, 0x5B, 0x00,  0x96, 0x04, 0x00, 0x08,  0x8C, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x84, 0x4E, 0x3C, 0x96,  0x07, 0x00, 0x08, 0x8D,  0x07, 0x00, 0x00, 0x00,  0x00, 0x42, 0x3C, 0x96,
-   0x02, 0x00, 0x08, 0x8C,  0x46, 0x87, 0x01, 0x00,  0x00, 0x96, 0x01, 0x00,  0x02, 0x49, 0x9D, 0x02,
-   0x00, 0x25, 0x00, 0x96,  0x04, 0x00, 0x08, 0x82,  0x04, 0x00, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x82,
-   0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x8D, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x0D, 0x52, 0x17, 0x99,  0x02, 0x00, 0xCD, 0xFF,  0x96, 0x02, 0x00, 0x08,  0x8D, 0x1C, 0x3E, 0x4F,
-   0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x8A, 0x9B,  0x0A, 0x00, 0x00, 0x01,  0x00, 0x6E, 0x61, 0x6D,
-   0x65, 0x00, 0x5C, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x85, 0x4E,
-   0x12, 0x12, 0x9D, 0x02,  0x00, 0x12, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x07, 0x00,
-   0x08, 0x85, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
-   0x02, 0x00, 0x08, 0x85,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x09,
 -  0x4E, 0x9A, 0x01, 0x00,  0x41, 0x99, 0x02, 0x00,  0x16, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x64, 0x4E,  0x9A, 0x01, 0x00, 0x40,
 -  0x8B, 0x01, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x13, 0x00,  0x08, 0x66, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x67, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,
 -  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
 -  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x68, 0x07, 0x04,
 -  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
 -  0x08, 0x69, 0x07, 0x05,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
 -  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x13, 0x00,  0x08, 0x40, 0x07, 0x06,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x3E, 0x07, 0x07,  0x00, 0x00, 0x00, 0x07,
 -  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
 -  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6A, 0x07, 0x0A,
 -  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
 -  0x08, 0x6B, 0x07, 0x0C,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
 -  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6C, 0x07, 0x0D,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6D, 0x07, 0x0E,  0x00, 0x00, 0x00, 0x07,
 -  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
 -  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x6E, 0x07, 0x0F,
 -  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
 -  0x08, 0x6F, 0x07, 0x10,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
 -  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x13, 0x00,  0x08, 0x70, 0x07, 0x11,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x71, 0x07, 0x12,  0x00, 0x00, 0x00, 0x07,
 -  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,
 -  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,  0x08, 0x72, 0x07, 0x13,
 -  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
 -  0x08, 0x73, 0x07, 0x14,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
 -  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x13, 0x00,  0x08, 0x74, 0x07, 0x15,  0x00, 0x00, 0x00, 0x07,  0x84, 0x03, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x09, 0x00,  0x07, 0x80, 0x00, 0x00,
 -  0x00, 0x08, 0x6A, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,
 -  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x09, 0x00, 0x08,  0x75, 0x07, 0x85, 0x03,
 -  0x00, 0x00, 0x08, 0x58,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,
 -  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,  0x08, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x02,
 -  0x08, 0x58, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,
 -  0x00, 0x08, 0x05, 0x3D,  0x17, 0x96, 0x07, 0x00,  0x08, 0x76, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,
 -  0x1D, 0x96, 0x13, 0x00,  0x08, 0x77, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x6E, 0x00, 0x00, 0x00,
 -  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x43, 0x3D,  0x1D, 0x96, 0x02, 0x00,  0x08, 0x76, 0x1C, 0x96,
 -  0x13, 0x00, 0x08, 0x78,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x71, 0x00,  0x00, 0x00, 0x07, 0x02,
 -  0x00, 0x00, 0x00, 0x08,  0x43, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x76,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x78, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x79, 0x9B, 0x07,
 -  0x00, 0x00, 0x01, 0x00,  0x6F, 0x00, 0x67, 0x00,  0x96, 0x02, 0x00, 0x08,  0x13, 0x1C, 0x44, 0x96,
 -  0x02, 0x00, 0x08, 0x7A,  0x49, 0x12, 0x12, 0x9D,  0x02, 0x00, 0x05, 0x00,  0x96, 0x01, 0x00, 0x02,
 -  0x3E, 0x96, 0x07, 0x00,  0x08, 0x7B, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x3C, 0x96, 0x02, 0x00,
 -  0x08, 0x13, 0x46, 0x87,  0x01, 0x00, 0x00, 0x96,  0x01, 0x00, 0x02, 0x49,  0x9D, 0x02, 0x00, 0x27,
 -  0x00, 0x96, 0x04, 0x00,  0x08, 0x7C, 0x04, 0x00,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x7B, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x7C,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7C,
 -  0x1C, 0x4E, 0x4F, 0x99,  0x02, 0x00, 0xCB, 0xFF,  0x96, 0x02, 0x00, 0x08,  0x7B, 0x1C, 0x3E, 0x4F,
 -  0x96, 0x02, 0x00, 0x08,  0x76, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x78, 0x4E,  0x96, 0x02, 0x00, 0x08,
 -  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x7D, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0x24, 0x00, 0x96,
 -  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x7E, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x7F,  0x07, 0x00, 0x00, 0x00,
 -  0x00, 0x43, 0x4F, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x76, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x78, 0x4E,
 -  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x80, 0x9B,  0x0A, 0x00, 0x00, 0x01,
 -  0x00, 0x6E, 0x61, 0x6D,  0x65, 0x00, 0x25, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x81, 0x1C, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,
 -  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x79, 0x52,  0x3E, 0x4F, 0x96, 0x02,
 -  0x00, 0x08, 0x76, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x78, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
 -  0x96, 0x02, 0x00, 0x08,  0x82, 0x9B, 0x10, 0x00,  0x00, 0x02, 0x00, 0x6E,  0x61, 0x6D, 0x65, 0x00,
 -  0x73, 0x74, 0x79, 0x6C,  0x65, 0x00, 0x67, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x7E, 0x4E,  0x12, 0x12, 0x9D, 0x02,  0x00, 0x12, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
 -  0x1C, 0x96, 0x07, 0x00,  0x08, 0x7E, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,
 -  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x81, 0x1C, 0x96,
 -  0x02, 0x00, 0x08, 0x83,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x79, 0x52, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x81,  0x1C, 0x96, 0x07, 0x00,
 -  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x84, 0x52, 0x17, 0x4F,
 -  0x96, 0x02, 0x00, 0x08,  0x76, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x78, 0x4E,  0x96, 0x02, 0x00, 0x08,
 -  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x85, 0x9B,  0x05, 0x00, 0x00, 0x00,  0x00, 0x5B, 0x00, 0x96,
 -  0x04, 0x00, 0x08, 0x86,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,  0x4E, 0x3C, 0x96, 0x07,
 -  0x00, 0x08, 0x87, 0x07,  0x00, 0x00, 0x00, 0x00,  0x42, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x86, 0x46,
 -  0x87, 0x01, 0x00, 0x00,  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,  0x25, 0x00, 0x96, 0x04,
 -  0x00, 0x08, 0x7C, 0x04,  0x00, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x7C, 0x1C,  0x96, 0x07, 0x00, 0x07,
 -  0x01, 0x00, 0x00, 0x00,  0x08, 0x87, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x0D,  0x52, 0x17, 0x99, 0x02,
 -  0x00, 0xCD, 0xFF, 0x96,  0x02, 0x00, 0x08, 0x87,  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x76,
 -  0x1C, 0x96, 0x02, 0x00,  0x08, 0x78, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,
 -  0x08, 0x84, 0x9B, 0x0A,  0x00, 0x00, 0x01, 0x00,  0x6E, 0x61, 0x6D, 0x65,  0x00, 0x5C, 0x00, 0x96,
 -  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7F, 0x4E, 0x12,  0x12, 0x9D, 0x02, 0x00,
 -  0x12, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x7F, 0x07, 0x00, 0x00,
 -  0x00, 0x00, 0x43, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7F, 0x4E,
 -  0x96, 0x02, 0x00, 0x08,  0x81, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x81, 0x1C,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,
 -  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x88, 0x52, 0x4F, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x76, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x78, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,
 -  0x00, 0x08, 0x88, 0x9B,  0x0B, 0x00, 0x00, 0x01,  0x00, 0x73, 0x74, 0x79,  0x6C, 0x65, 0x00, 0x9D,
 -  0x03, 0x96, 0x02, 0x00,  0x08, 0x83, 0x1C, 0x96,  0x01, 0x00, 0x02, 0x49,  0x12, 0x9D, 0x02, 0x00,
 -  0x05, 0x00, 0x96, 0x01,  0x00, 0x02, 0x3E, 0x96,  0x09, 0x00, 0x08, 0x89,  0x07, 0x00, 0x00, 0x00,
 -  0x00, 0x08, 0x77, 0x40,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x83, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8A,
 -  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x15, 0x00, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x04, 0x00,
 -  0x08, 0x8B, 0x08, 0x83,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x8A, 0x4E, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x8C, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x8D, 0x49, 0x9D, 0x02,
 -  0x00, 0x2B, 0x00, 0x96,  0x02, 0x00, 0x08, 0x83,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x8C, 0x4E, 0x96,
 -  0x02, 0x00, 0x08, 0x8E,  0x49, 0x12, 0x9D, 0x02,  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x89,
 -  0x1C, 0x96, 0x04, 0x00,  0x08, 0x8D, 0x05, 0x00,  0x4F, 0x99, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,
 -  0x00, 0x08, 0x89, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x8D, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x41, 0x00, 0x96, 0x04,
 -  0x00, 0x08, 0x86, 0x08,  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x4E,  0x96, 0x07, 0x00, 0x07,
 -  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x90,  0x52, 0x3C, 0x96, 0x02,
 -  0x00, 0x08, 0x86, 0x1C,  0x96, 0x01, 0x00, 0x02,  0x49, 0x12, 0x12, 0x9D,  0x02, 0x00, 0x0F, 0x00,
 -  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x8F, 0x08,  0x86, 0x1C, 0x4F, 0x96,
 -  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x91, 0x08, 0x83,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0x91, 0x4E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x92, 0x4E,
 -  0x12, 0x9D, 0x02, 0x00,  0x26, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x04, 0x00, 0x08,
 -  0x93, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x92, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 -  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x94, 0x52, 0x4F,  0x96, 0x02, 0x00, 0x08,
 -  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x95, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x20, 0x00, 0x96, 0x02,
 -  0x00, 0x08, 0x89, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x96, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x95, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x97,  0x3D, 0x4F, 0x96, 0x02,
 -  0x00, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x98, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x99, 0x49,
 -  0x9D, 0x02, 0x00, 0x2B,  0x00, 0x96, 0x02, 0x00,  0x08, 0x83, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x98,
 -  0x4E, 0x96, 0x02, 0x00,  0x08, 0x8E, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,
 -  0x08, 0x89, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x99,  0x05, 0x00, 0x4F, 0x99,  0x02, 0x00, 0x0E, 0x00,
 -  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x99, 0x05,  0x01, 0x4F, 0x96, 0x02,
 -  0x00, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x9A, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x9B, 0x49,
 -  0x9D, 0x02, 0x00, 0x4F,  0x00, 0x96, 0x02, 0x00,  0x08, 0x83, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x9A,
 -  0x4E, 0x96, 0x02, 0x00,  0x08, 0x9C, 0x49, 0x9D,  0x02, 0x00, 0x25, 0x00,  0x96, 0x02, 0x00, 0x08,
 -  0x89, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9A, 0x08,  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x9A, 0x4E,
 -  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x97, 0x3D, 0x4F,  0x99, 0x02, 0x00, 0x0E,
 -  0x00, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x9A,  0x05, 0x00, 0x4F, 0x99,
 -  0x02, 0x00, 0x0E, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9A, 0x05,
 -  0x01, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x9D, 0x4E, 0x12, 0x9D,
 -  0x02, 0x00, 0x20, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9D, 0x08,
 -  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x9D, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
 -  0x08, 0x97, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x9E, 0x4E,
 -  0x12, 0x9D, 0x02, 0x00,  0x20, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x04, 0x00, 0x08,
 -  0x9F, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x9E, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 -  0x00, 0x00, 0x08, 0x97,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0xA0, 0x4E, 0x12, 0x9D,  0x02, 0x00, 0x20, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x04,
 -  0x00, 0x08, 0xA0, 0x08,  0x83, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xA0, 0x4E,  0x96, 0x07, 0x00, 0x07,
 -  0x01, 0x00, 0x00, 0x00,  0x08, 0x97, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x83, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0xA1, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x20, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,
 -  0x96, 0x04, 0x00, 0x08,  0xA2, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xA1, 0x4E, 0x96, 0x07,
 -  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x97,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x83, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0xA3, 0x4E, 0x12, 0x9D,  0x02, 0x00, 0x3B, 0x00,  0x96, 0x04, 0x00, 0x08,
 -  0x86, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xA3, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 -  0x00, 0x00, 0x08, 0x97,  0x3D, 0x3C, 0x96, 0x07,  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x08, 0x86,
 -  0x1C, 0x48, 0x12, 0x9D,  0x02, 0x00, 0x0F, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x04,
 -  0x00, 0x08, 0xA4, 0x08,  0x86, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x83,  0x1C, 0x96, 0x02, 0x00,
 -  0x08, 0xA5, 0x4E, 0x96,  0x02, 0x00, 0x08, 0xA6,  0x49, 0x9D, 0x02, 0x00,  0x2B, 0x00, 0x96, 0x02,
 -  0x00, 0x08, 0x83, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xA5, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xA7, 0x49,
 -  0x12, 0x9D, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x04, 0x00, 0x08,
 -  0xA6, 0x05, 0x00, 0x4F,  0x99, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,
 -  0x04, 0x00, 0x08, 0xA6,  0x05, 0x01, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x3E, 0x4F, 0x96,
 -  0x02, 0x00, 0x08, 0x76,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x78, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x02, 0x00,  0x08, 0xA8, 0x9B, 0x09,  0x00, 0x00, 0x01, 0x00,  0x63, 0x73, 0x73, 0x00,
 -  0xC8, 0x00, 0x96, 0x04,  0x00, 0x08, 0xAB, 0x08,  0xA9, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
 -  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xAA, 0x52, 0x3C,  0x96, 0x02, 0x00, 0x08,
 -  0xAB, 0x1C, 0x44, 0x96,  0x02, 0x00, 0x08, 0xAC,  0x49, 0x12, 0x9D, 0x02,  0x00, 0x06, 0x00, 0x96,
 -  0x02, 0x00, 0x05, 0x00,  0x3E, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
 -  0x4E, 0x12, 0x12, 0x9D,  0x02, 0x00, 0x12, 0x00,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x07,
 -  0x00, 0x08, 0x7E, 0x07,  0x00, 0x00, 0x00, 0x00,  0x43, 0x4F, 0x96, 0x02,  0x00, 0x08, 0xAB, 0x46,
 -  0x87, 0x01, 0x00, 0x00,  0x96, 0x01, 0x00, 0x02,  0x49, 0x9D, 0x02, 0x00,  0x56, 0x00, 0x96, 0x04,
 -  0x00, 0x08, 0x7C, 0x04,  0x00, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
 -  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x7C, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xAB, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x7C, 0x1C,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,
 -  0x96, 0x02, 0x00, 0x08,  0x79, 0x52, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x7C,  0x1C, 0x96, 0x07, 0x00,
 -  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x84, 0x52, 0x17, 0x99,
 -  0x02, 0x00, 0x9C, 0xFF,  0x96, 0x02, 0x00, 0x05,  0x01, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x76,
 -  0x1C, 0x96, 0x02, 0x00,  0x08, 0x78, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x04, 0x00,
 -  0x08, 0xAD, 0x08, 0x76,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x78, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,
 -  0x4E, 0x96, 0x02, 0x00,  0x08, 0xA8, 0x4E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x76, 0x1C, 0x96, 0x02,
 -  0x00, 0x08, 0x78, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x33, 0x07,
 -  0x00, 0x00, 0x00, 0x00,  0x07, 0x2D, 0x01, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
 -  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x76, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x78, 0x4E, 0x96, 0x02,
 -  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x35, 0x9B, 0x05, 0x00,  0x00, 0x00, 0x00, 0x00,
 -  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x76, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x78, 0x4E, 0x96, 0x02,
 -  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x36, 0x9B, 0x09, 0x00,  0x00, 0x01, 0x00, 0x73,
 -  0x72, 0x63, 0x00, 0x6B,  0x00, 0x96, 0x02, 0x00,  0x08, 0x38, 0x1C, 0x96,  0x01, 0x00, 0x02, 0x49,
 -  0x12, 0x9D, 0x02, 0x00,  0x19, 0x00, 0x96, 0x09,  0x00, 0x05, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
 -  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x35,  0x52, 0x17, 0x99, 0x02,  0x00, 0x41, 0x00, 0x96,
 -  0x04, 0x00, 0x08, 0xAB,  0x08, 0x38, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
 -  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xAD, 0x52,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
 -  0x04, 0x00, 0x08, 0x37,  0x08, 0xAB, 0x1C, 0x4F,  0x96, 0x02, 0x00, 0x08,  0xAB, 0x1C, 0x96, 0x07,
 -  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x35, 0x52, 0x17,
 -  0x4F, 0x96, 0x02, 0x00,  0x08, 0x76, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x78,  0x4E, 0x96, 0x02, 0x00,
 -  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0xAA,  0x07, 0x65, 0x00, 0x00,  0x00, 0x07, 0x71, 0x00,
 -  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x76,
 -  0x1C, 0x96, 0x02, 0x00,  0x08, 0x78, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
 -  0x08, 0x94, 0x07, 0x66,  0x00, 0x00, 0x00, 0x07,  0x71, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
 -  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x76, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x78,
 -  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x13, 0x00, 0x08, 0x90,  0x07, 0x67, 0x00, 0x00,
 -  0x00, 0x07, 0x71, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,
 -  0x08, 0x00, 0x07, 0x03,  0x04, 0x00, 0x00, 0x02,  0x08, 0x76, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x78,
 -  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,
 -  0x05, 0x3D, 0x17, 0x96,  0x09, 0x00, 0x07, 0x03,  0x04, 0x00, 0x00, 0x08,  0x78, 0x08, 0x76, 0x1C,
 -  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,
 -  0xAE, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0xFA,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
 -  0x08, 0x01, 0x3D, 0x1D,  0x96, 0x13, 0x00, 0x08,  0xAF, 0x07, 0x01, 0x00,  0x00, 0x00, 0x07, 0xFA,
 -  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x1D,  0x96, 0x13, 0x00, 0x08,
 -  0xB0, 0x07, 0x02, 0x00,  0x00, 0x00, 0x07, 0xFA,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
 -  0x08, 0x01, 0x3D, 0x1D,  0x96, 0x04, 0x00, 0x08,  0xB1, 0x08, 0xAF, 0x1C,  0x1D, 0x96, 0x03, 0x00,
 -  0x08, 0x13, 0x02, 0x1D,  0x96, 0x0D, 0x00, 0x07,  0x06, 0x00, 0x00, 0x00,  0x07, 0x01, 0x00, 0x00,
 -  0x00, 0x02, 0x08, 0x09,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
 -  0x17, 0x00
++  0x4E, 0x9A, 0x01, 0x00,  0xC0, 0x8B, 0x01, 0x00,  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x58, 0x1C,
++  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x65, 0x9B,  0x10, 0x00, 0x00, 0x02,
++  0x00, 0x75, 0x72, 0x6C,  0x00, 0x6D, 0x65, 0x74,  0x68, 0x6F, 0x64, 0x00,  0x99, 0x00, 0x96, 0x04,
++  0x00, 0x08, 0x61, 0x08,  0x5A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,
++  0x1C, 0x96, 0x02, 0x00,  0x08, 0x59, 0x52, 0x3C,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x20, 0x96,
++  0x02, 0x00, 0x08, 0x61,  0x1C, 0x96, 0x05, 0x00,  0x07, 0x00, 0x00, 0x00,  0x00, 0x49, 0x9D, 0x02,
++  0x00, 0x4A, 0x00, 0x96,  0x02, 0x00, 0x08, 0x61,  0x1C, 0x96, 0x05, 0x00,  0x07, 0x01, 0x00, 0x00,
++  0x00, 0x49, 0x9D, 0x02,  0x00, 0x1B, 0x00, 0x96,  0x02, 0x00, 0x08, 0x62,  0x1C, 0x96, 0x02, 0x00,
++  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x64,  0x4E, 0x9A, 0x01, 0x00,  0x42, 0x99, 0x02, 0x00,
++  0x16, 0x00, 0x96, 0x02,  0x00, 0x08, 0x62, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x64, 0x4E,  0x9A, 0x01, 0x00, 0x41,  0x99, 0x02, 0x00, 0x16,  0x00, 0x96, 0x02, 0x00,
++  0x08, 0x62, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x64, 0x4E, 0x9A,
++  0x01, 0x00, 0x40, 0x8B,  0x01, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x66, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x84,
++  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
++  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x67, 0x07, 0x01, 0x00,
++  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
++  0x68, 0x07, 0x04, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
++  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x13, 0x00, 0x08,  0x69, 0x07, 0x05, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
++  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x40, 0x07, 0x06, 0x00,  0x00, 0x00, 0x07, 0x84,
++  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
++  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x3E, 0x07, 0x07, 0x00,
++  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
++  0x6A, 0x07, 0x0A, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
++  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x13, 0x00, 0x08,  0x6B, 0x07, 0x0C, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
++  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x6C, 0x07, 0x0D, 0x00,  0x00, 0x00, 0x07, 0x84,
++  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
++  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x6D, 0x07, 0x0E, 0x00,
++  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
++  0x6E, 0x07, 0x0F, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
++  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x13, 0x00, 0x08,  0x6F, 0x07, 0x10, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
++  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x70, 0x07, 0x11, 0x00,  0x00, 0x00, 0x07, 0x84,
++  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
++  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x71, 0x07, 0x12, 0x00,
++  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
++  0x72, 0x07, 0x13, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
++  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x13, 0x00, 0x08,  0x73, 0x07, 0x14, 0x00,  0x00, 0x00, 0x07, 0x84,  0x03, 0x00, 0x00, 0x07,
++  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x74, 0x07, 0x15, 0x00,  0x00, 0x00, 0x07, 0x84,
++  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
++  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x75, 0x07, 0x00, 0x00,
++  0x00, 0x00, 0x07, 0x85,  0x03, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x58, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
++  0x76, 0x07, 0xC8, 0x00,  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
++  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x09, 0x00, 0x07,  0x80, 0x00, 0x00, 0x00,  0x08, 0x77, 0x08, 0x58,
++  0x1C, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,
++  0x05, 0x3D, 0x17, 0x96,  0x09, 0x00, 0x08, 0x78,  0x07, 0x85, 0x03, 0x00,  0x00, 0x08, 0x58, 0x1C,
++  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,
++  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x58, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,
++  0x96, 0x13, 0x00, 0x08,  0x79, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,
++  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x7A, 0x07, 0x66, 0x00,  0x00, 0x00, 0x07, 0x68,
++  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,
++  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0x7B, 0x07, 0x68, 0x00,
++  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
++  0x7C, 0x07, 0x69, 0x00,  0x00, 0x00, 0x07, 0x68,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
++  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x13, 0x00, 0x08,  0x7D, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0x6E,
++  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x43, 0x3D, 0x1D,  0x96, 0x02, 0x00, 0x08,
++  0x79, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x7E, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x71, 0x00, 0x00,
++  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x43,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,
++  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,
++  0x7F, 0x9B, 0x07, 0x00,  0x00, 0x01, 0x00, 0x6F,  0x00, 0x67, 0x00, 0x96,  0x02, 0x00, 0x08, 0x13,
++  0x1C, 0x44, 0x96, 0x02,  0x00, 0x08, 0x80, 0x49,  0x12, 0x12, 0x9D, 0x02,  0x00, 0x05, 0x00, 0x96,
++  0x01, 0x00, 0x02, 0x3E,  0x96, 0x07, 0x00, 0x08,  0x81, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x3C,
++  0x96, 0x02, 0x00, 0x08,  0x13, 0x46, 0x87, 0x01,  0x00, 0x00, 0x96, 0x01,  0x00, 0x02, 0x49, 0x9D,
++  0x02, 0x00, 0x27, 0x00,  0x96, 0x04, 0x00, 0x08,  0x82, 0x04, 0x00, 0x3C,  0x96, 0x02, 0x00, 0x08,
++  0x81, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x82, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x13, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x82, 0x1C,  0x4E, 0x4F, 0x99, 0x02,  0x00, 0xCB, 0xFF, 0x96,  0x02, 0x00, 0x08, 0x81,
++  0x1C, 0x3E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,
++  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x83, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,
++  0x24, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x84, 0x07, 0x00, 0x00,
++  0x00, 0x00, 0x43, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x85, 0x07,
++  0x00, 0x00, 0x00, 0x00,  0x43, 0x4F, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,
++  0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x86, 0x9B, 0x0A,
++  0x00, 0x00, 0x01, 0x00,  0x6E, 0x61, 0x6D, 0x65,  0x00, 0x25, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
 +  0x1C, 0x96, 0x02, 0x00,  0x08, 0x84, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x87,  0x1C, 0x4E, 0x96, 0x07,
-   0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x8E, 0x52, 0x4F,
++  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7F, 0x52, 0x3E,
 +  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,  0x4E, 0x96, 0x02, 0x00,
-   0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x8E,  0x9B, 0x0B, 0x00, 0x00,  0x01, 0x00, 0x73, 0x74,
-   0x79, 0x6C, 0x65, 0x00,  0x9D, 0x03, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x01, 0x00, 0x02,
-   0x49, 0x12, 0x9D, 0x02,  0x00, 0x05, 0x00, 0x96,  0x01, 0x00, 0x02, 0x3E,  0x96, 0x09, 0x00, 0x08,
-   0x8F, 0x07, 0x00, 0x00,  0x00, 0x00, 0x08, 0x7D,  0x40, 0x3C, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x90, 0x4E, 0x12, 0x9D,  0x02, 0x00, 0x15, 0x00,  0x96, 0x02, 0x00, 0x08,
-   0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x91, 0x08,  0x89, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x90, 0x4E,
-   0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x92,  0x4E, 0x96, 0x02, 0x00,
-   0x08, 0x93, 0x49, 0x9D,  0x02, 0x00, 0x2B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
-   0x00, 0x08, 0x92, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x94, 0x49, 0x12, 0x9D,  0x02, 0x00, 0x0E, 0x00,
-   0x96, 0x02, 0x00, 0x08,  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x93, 0x05,  0x00, 0x4F, 0x99, 0x02,
-   0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x93, 0x05, 0x01,
-   0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x95,  0x4E, 0x12, 0x9D, 0x02,
-   0x00, 0x41, 0x00, 0x96,  0x04, 0x00, 0x08, 0x8C,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x95,
-   0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x96, 0x52, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x8C,  0x1C, 0x96, 0x01, 0x00,  0x02, 0x49, 0x12, 0x12,
-   0x9D, 0x02, 0x00, 0x0F,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x95,
-   0x08, 0x8C, 0x1C, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x97, 0x08,
-   0x89, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x97, 0x4E,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,
-   0x02, 0x00, 0x08, 0x98,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x26, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
-   0x1C, 0x96, 0x04, 0x00,  0x08, 0x99, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x98, 0x4E, 0x96,
-   0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x9A, 0x52,
-   0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x9B,  0x4E, 0x12, 0x9D, 0x02,
-   0x00, 0x20, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x9C, 0x08, 0x89,
-   0x1C, 0x96, 0x02, 0x00,  0x08, 0x9B, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
-   0x9D, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x9E, 0x4E, 0x96,
-   0x02, 0x00, 0x08, 0x9F,  0x49, 0x9D, 0x02, 0x00,  0x2B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x9E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x94, 0x49,  0x12, 0x9D, 0x02, 0x00,
-   0x0E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x9F, 0x05, 0x00, 0x4F,
-   0x99, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x9F,
-   0x05, 0x01, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA0, 0x4E, 0x96,
-   0x02, 0x00, 0x08, 0xA1,  0x49, 0x9D, 0x02, 0x00,  0x4F, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0xA0, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xA2, 0x49,  0x9D, 0x02, 0x00, 0x25,
-   0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0xA0,  0x08, 0x89, 0x1C, 0x96,
-   0x02, 0x00, 0x08, 0xA0,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,
-   0x4F, 0x99, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,
-   0xA0, 0x05, 0x00, 0x4F,  0x99, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
-   0x04, 0x00, 0x08, 0xA0,  0x05, 0x01, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0xA3, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
-   0x04, 0x00, 0x08, 0xA3,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA3,  0x4E, 0x96, 0x07, 0x00,
++  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x88,  0x9B, 0x10, 0x00, 0x00,  0x02, 0x00, 0x6E, 0x61,
++  0x6D, 0x65, 0x00, 0x73,  0x74, 0x79, 0x6C, 0x65,  0x00, 0x67, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
++  0x1C, 0x96, 0x02, 0x00,  0x08, 0x84, 0x4E, 0x12,  0x12, 0x9D, 0x02, 0x00,  0x12, 0x00, 0x96, 0x02,
++  0x00, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x84, 0x07, 0x00, 0x00,  0x00, 0x00, 0x43, 0x4F,
++  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x84, 0x4E,  0x96, 0x02, 0x00, 0x08,
++  0x87, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
++  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7F,  0x52, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x87, 0x1C,
++  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8A,
++  0x52, 0x17, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,
++  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x8B, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,
++  0x5B, 0x00, 0x96, 0x04,  0x00, 0x08, 0x8C, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x84, 0x4E,
++  0x3C, 0x96, 0x07, 0x00,  0x08, 0x8D, 0x07, 0x00,  0x00, 0x00, 0x00, 0x42,  0x3C, 0x96, 0x02, 0x00,
++  0x08, 0x8C, 0x46, 0x87,  0x01, 0x00, 0x00, 0x96,  0x01, 0x00, 0x02, 0x49,  0x9D, 0x02, 0x00, 0x25,
++  0x00, 0x96, 0x04, 0x00,  0x08, 0x82, 0x04, 0x00,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x82, 0x1C, 0x96,
++  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x8D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x0D, 0x52,
++  0x17, 0x99, 0x02, 0x00,  0xCD, 0xFF, 0x96, 0x02,  0x00, 0x08, 0x8D, 0x1C,  0x3E, 0x4F, 0x96, 0x02,
++  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x02, 0x00, 0x08,  0x8A, 0x9B, 0x0A, 0x00,  0x00, 0x01, 0x00, 0x6E,  0x61, 0x6D, 0x65, 0x00,
++  0x5C, 0x00, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x85, 0x4E, 0x12, 0x12,
++  0x9D, 0x02, 0x00, 0x12,  0x00, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x85,
++  0x07, 0x00, 0x00, 0x00,  0x00, 0x43, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
++  0x08, 0x85, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x87,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
++  0x02, 0x00, 0x08, 0x84,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x87, 0x1C, 0x4E,  0x96, 0x07, 0x00, 0x07,
++  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8E,  0x52, 0x4F, 0x4F, 0x96,
++  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,
++  0x4E, 0x96, 0x02, 0x00,  0x08, 0x8E, 0x9B, 0x0B,  0x00, 0x00, 0x01, 0x00,  0x73, 0x74, 0x79, 0x6C,
++  0x65, 0x00, 0x9D, 0x03,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x01,  0x00, 0x02, 0x49, 0x12,
++  0x9D, 0x02, 0x00, 0x05,  0x00, 0x96, 0x01, 0x00,  0x02, 0x3E, 0x96, 0x09,  0x00, 0x08, 0x8F, 0x07,
++  0x00, 0x00, 0x00, 0x00,  0x08, 0x7D, 0x40, 0x3C,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x90, 0x4E,  0x12, 0x9D, 0x02, 0x00,  0x15, 0x00, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,
++  0x96, 0x04, 0x00, 0x08,  0x91, 0x08, 0x89, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x90, 0x4E, 0x4F, 0x96,
++  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x92, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x93,
++  0x49, 0x9D, 0x02, 0x00,  0x2B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,  0x96, 0x02, 0x00, 0x08,
++  0x92, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x94, 0x49,  0x12, 0x9D, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,
++  0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x93, 0x05, 0x00, 0x4F,  0x99, 0x02, 0x00, 0x0E,
++  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x93,  0x05, 0x01, 0x4F, 0x96,
++  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x95, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x41,
++  0x00, 0x96, 0x04, 0x00,  0x08, 0x8C, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x95, 0x4E, 0x96,
++  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x96, 0x52,
++  0x3C, 0x96, 0x02, 0x00,  0x08, 0x8C, 0x1C, 0x96,  0x01, 0x00, 0x02, 0x49,  0x12, 0x12, 0x9D, 0x02,
++  0x00, 0x0F, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x95, 0x08, 0x8C,
++  0x1C, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x97, 0x08, 0x89, 0x1C,
++  0x96, 0x02, 0x00, 0x08,  0x97, 0x4E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
++  0x08, 0x98, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x26,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
++  0x04, 0x00, 0x08, 0x99,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x98,  0x4E, 0x96, 0x07, 0x00,
++  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x9A, 0x52, 0x4F, 0x96,
++  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x9B, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,
++  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x9C,  0x08, 0x89, 0x1C, 0x96,
++  0x02, 0x00, 0x08, 0x9B,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,
++  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x9E,  0x4E, 0x96, 0x02, 0x00,
++  0x08, 0x9F, 0x49, 0x9D,  0x02, 0x00, 0x2B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x9E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x94, 0x49, 0x12, 0x9D,  0x02, 0x00, 0x0E, 0x00,
++  0x96, 0x02, 0x00, 0x08,  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x9F, 0x05,  0x00, 0x4F, 0x99, 0x02,
++  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x9F, 0x05, 0x01,
++  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA0,  0x4E, 0x96, 0x02, 0x00,
++  0x08, 0xA1, 0x49, 0x9D,  0x02, 0x00, 0x4F, 0x00,  0x96, 0x02, 0x00, 0x08,  0x89, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0xA0, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xA2, 0x49, 0x9D, 0x02,  0x00, 0x25, 0x00, 0x96,
++  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0xA0, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
++  0x08, 0xA0, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x99,
++  0x02, 0x00, 0x0E, 0x00,  0x96, 0x02, 0x00, 0x08,  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xA0, 0x05,
++  0x00, 0x4F, 0x99, 0x02,  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,
++  0x08, 0xA0, 0x05, 0x01,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA3,
++  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x20, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,
++  0x08, 0xA3, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA3, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,
++  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
++  0x08, 0xA4, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
++  0x04, 0x00, 0x08, 0xA5,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA4,  0x4E, 0x96, 0x07, 0x00,
 +  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,
-   0x02, 0x00, 0x08, 0xA4,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x20, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
-   0x1C, 0x96, 0x04, 0x00,  0x08, 0xA5, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA4, 0x4E, 0x96,
++  0x02, 0x00, 0x08, 0xA6,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x20, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
++  0x1C, 0x96, 0x04, 0x00,  0x08, 0xA6, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA6, 0x4E, 0x96,
 +  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x89,
-   0x1C, 0x96, 0x02, 0x00,  0x08, 0xA6, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,  0x00, 0x96, 0x02, 0x00,
-   0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0xA6,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA6,
++  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA7, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x20,  0x00, 0x96, 0x02, 0x00,
++  0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0xA8,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA7,
 +  0x4E, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,  0x4F, 0x96, 0x02, 0x00,
-   0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA7,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x20, 0x00, 0x96,
-   0x02, 0x00, 0x08, 0x8F,  0x1C, 0x96, 0x04, 0x00,  0x08, 0xA8, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0xA7, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x4F, 0x96,
-   0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA9, 0x4E, 0x12,  0x9D, 0x02, 0x00, 0x3B,
-   0x00, 0x96, 0x04, 0x00,  0x08, 0x8C, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xA9, 0x4E, 0x96,
-   0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x9D, 0x3D, 0x3C, 0x96,  0x07, 0x00, 0x07, 0x00,
-   0x00, 0x00, 0x00, 0x08,  0x8C, 0x1C, 0x48, 0x12,  0x9D, 0x02, 0x00, 0x0F,  0x00, 0x96, 0x02, 0x00,
-   0x08, 0x8F, 0x1C, 0x96,  0x04, 0x00, 0x08, 0xAA,  0x08, 0x8C, 0x1C, 0x4F,  0x96, 0x02, 0x00, 0x08,
-   0x89, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xAB, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xAC, 0x49, 0x9D, 0x02,
-   0x00, 0x2B, 0x00, 0x96,  0x02, 0x00, 0x08, 0x89,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xAB, 0x4E, 0x96,
-   0x02, 0x00, 0x08, 0xAD,  0x49, 0x12, 0x9D, 0x02,  0x00, 0x0E, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
-   0x1C, 0x96, 0x04, 0x00,  0x08, 0xAC, 0x05, 0x00,  0x4F, 0x99, 0x02, 0x00,  0x0E, 0x00, 0x96, 0x02,
-   0x00, 0x08, 0x8F, 0x1C,  0x96, 0x04, 0x00, 0x08,  0xAC, 0x05, 0x01, 0x4F,  0x96, 0x02, 0x00, 0x08,
-   0x8F, 0x1C, 0x3E, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xAE, 0x9B,  0x09, 0x00, 0x00, 0x01,
-   0x00, 0x63, 0x73, 0x73,  0x00, 0xC8, 0x00, 0x96,  0x04, 0x00, 0x08, 0xB1,  0x08, 0xAF, 0x1C, 0x96,
-   0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0xB0, 0x52,
-   0x3C, 0x96, 0x02, 0x00,  0x08, 0xB1, 0x1C, 0x44,  0x96, 0x02, 0x00, 0x08,  0xB2, 0x49, 0x12, 0x9D,
-   0x02, 0x00, 0x06, 0x00,  0x96, 0x02, 0x00, 0x05,  0x00, 0x3E, 0x96, 0x02,  0x00, 0x08, 0x09, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x84, 0x4E, 0x12, 0x12,  0x9D, 0x02, 0x00, 0x12,  0x00, 0x96, 0x02, 0x00,
-   0x08, 0x09, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x84,  0x07, 0x00, 0x00, 0x00,  0x00, 0x43, 0x4F, 0x96,
-   0x02, 0x00, 0x08, 0xB1,  0x46, 0x87, 0x01, 0x00,  0x00, 0x96, 0x01, 0x00,  0x02, 0x49, 0x9D, 0x02,
-   0x00, 0x56, 0x00, 0x96,  0x04, 0x00, 0x08, 0x82,  0x04, 0x00, 0x3C, 0x96,  0x02, 0x00, 0x08, 0x09,
-   0x1C, 0x96, 0x02, 0x00,  0x08, 0x84, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x82,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0xB1, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x82,  0x1C, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
-   0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7F, 0x52, 0x4F,  0x96, 0x02, 0x00, 0x08,
-   0x82, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0x8A, 0x52, 0x17,  0x99, 0x02, 0x00, 0x9C,  0xFF, 0x96, 0x02, 0x00,  0x05, 0x01, 0x3E, 0x4F,
-   0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x04,  0x00, 0x08, 0xB3, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,
-   0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xAE, 0x4E,  0x4F, 0x96, 0x02, 0x00,
-   0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,
-   0x13, 0x00, 0x08, 0x33,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x2D, 0x01,  0x00, 0x00, 0x07, 0x02,
-   0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x35, 0x9B, 0x05,
-   0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,  0x1C, 0x96, 0x02, 0x00,
-   0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x36, 0x9B, 0x09,
-   0x00, 0x00, 0x01, 0x00,  0x73, 0x72, 0x63, 0x00,  0x6B, 0x00, 0x96, 0x02,  0x00, 0x08, 0x38, 0x1C,
-   0x96, 0x01, 0x00, 0x02,  0x49, 0x12, 0x9D, 0x02,  0x00, 0x19, 0x00, 0x96,  0x09, 0x00, 0x05, 0x00,
-   0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x35, 0x52, 0x17, 0x99,
-   0x02, 0x00, 0x41, 0x00,  0x96, 0x04, 0x00, 0x08,  0xB1, 0x08, 0x38, 0x1C,  0x96, 0x07, 0x00, 0x07,
-   0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xB3,  0x52, 0x3C, 0x96, 0x02,
-   0x00, 0x08, 0x09, 0x1C,  0x96, 0x04, 0x00, 0x08,  0x37, 0x08, 0xB1, 0x1C,  0x4F, 0x96, 0x02, 0x00,
-   0x08, 0xB1, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
-   0x00, 0x08, 0x35, 0x52,  0x17, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,
-   0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,  0xB0, 0x07, 0x65, 0x00,
-   0x00, 0x00, 0x07, 0x71,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-   0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,
-   0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x9A, 0x07,  0x66, 0x00, 0x00, 0x00,  0x07, 0x71, 0x00, 0x00,
-   0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x13, 0x00, 0x08,
-   0x96, 0x07, 0x67, 0x00,  0x00, 0x00, 0x07, 0x71,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
-   0x08, 0x01, 0x3D, 0x4F,  0x96, 0x08, 0x00, 0x07,  0x03, 0x04, 0x00, 0x00,  0x02, 0x08, 0x79, 0x1C,
-   0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,  0x96, 0x07, 0x00, 0x07,
-   0x03, 0x00, 0x00, 0x00,  0x08, 0x05, 0x3D, 0x17,  0x96, 0x09, 0x00, 0x07,  0x03, 0x04, 0x00, 0x00,
-   0x08, 0x7E, 0x08, 0x79,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x05, 0x3D,
-   0x17, 0x96, 0x13, 0x00,  0x08, 0xB4, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0xFA, 0x00, 0x00, 0x00,
-   0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0xB5, 0x07, 0x01,
-   0x00, 0x00, 0x00, 0x07,  0xFA, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
-   0x1D, 0x96, 0x13, 0x00,  0x08, 0xB6, 0x07, 0x02,  0x00, 0x00, 0x00, 0x07,  0xFA, 0x00, 0x00, 0x00,
-   0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x04, 0x00,  0x08, 0xB7, 0x08, 0xB5,
-   0x1C, 0x1D, 0x96, 0x03,  0x00, 0x08, 0x13, 0x02,  0x1D, 0x96, 0x0D, 0x00,  0x07, 0x06, 0x00, 0x00,
-   0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x02, 0x08,  0x09, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,
-   0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x00
++  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA9,  0x4E, 0x12, 0x9D, 0x02,  0x00, 0x3B, 0x00, 0x96,
++  0x04, 0x00, 0x08, 0x8C,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xA9,  0x4E, 0x96, 0x07, 0x00,
++  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x9D, 0x3D,  0x3C, 0x96, 0x07, 0x00,  0x07, 0x00, 0x00, 0x00,
++  0x00, 0x08, 0x8C, 0x1C,  0x48, 0x12, 0x9D, 0x02,  0x00, 0x0F, 0x00, 0x96,  0x02, 0x00, 0x08, 0x8F,
++  0x1C, 0x96, 0x04, 0x00,  0x08, 0xAA, 0x08, 0x8C,  0x1C, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x89, 0x1C,
++  0x96, 0x02, 0x00, 0x08,  0xAB, 0x4E, 0x96, 0x02,  0x00, 0x08, 0xAC, 0x49,  0x9D, 0x02, 0x00, 0x2B,
++  0x00, 0x96, 0x02, 0x00,  0x08, 0x89, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xAB,  0x4E, 0x96, 0x02, 0x00,
++  0x08, 0xAD, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x0E,  0x00, 0x96, 0x02, 0x00,  0x08, 0x8F, 0x1C, 0x96,
++  0x04, 0x00, 0x08, 0xAC,  0x05, 0x00, 0x4F, 0x99,  0x02, 0x00, 0x0E, 0x00,  0x96, 0x02, 0x00, 0x08,
++  0x8F, 0x1C, 0x96, 0x04,  0x00, 0x08, 0xAC, 0x05,  0x01, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x8F, 0x1C,
++  0x3E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xAE, 0x9B, 0x09, 0x00,  0x00, 0x01, 0x00, 0x63,
++  0x73, 0x73, 0x00, 0xC8,  0x00, 0x96, 0x04, 0x00,  0x08, 0xB1, 0x08, 0xAF,  0x1C, 0x96, 0x07, 0x00,
++  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0xB0, 0x52, 0x3C, 0x96,
++  0x02, 0x00, 0x08, 0xB1,  0x1C, 0x44, 0x96, 0x02,  0x00, 0x08, 0xB2, 0x49,  0x12, 0x9D, 0x02, 0x00,
++  0x06, 0x00, 0x96, 0x02,  0x00, 0x05, 0x00, 0x3E,  0x96, 0x02, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x84, 0x4E,  0x12, 0x12, 0x9D, 0x02,  0x00, 0x12, 0x00, 0x96,  0x02, 0x00, 0x08, 0x09,
++  0x1C, 0x96, 0x07, 0x00,  0x08, 0x84, 0x07, 0x00,  0x00, 0x00, 0x00, 0x43,  0x4F, 0x96, 0x02, 0x00,
++  0x08, 0xB1, 0x46, 0x87,  0x01, 0x00, 0x00, 0x96,  0x01, 0x00, 0x02, 0x49,  0x9D, 0x02, 0x00, 0x56,
++  0x00, 0x96, 0x04, 0x00,  0x08, 0x82, 0x04, 0x00,  0x3C, 0x96, 0x02, 0x00,  0x08, 0x09, 0x1C, 0x96,
++  0x02, 0x00, 0x08, 0x84,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x82, 0x1C, 0x96,  0x02, 0x00, 0x08, 0xB1,
++  0x1C, 0x96, 0x02, 0x00,  0x08, 0x82, 0x1C, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,
++  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7F,  0x52, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x82, 0x1C,
++  0x96, 0x07, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x08, 0x09, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x8A,
++  0x52, 0x17, 0x99, 0x02,  0x00, 0x9C, 0xFF, 0x96,  0x02, 0x00, 0x05, 0x01,  0x3E, 0x4F, 0x96, 0x02,
++  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x04, 0x00, 0x08,  0xB3, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,
++  0x00, 0x08, 0x30, 0x4E,  0x96, 0x02, 0x00, 0x08,  0xAE, 0x4E, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x79,
++  0x1C, 0x96, 0x02, 0x00,  0x08, 0x7E, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x30,  0x4E, 0x96, 0x13, 0x00,
++  0x08, 0x33, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0x2D, 0x01, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
++  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
++  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x35,  0x9B, 0x05, 0x00, 0x00,
++  0x00, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x79, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x7E,
++  0x4E, 0x96, 0x02, 0x00,  0x08, 0x30, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x36,  0x9B, 0x09, 0x00, 0x00,
++  0x01, 0x00, 0x73, 0x72,  0x63, 0x00, 0x6B, 0x00,  0x96, 0x02, 0x00, 0x08,  0x38, 0x1C, 0x96, 0x01,
++  0x00, 0x02, 0x49, 0x12,  0x9D, 0x02, 0x00, 0x19,  0x00, 0x96, 0x09, 0x00,  0x05, 0x00, 0x07, 0x01,
++  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x35, 0x52,  0x17, 0x99, 0x02, 0x00,
++  0x41, 0x00, 0x96, 0x04,  0x00, 0x08, 0xB1, 0x08,  0x38, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x01, 0x00,
++  0x00, 0x00, 0x08, 0x09,  0x1C, 0x96, 0x02, 0x00,  0x08, 0xB3, 0x52, 0x3C,  0x96, 0x02, 0x00, 0x08,
++  0x09, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x37, 0x08,  0xB1, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0xB1,
++  0x1C, 0x96, 0x07, 0x00,  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,
++  0x35, 0x52, 0x17, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x7E, 0x4E,
++  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0xB0, 0x07,  0x65, 0x00, 0x00, 0x00,
++  0x07, 0x71, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x02,
++  0x00, 0x08, 0x79, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x7E, 0x4E, 0x96, 0x02,  0x00, 0x08, 0x30, 0x4E,
++  0x96, 0x13, 0x00, 0x08,  0x9A, 0x07, 0x66, 0x00,  0x00, 0x00, 0x07, 0x71,  0x00, 0x00, 0x00, 0x07,
++  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x79, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x13,  0x00, 0x08, 0x96, 0x07,
++  0x67, 0x00, 0x00, 0x00,  0x07, 0x71, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
++  0x3D, 0x4F, 0x96, 0x08,  0x00, 0x07, 0x03, 0x04,  0x00, 0x00, 0x02, 0x08,  0x79, 0x1C, 0x96, 0x02,
++  0x00, 0x08, 0x7E, 0x4E,  0x96, 0x02, 0x00, 0x08,  0x30, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
++  0x00, 0x00, 0x08, 0x05,  0x3D, 0x17, 0x96, 0x09,  0x00, 0x07, 0x03, 0x04,  0x00, 0x00, 0x08, 0x7E,
++  0x08, 0x79, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x05, 0x3D, 0x17, 0x96,
++  0x13, 0x00, 0x08, 0xB4,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0xFA, 0x00,  0x00, 0x00, 0x07, 0x02,
++  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0xB5,  0x07, 0x01, 0x00, 0x00,
++  0x00, 0x07, 0xFA, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,
++  0x13, 0x00, 0x08, 0xB6,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0xFA, 0x00,  0x00, 0x00, 0x07, 0x02,
++  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x04, 0x00, 0x08, 0xB7,  0x08, 0xB5, 0x1C, 0x1D,
++  0x96, 0x03, 0x00, 0x08,  0x13, 0x02, 0x1D, 0x96,  0x0D, 0x00, 0x07, 0x06,  0x00, 0x00, 0x00, 0x07,
++  0x01, 0x00, 0x00, 0x00,  0x02, 0x08, 0x09, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x04, 0x00, 0x00, 0x00,
++  0x08, 0x05, 0x3D, 0x17,  0x00
  };
  
diff-tree 5bd4a248279cf4d905d39d66b985477939ad7859 (from 9542a905aae401da5667b41fe9dd1c72093b961c)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 02:33:13 2007 +0300

    Fix scaling of tabStops units in TextField

diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 241829f..6276167 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -91,7 +91,7 @@ swfdec_text_paragraph_add_block_attribut
     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));
+	SWFDEC_AS_VALUE_GET_NUMBER (&val) * 20);
   }
 
   paragraph->blocks = g_list_append (paragraph->blocks, block);
diff-tree 9542a905aae401da5667b41fe9dd1c72093b961c (from afd138a8056f50c386060bc011c24db4264b7110)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Oct 11 00:00:27 2007 +0300

    Remove the removing of trailing spaces in TextField since it didn't work right

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 03b015b..7950cfc 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -109,7 +109,7 @@ swfdec_edit_text_render (SwfdecEditText 
     for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
     {
       int height, width;
-      guint length, trailing_space;
+      guint length;
       SwfdecBlock *block;
       PangoAttrList *attr_list;
 
@@ -200,13 +200,8 @@ swfdec_edit_text_render (SwfdecEditText 
       pango_attr_list_unref (attr_list);
       attr_list = NULL;
 
-      trailing_space = 0;
-      while (g_ascii_isspace (*(paragraphs[i].text +
-	      paragraphs[i].text_length - trailing_space - 1))) {
-	  trailing_space++;
-      }
       pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
-	  paragraphs[i].text_length - block->index_ - skip - trailing_space);
+	  paragraphs[i].text_length - block->index_ - skip);
 
       if (iter->next != NULL)
       {
@@ -218,19 +213,9 @@ swfdec_edit_text_render (SwfdecEditText 
 	    NULL);
 	line = pango_layout_get_line_readonly (layout, line_num);
 	skip_new = line->start_index + line->length - (length - skip);
-	if ((guint)(line->start_index + line->length) ==
-	    paragraphs[i].text_length - block->index_ - skip) {
-	  skip_new += trailing_space;
-	} else {
-	  trailing_space = 0;
-	  while (g_ascii_isspace (*(paragraphs[i].text + block->index_ + skip +
-		  (length - skip + skip_new) - trailing_space - 1))) {
-	      trailing_space++;
-	  }
-	}
 	pango_layout_set_text (layout,
 	    paragraphs[i].text + block->index_ + skip,
-	    length - skip + skip_new - trailing_space);
+	    length - skip + skip_new);
 	skip = skip_new;
       }
       else
diff-tree afd138a8056f50c386060bc011c24db4264b7110 (from db84d1ca8f7e91c6cacefd8a5ec821a76bdb90be)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Oct 10 23:57:11 2007 +0300

    Don't allow smaller fontsizes than 1 in TextField

diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index d124972..241829f 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -158,7 +158,8 @@ swfdec_edit_text_movie_generate_paragrap
       format->letter_spacing * 20 * PANGO_SCALE); // FIXME: correct scaling?
   attr_letter_spacing->start_index = 0;
 
-  attr_size = pango_attr_size_new_absolute (format->size * 20 * PANGO_SCALE);
+  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 (
@@ -240,7 +241,7 @@ swfdec_edit_text_movie_generate_paragrap
       swfdec_text_paragraph_add_attribute (paragraph, attr_size);
 
       attr_size =
-	pango_attr_size_new_absolute (format->size * 20 * PANGO_SCALE);
+	pango_attr_size_new_absolute (MAX (1, format->size) * 20 * PANGO_SCALE);
       attr_size->start_index = index_ - start_index;
     }
 
diff-tree db84d1ca8f7e91c6cacefd8a5ec821a76bdb90be (from f60d68fe3354e7686d2cfb781d10137bdc9299ee)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Oct 10 23:50:09 2007 +0300

    Support indent and leading correctly in TextField

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 0946292..03b015b 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -132,21 +132,31 @@ swfdec_edit_text_render (SwfdecEditText 
 	SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
 	block->right_margin - block->block_indent;
 
+      if (block->index_ == 0 && paragraphs[i].indent < 0) {
+	cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
+	width += -paragraphs[i].indent / PANGO_SCALE;
+      }
+
       pango_cairo_update_layout (cr, layout);
       pango_layout_context_changed (layout);
       pango_layout_set_width (layout, width * PANGO_SCALE);
 
       // set paragraph styles
+      if (block->index_ == 0) {
+	pango_layout_set_indent (layout, paragraphs[i].indent);
+	// TODO: bullet
+      } else {
+	pango_layout_set_indent (layout, 0);
+      }
+
+      // set block styles
       pango_layout_set_alignment (layout, block->align);
       pango_layout_set_justify (layout, block->justify);
-      pango_layout_set_indent (layout, block->indent);
       pango_layout_set_spacing (layout, block->leading);
       pango_layout_set_tabs (layout, block->tab_stops);
-      // TODO: bullet
 
       // set text attributes
-      if (block->index_ + skip > 0 ||
-	  !swfdec_color_transform_is_identity (trans))
+      if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
       {
 	GList *iter_attrs;
 
@@ -208,7 +218,7 @@ swfdec_edit_text_render (SwfdecEditText 
 	    NULL);
 	line = pango_layout_get_line_readonly (layout, line_num);
 	skip_new = line->start_index + line->length - (length - skip);
-	if (line->start_index + line->length ==
+	if ((guint)(line->start_index + line->length) ==
 	    paragraphs[i].text_length - block->index_ - skip) {
 	  skip_new += trailing_space;
 	} else {
@@ -232,7 +242,9 @@ swfdec_edit_text_render (SwfdecEditText 
 
       pango_layout_get_pixel_size (layout, NULL, &height);
       cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
-	  height);
+	  height + block->leading / PANGO_SCALE);
+      if (block->index_ == 0 && paragraphs[i].indent < 0)
+	cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
     }
   }
 
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 3b21d10..1d8f7e5 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -43,8 +43,6 @@ typedef struct {
 
   PangoAlignment	align;
   gboolean		justify;
-  gboolean		bullet;
-  int			indent;
   int			leading;
   int			block_indent;
   int			left_margin;
@@ -56,6 +54,9 @@ typedef struct {
   const char		*text;
   guint			text_length;
 
+  gboolean		bullet;
+  int			indent;
+
   GList *		blocks;		// SwfdecBlock
 
   GList *		attrs;	// PangoAttribute
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 4eaaa76..d124972 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -80,8 +80,6 @@ swfdec_text_paragraph_add_block_attribut
       block->justify = TRUE;
       break;
   }
-  block->bullet = format->bullet;
-  block->indent = format->indent * 20;
   block->leading = format->leading * 20 * PANGO_SCALE;
   block->block_indent = format->block_indent * 20;
   block->left_margin = format->left_margin * 20;
@@ -130,6 +128,10 @@ swfdec_edit_text_movie_generate_paragrap
   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_attributes (paragraph, 0, format);
 
diff-tree f60d68fe3354e7686d2cfb781d10137bdc9299ee (from 70f2d6114399d0ef3cad61f25a334e869c67ac98)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Oct 10 23:24:53 2007 +0300

    Don't render trailing space in TextField

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index c150b4a..0946292 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -109,7 +109,7 @@ swfdec_edit_text_render (SwfdecEditText 
     for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
     {
       int height, width;
-      guint length;
+      guint length, trailing_space;
       SwfdecBlock *block;
       PangoAttrList *attr_list;
 
@@ -190,8 +190,13 @@ swfdec_edit_text_render (SwfdecEditText 
       pango_attr_list_unref (attr_list);
       attr_list = NULL;
 
+      trailing_space = 0;
+      while (g_ascii_isspace (*(paragraphs[i].text +
+	      paragraphs[i].text_length - trailing_space - 1))) {
+	  trailing_space++;
+      }
       pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
-	  paragraphs[i].text_length - block->index_ - skip);
+	  paragraphs[i].text_length - block->index_ - skip - trailing_space);
 
       if (iter->next != NULL)
       {
@@ -203,9 +208,19 @@ swfdec_edit_text_render (SwfdecEditText 
 	    NULL);
 	line = pango_layout_get_line_readonly (layout, line_num);
 	skip_new = line->start_index + line->length - (length - skip);
+	if (line->start_index + line->length ==
+	    paragraphs[i].text_length - block->index_ - skip) {
+	  skip_new += trailing_space;
+	} else {
+	  trailing_space = 0;
+	  while (g_ascii_isspace (*(paragraphs[i].text + block->index_ + skip +
+		  (length - skip + skip_new) - trailing_space - 1))) {
+	      trailing_space++;
+	  }
+	}
 	pango_layout_set_text (layout,
 	    paragraphs[i].text + block->index_ + skip,
-	    length - skip + skip_new);
+	    length - skip + skip_new - trailing_space);
 	skip = skip_new;
       }
       else
diff-tree 70f2d6114399d0ef3cad61f25a334e869c67ac98 (from 63c5d9d5f171aee080d1c3600f4b0e802c3a4d0f)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Oct 10 22:53:12 2007 +0300

    Fix setting of colors in TextField and apply color transforms

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 77de576..c150b4a 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -88,7 +88,6 @@ swfdec_edit_text_render (SwfdecEditText 
 {
   PangoLayout *layout;
   guint i;
-  //SwfdecColor color;
 
   g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
   g_return_if_fail (cr != NULL);
@@ -99,16 +98,12 @@ swfdec_edit_text_render (SwfdecEditText 
   cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
       SWFDEC_GRAPHIC (text)->extents.y0);
 
-  /*color = swfdec_color_apply_transform (text->color, trans);
-  swfdec_color_set_source (cr, color);*/
-
   layout = pango_cairo_create_layout (cr);
 
   for (i = 0; paragraphs[i].text != NULL; i++)
   {
     GList *iter;
     guint skip;
-    int block_num = 0;
 
     skip = 0;
     for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
@@ -150,7 +145,9 @@ swfdec_edit_text_render (SwfdecEditText 
       // TODO: bullet
 
       // set text attributes
-      if (block->index_ + skip > 0) {
+      if (block->index_ + skip > 0 ||
+	  !swfdec_color_transform_is_identity (trans))
+      {
 	GList *iter_attrs;
 
 	attr_list = pango_attr_list_new ();
@@ -166,9 +163,24 @@ swfdec_edit_text_render (SwfdecEditText 
 	    continue;
 
 	  attr = pango_attribute_copy (attr);
+	  if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
+	      !swfdec_color_transform_is_identity (trans))
+	  {
+	    PangoColor pcolor;
+	    SwfdecColor color;
+
+	    pcolor = ((PangoAttrColor *)attr)->color;
+	    color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
+		pcolor.blue >> 8, 255);
+	    color = swfdec_color_apply_transform (color, trans);
+	    pcolor.red = SWFDEC_COLOR_R (color) << 8;
+	    pcolor.green = SWFDEC_COLOR_G (color) << 8;
+	    pcolor.blue = SWFDEC_COLOR_B (color) << 8;
+	    ((PangoAttrColor *)attr)->color = pcolor;
+	  }
 	  attr->start_index = (attr->start_index > block->index_ + skip ?
-	      attr->start_index - block->index_ + skip : 0);
-	  attr->end_index = attr->end_index - block->index_ + skip;
+	      attr->start_index - (block->index_ + skip) : 0);
+	  attr->end_index = attr->end_index - (block->index_ + skip);
 	  pango_attr_list_insert (attr_list, attr);
 	}
       } else {
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index dd9484a..4eaaa76 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -138,8 +138,9 @@ swfdec_edit_text_movie_generate_paragrap
       (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
   attr_bold->start_index = 0;
 
-  attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color),
-      SWFDEC_COLOR_G (format->color), SWFDEC_COLOR_B (format->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 = 0;
 
   if (text->text->embed_fonts)
@@ -196,8 +197,10 @@ swfdec_edit_text_movie_generate_paragrap
       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),
-	  SWFDEC_COLOR_G (format->color), SWFDEC_COLOR_B (format->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;
     }
 
diff-tree 63c5d9d5f171aee080d1c3600f4b0e802c3a4d0f (from ab9704c5e59616aefc727d7e1bb91104b5e93375)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Oct 10 21:21:54 2007 +0300

    Rewrite some of TextField's rendering code again

diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index f8527d5..77de576 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -83,20 +83,16 @@ swfdec_edit_text_init (SwfdecEditText * 
 
 void
 swfdec_edit_text_render (SwfdecEditText *text, cairo_t *cr,
-    const SwfdecTextRenderBlock *blocks, const SwfdecColorTransform *trans,
+    const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
     const SwfdecRect *inval)
 {
-  guint i, j;
   PangoLayout *layout;
-  PangoAttrList *attrs;
-  guint width;
-  int height, extra_chars, line_num;
-  PangoLayoutLine *line;
+  guint i;
   //SwfdecColor color;
 
   g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
   g_return_if_fail (cr != NULL);
-  g_return_if_fail (blocks != NULL);
+  g_return_if_fail (paragraphs != NULL);
   g_return_if_fail (trans != NULL);
   g_return_if_fail (inval != NULL);
 
@@ -108,57 +104,109 @@ swfdec_edit_text_render (SwfdecEditText 
 
   layout = pango_cairo_create_layout (cr);
 
-  extra_chars = 0;
-  for (i = 0; blocks[i].text != NULL; i++) {
-    cairo_rel_move_to (cr, blocks[i].left_margin + blocks[i].block_indent, 0);
-    width = SWFDEC_GRAPHIC (text)->extents.x1 -
-      SWFDEC_GRAPHIC (text)->extents.x0 - blocks[i].left_margin -
-      blocks[i].right_margin - blocks[i].block_indent;
-
-    pango_cairo_update_layout (cr, layout);
-    pango_layout_set_width (layout, width * PANGO_SCALE);
-
-    // TODO: bullet
-
-    pango_layout_set_alignment (layout, blocks[i].align);
-    pango_layout_set_justify (layout, blocks[i].justify);
-    pango_layout_set_indent (layout, blocks[i].indent);
-    pango_layout_set_spacing (layout, blocks[i].leading);
-    pango_layout_set_tabs (layout, blocks[i].tab_stops);
-
-    if (!blocks[i].end_paragraph) {
-      int prev_extra_chars = extra_chars;
-      extra_chars = 0;
-      attrs = pango_attr_list_copy (blocks[i].attrs);
-      for (j = i + 1; blocks[j].text != NULL && !blocks[j-1].end_paragraph; j++)
+  for (i = 0; paragraphs[i].text != NULL; i++)
+  {
+    GList *iter;
+    guint skip;
+    int block_num = 0;
+
+    skip = 0;
+    for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
+    {
+      int height, width;
+      guint length;
+      SwfdecBlock *block;
+      PangoAttrList *attr_list;
+
+      block = (SwfdecBlock *)iter->data;
+      if (iter->next != NULL) {
+	length =
+	  ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
+      } else {
+	length = paragraphs[i].text_length - block->index_;
+      }
+
+      if (skip > length) {
+	skip -= length;
+	continue;
+      }
+
+      // update position
+      cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
+      width = SWFDEC_GRAPHIC (text)->extents.x1 -
+	SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
+	block->right_margin - block->block_indent;
+
+      pango_cairo_update_layout (cr, layout);
+      pango_layout_context_changed (layout);
+      pango_layout_set_width (layout, width * PANGO_SCALE);
+
+      // set paragraph styles
+      pango_layout_set_alignment (layout, block->align);
+      pango_layout_set_justify (layout, block->justify);
+      pango_layout_set_indent (layout, block->indent);
+      pango_layout_set_spacing (layout, block->leading);
+      pango_layout_set_tabs (layout, block->tab_stops);
+      // TODO: bullet
+
+      // set text attributes
+      if (block->index_ + skip > 0) {
+	GList *iter_attrs;
+
+	attr_list = pango_attr_list_new ();
+
+	for (iter_attrs = paragraphs[i].attrs; iter_attrs != NULL;
+	    iter_attrs = iter_attrs->next)
+	{
+	  PangoAttribute *attr;
+
+	  attr = (PangoAttribute *)iter_attrs->data;
+
+	  if (attr->end_index <= block->index_ + skip)
+	    continue;
+
+	  attr = pango_attribute_copy (attr);
+	  attr->start_index = (attr->start_index > block->index_ + skip ?
+	      attr->start_index - block->index_ + skip : 0);
+	  attr->end_index = attr->end_index - block->index_ + skip;
+	  pango_attr_list_insert (attr_list, attr);
+	}
+      } else {
+	attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
+      }
+      pango_layout_set_attributes (layout, attr_list);
+      pango_attr_list_unref (attr_list);
+      attr_list = NULL;
+
+      pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
+	  paragraphs[i].text_length - block->index_ - skip);
+
+      if (iter->next != NULL)
       {
-	pango_attr_list_splice (attrs, blocks[j].attrs,
-	    blocks[i].text_length + extra_chars, blocks[j].text_length);
-	extra_chars += blocks[j].text_length;
+	PangoLayoutLine *line;
+	int line_num;
+	guint skip_new;
+
+	pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
+	    NULL);
+	line = pango_layout_get_line_readonly (layout, line_num);
+	skip_new = line->start_index + line->length - (length - skip);
+	pango_layout_set_text (layout,
+	    paragraphs[i].text + block->index_ + skip,
+	    length - skip + skip_new);
+	skip = skip_new;
+      }
+      else
+      {
+	skip = 0;
       }
-      pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
-	  blocks[i].text_length + extra_chars - prev_extra_chars);
-      pango_layout_set_attributes (layout, attrs);
-      pango_attr_list_unref (attrs);
-      attrs = NULL;
-
-      pango_layout_index_to_line_x (layout,
-	  blocks[i].text_length - prev_extra_chars, FALSE, &line_num, NULL);
-      line = pango_layout_get_line_readonly (layout, line_num);
-      extra_chars = line->start_index + line->length - (blocks[i].text_length - prev_extra_chars);
-      pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
-	  blocks[i].text_length + extra_chars - prev_extra_chars);
-    } else {
-      pango_layout_set_text (layout, blocks[i].text + extra_chars, blocks[i].text_length - extra_chars);
-      pango_layout_set_attributes (layout, blocks[i].attrs);
-      extra_chars = 0;
-    }
 
-    pango_cairo_show_layout (cr, layout);
+      pango_cairo_show_layout (cr, layout);
 
-    pango_layout_get_pixel_size (layout, NULL, &height);
-    cairo_rel_move_to (cr, -(blocks[i].left_margin + blocks[i].block_indent),
-	height);
+      pango_layout_get_pixel_size (layout, NULL, &height);
+      cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
+	  height);
+    }
   }
 
   g_object_unref (layout);
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 1419979..3b21d10 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -39,10 +39,7 @@ typedef struct _SwfdecEditTextClass Swfd
 #define SWFDEC_EDIT_TEXT_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_EDIT_TEXT, SwfdecEditTextClass))
 
 typedef struct {
-  const char		*text;
-  int			text_length;
-
-  gboolean		end_paragraph;
+  guint			index_;
 
   PangoAlignment	align;
   gboolean		justify;
@@ -53,9 +50,17 @@ typedef struct {
   int			left_margin;
   int			right_margin;
   PangoTabArray *	tab_stops;
+} SwfdecBlock;
+
+typedef struct {
+  const char		*text;
+  guint			text_length;
+
+  GList *		blocks;		// SwfdecBlock
 
-  PangoAttrList *	attrs;
-} SwfdecTextRenderBlock;
+  GList *		attrs;	// PangoAttribute
+  PangoAttrList *	attrs_list;
+} SwfdecParagraph;
 
 typedef enum {
   SWFDEC_AUTO_SIZE_NONE,
@@ -108,7 +113,7 @@ int			tag_func_define_edit_text	(SwfdecS
 
 void			swfdec_edit_text_render		(SwfdecEditText *	text,
 							 cairo_t *		cr,
-							 const SwfdecTextRenderBlock *	blocks,
+							 const SwfdecParagraph *	paragraphs,
 							 const SwfdecColorTransform *	trans,
 							 const SwfdecRect *		rect);
 
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 0f21a26..dd9484a 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -42,33 +42,25 @@ swfdec_edit_text_movie_update_extents (S
 }
 
 static void
-swfdec_edit_text_movie_generate_render_block (SwfdecEditTextMovie *text,
-    SwfdecTextRenderBlock *block, guint start_index, guint end_index)
+swfdec_text_paragraph_add_attribute (SwfdecParagraph *paragraph,
+    PangoAttribute *attr)
+{
+  paragraph->attrs = g_list_append (paragraph->attrs,
+      pango_attribute_copy (attr));
+  pango_attr_list_insert (paragraph->attrs_list, attr);
+}
+
+static void
+swfdec_text_paragraph_add_block_attributes (SwfdecParagraph *paragraph,
+    int index_, SwfdecTextFormat *format)
 {
-  SwfdecTextFormat *format, *format_prev;
-  guint index_;
-  GSList *iter;
   gint32 length, i;
+  SwfdecBlock *block;
   SwfdecAsValue val;
-  PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
-		 *attr_letter_spacing, *attr_size, *attr_underline;
-  // TODO: kerning
-
-  g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
-  g_assert (block != NULL);
-  g_assert (start_index < end_index);
-  g_assert (end_index <= strlen (text->text_display));
 
-  block->text = text->text_display + start_index;
-  block->text_length = end_index - start_index;
+  block = g_new0 (SwfdecBlock, 1);
 
-  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;
+  block->index_ = index_;
 
   switch (format->align) {
     case SWFDEC_TEXT_ALIGN_LEFT:
@@ -104,7 +96,42 @@ swfdec_edit_text_movie_generate_render_b
 	SWFDEC_AS_VALUE_GET_NUMBER (&val));
   }
 
-  block->attrs = pango_attr_list_new ();
+  paragraph->blocks = g_list_append (paragraph->blocks, block);
+}
+
+static void
+swfdec_edit_text_movie_generate_paragraph (SwfdecEditTextMovie *text,
+    SwfdecParagraph *paragraph, guint start_index, guint end_index)
+{
+  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
+
+  g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+  g_assert (paragraph != NULL);
+  g_assert (start_index < end_index);
+  g_assert (end_index <= strlen (text->text_display));
+
+  paragraph->text = text->text_display + start_index;
+  paragraph->text_length = end_index - start_index;
+
+  paragraph->blocks = NULL;
+  paragraph->attrs = NULL;
+  paragraph->attrs_list = pango_attr_list_new ();
+
+  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;
+
+  // Add new block
+  swfdec_text_paragraph_add_block_attributes (paragraph, 0, format);
 
   // Open attributes
   attr_bold = pango_attr_weight_new (
@@ -143,10 +170,22 @@ swfdec_edit_text_movie_generate_render_b
     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_attributes (paragraph,
+	  index_ - start_index, format);
+    }
+
     // Change attributes if necessary
     if (format_prev->bold != format->bold) {
       attr_bold->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_bold);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
 
       attr_bold = pango_attr_weight_new (
 	  (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
@@ -155,7 +194,7 @@ swfdec_edit_text_movie_generate_render_b
 
     if (format_prev->color != format->color) {
       attr_color->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_color);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_color);
 
       attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color),
 	  SWFDEC_COLOR_G (format->color), SWFDEC_COLOR_B (format->color));
@@ -164,7 +203,7 @@ swfdec_edit_text_movie_generate_render_b
 
     if (format_prev->font != format->font) {
       attr_font->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_font);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_font);
 
       if (text->text->embed_fonts)
 	SWFDEC_FIXME ("Using embed fonts in TextField not supported");
@@ -174,7 +213,7 @@ swfdec_edit_text_movie_generate_render_b
 
     if (format_prev->italic != format->italic) {
       attr_italic->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_italic);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
 
       attr_italic = pango_attr_style_new (
 	  (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
@@ -183,7 +222,7 @@ swfdec_edit_text_movie_generate_render_b
 
     if (format_prev->letter_spacing != format->letter_spacing) {
       attr_letter_spacing->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_letter_spacing);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
 
       // FIXME: correct scaling?
       attr_letter_spacing = pango_attr_letter_spacing_new (
@@ -193,7 +232,7 @@ swfdec_edit_text_movie_generate_render_b
 
     if (format_prev->size != format->size) {
       attr_size->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_size);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_size);
 
       attr_size =
 	pango_attr_size_new_absolute (format->size * 20 * PANGO_SCALE);
@@ -202,7 +241,7 @@ swfdec_edit_text_movie_generate_render_b
 
     if (format_prev->underline != format->underline) {
       attr_underline->end_index = index_ - start_index;
-      pango_attr_list_insert (block->attrs, attr_underline);
+      swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
 
       attr_underline = pango_attr_underline_new (
 	  (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
@@ -212,83 +251,53 @@ swfdec_edit_text_movie_generate_render_b
 
   // Close attributes
   attr_bold->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_bold);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
   attr_bold = NULL;
 
   attr_color->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_color);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_color);
   attr_color = NULL;
 
   attr_font->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_font);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_font);
   attr_font = NULL;
 
   attr_italic->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_italic);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
   attr_italic = NULL;
 
   attr_letter_spacing->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_letter_spacing);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
   attr_letter_spacing = NULL;
 
   attr_size->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_size);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_size);
   attr_size = NULL;
 
   attr_underline->end_index = end_index - start_index;
-  pango_attr_list_insert (block->attrs, attr_underline);
+  swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
   attr_underline = NULL;
 }
 
 static void
-swfdec_edit_text_movie_generate_render_blocks (SwfdecEditTextMovie *text)
+swfdec_edit_text_movie_generate_paragraphs (SwfdecEditTextMovie *text)
 {
   const char *p, *end;
-  SwfdecTextFormat *format, *format_prev;
-  GSList *iter;
   int num, i;
 
   g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
 
   num = 0;
-  iter = text->formats;
-  format = ((SwfdecFormatIndex *)(iter->data))->format;
   p = text->text_display;
-  while (p != NULL && *p != '\0') {
+  while (p != NULL) {
     num++;
-    end = strchr (p, '\r');
-    if (end == NULL)
-      end = strchr (p, '\0');
-
-    while (iter != NULL &&
-	((SwfdecFormatIndex *)(iter->data))->index < end - text->text_display)
-    {
-      format_prev = format;
-      format = ((SwfdecFormatIndex *)(iter->data))->format;
-
-      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)
-      {
-	end = text->text_display + ((SwfdecFormatIndex *)(iter->data))->index;
-	break;
-      }
-
-      iter = iter->next;
-    }
-
-    p = end;
-    if (*p == '\r') p++;
+    p = strchr (p, '\r');
+    if (p != NULL) p++;
   }
 
-  text->blocks = g_new0 (SwfdecTextRenderBlock, num + 1);
+  text->paragraphs = g_new0 (SwfdecParagraph, num + 1);
 
   i = 0;
-  iter = text->formats;
-  format = ((SwfdecFormatIndex *)(iter->data))->format;
   p = text->text_display;
   while (*p != '\0') {
     g_assert (i < num);
@@ -296,29 +305,8 @@ swfdec_edit_text_movie_generate_render_b
     if (end == NULL)
       end = strchr (p, '\0');
 
-    while (iter != NULL &&
-	((SwfdecFormatIndex *)(iter->data))->index < end - text->text_display)
-    {
-      format_prev = format;
-      format = ((SwfdecFormatIndex *)(iter->data))->format;
-
-      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)
-      {
-	end = text->text_display + ((SwfdecFormatIndex *)(iter->data))->index;
-	break;
-      }
-
-      iter = iter->next;
-    }
-
-    swfdec_edit_text_movie_generate_render_block (text, &text->blocks[i],
+    swfdec_edit_text_movie_generate_paragraph (text, &text->paragraphs[i],
 	p - text->text_display, end - text->text_display);
-    text->blocks[i].end_paragraph = (*end == '\r' || *end == '\0');
 
     p = end;
     if (*p == '\r') p++;
@@ -334,47 +322,44 @@ swfdec_edit_text_movie_render (SwfdecMov
 {
   SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
 
-  if (text->blocks == NULL)
-    swfdec_edit_text_movie_generate_render_blocks (text);
+  if (text->paragraphs == NULL)
+    swfdec_edit_text_movie_generate_paragraphs (text);
 
-  if (text->blocks[0].text == NULL)
+  if (text->paragraphs[0].text == NULL)
     return;
-  swfdec_edit_text_render (text->text, cr, text->blocks, trans, inval);
+  swfdec_edit_text_render (text->text, cr, text->paragraphs, trans, inval);
 }
 
-void
-swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie *text)
+static void
+swfdec_edit_text_movie_free_paragraphs (SwfdecEditTextMovie *text)
 {
   int i;
 
-  if (text->blocks != NULL) {
-    for (i = 0; text->blocks[i].text != NULL; i++) {
-      // tabs
-      pango_attr_list_unref (text->blocks[i].attrs);
+  if (text->paragraphs) {
+    for (i = 0; text->paragraphs[i].text != NULL; i++) {
+      // FIXME
+      /*if (text->paragraphs[i].tab_stops != NULL)
+	pango_tab_array_free (text->paragraphs[i].tab_stops);*/
+      if (text->paragraphs[i].attrs_list != NULL)
+	pango_attr_list_unref (text->paragraphs[i].attrs_list);
     }
-    g_free (text->blocks);
-    text->blocks = NULL;
-
-    swfdec_movie_invalidate (SWFDEC_MOVIE (text));
+    g_free (text->paragraphs);
+    text->paragraphs = NULL;
   }
 }
 
+void
+swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie *text)
+{
+  swfdec_edit_text_movie_free_paragraphs (text);
+}
+
 static void
 swfdec_edit_text_movie_dispose (GObject *object)
 {
-  int i;
   SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (object);
 
-  if (text->blocks) {
-    for (i = 0; text->blocks[i].text != NULL; i++) {
-      if (text->blocks[i].attrs != NULL)
-	pango_attr_list_unref (text->blocks[i].attrs);
-      if (text->blocks[i].tab_stops != NULL)
-	pango_tab_array_free (text->blocks[i].tab_stops);
-    }
-    g_free (text->blocks);
-    text->blocks = NULL;
-  }
+  swfdec_edit_text_movie_free_paragraphs (text);
 
   G_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->dispose (object);
 }
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
index b589cdb..9f0b6a9 100644
--- a/libswfdec/swfdec_edittext_movie.h
+++ b/libswfdec/swfdec_edittext_movie.h
@@ -81,7 +81,7 @@ struct _SwfdecEditTextMovie {
   int			thickness;
 
   /* for rendering */
-  SwfdecTextRenderBlock *blocks;
+  SwfdecParagraph *	paragraphs;
 };
 
 struct _SwfdecEditTextMovieClass {
diff-tree ab9704c5e59616aefc727d7e1bb91104b5e93375 (from parents)
Merge: ca62a68fa3e8625d07e1b9281cff0fb2891516fa 94783c22d4b2b4c2afc98835db2a7333b4dd59a8
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Oct 10 14:33:33 2007 +0300

    Merge branch 'master' into textfield
    
    Conflicts:
    
    	libswfdec/swfdec_edittext.h
    	libswfdec/swfdec_edittext_movie.c
    	libswfdec/swfdec_html_parser.c
    	libswfdec/swfdec_initialize.as
    	libswfdec/swfdec_initialize.h

diff --cc libswfdec/Makefile.am
index 1a80e27,428a3a9..19edb60
@@@ -60,9 -61,9 +61,10 @@@
  	swfdec_color_as.c \
  	swfdec_debug.c \
  	swfdec_decoder.c \
+ 	swfdec_draw.c \
  	swfdec_edittext.c \
  	swfdec_edittext_movie.c \
 +	swfdec_edittext_movie_as.c \
  	swfdec_enums.c \
  	swfdec_event.c \
  	swfdec_file_loader.c \
diff --cc libswfdec/swfdec_edittext.c
index 8d915ce,ed641e8..f8527d5
@@@ -81,92 -82,6 +81,89 @@@
    text->max_length = G_MAXUINT;
  }
  
 +void
 +swfdec_edit_text_render (SwfdecEditText *text, cairo_t *cr,
 +    const SwfdecTextRenderBlock *blocks, const SwfdecColorTransform *trans,
-     const SwfdecRect *inval, gboolean fill)
++    const SwfdecRect *inval)
 +{
 +  guint i, j;
 +  PangoLayout *layout;
 +  PangoAttrList *attrs;
 +  guint width;
 +  int height, extra_chars, line_num;
 +  PangoLayoutLine *line;
 +  //SwfdecColor color;
 +
 +  g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
 +  g_return_if_fail (cr != NULL);
 +  g_return_if_fail (blocks != NULL);
 +  g_return_if_fail (trans != NULL);
 +  g_return_if_fail (inval != NULL);
 +
 +  cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
 +      SWFDEC_GRAPHIC (text)->extents.y0);
 +
 +  /*color = swfdec_color_apply_transform (text->color, trans);
 +  swfdec_color_set_source (cr, color);*/
 +
 +  layout = pango_cairo_create_layout (cr);
 +
 +  extra_chars = 0;
 +  for (i = 0; blocks[i].text != NULL; i++) {
 +    cairo_rel_move_to (cr, blocks[i].left_margin + blocks[i].block_indent, 0);
 +    width = SWFDEC_GRAPHIC (text)->extents.x1 -
 +      SWFDEC_GRAPHIC (text)->extents.x0 - blocks[i].left_margin -
 +      blocks[i].right_margin - blocks[i].block_indent;
 +
 +    pango_cairo_update_layout (cr, layout);
 +    pango_layout_set_width (layout, width * PANGO_SCALE);
 +
 +    // TODO: bullet
 +
 +    pango_layout_set_alignment (layout, blocks[i].align);
 +    pango_layout_set_justify (layout, blocks[i].justify);
 +    pango_layout_set_indent (layout, blocks[i].indent);
 +    pango_layout_set_spacing (layout, blocks[i].leading);
 +    pango_layout_set_tabs (layout, blocks[i].tab_stops);
 +
 +    if (!blocks[i].end_paragraph) {
 +      int prev_extra_chars = extra_chars;
 +      extra_chars = 0;
 +      attrs = pango_attr_list_copy (blocks[i].attrs);
 +      for (j = i + 1; blocks[j].text != NULL && !blocks[j-1].end_paragraph; j++)
 +      {
 +	pango_attr_list_splice (attrs, blocks[j].attrs,
 +	    blocks[i].text_length + extra_chars, blocks[j].text_length);
 +	extra_chars += blocks[j].text_length;
 +      }
 +      pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
 +	  blocks[i].text_length + extra_chars - prev_extra_chars);
 +      pango_layout_set_attributes (layout, attrs);
 +      pango_attr_list_unref (attrs);
 +      attrs = NULL;
 +
 +      pango_layout_index_to_line_x (layout,
 +	  blocks[i].text_length - prev_extra_chars, FALSE, &line_num, NULL);
 +      line = pango_layout_get_line_readonly (layout, line_num);
 +      extra_chars = line->start_index + line->length - (blocks[i].text_length - prev_extra_chars);
 +      pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
 +	  blocks[i].text_length + extra_chars - prev_extra_chars);
 +    } else {
 +      pango_layout_set_text (layout, blocks[i].text + extra_chars, blocks[i].text_length - extra_chars);
 +      pango_layout_set_attributes (layout, blocks[i].attrs);
 +      extra_chars = 0;
 +    }
 +
-     if (fill)
-       pango_cairo_show_layout (cr, layout);
-     else
-       pango_cairo_layout_path (cr, layout);
++    pango_cairo_show_layout (cr, layout);
 +
 +    pango_layout_get_pixel_size (layout, NULL, &height);
 +    cairo_rel_move_to (cr, -(blocks[i].left_margin + blocks[i].block_indent),
 +	height);
 +  }
 +
 +  g_object_unref (layout);
 +}
 +
  int
  tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
  {
diff --cc libswfdec/swfdec_edittext.h
index 795d5bc,23405c2..1419979
@@@ -106,12 -80,18 +106,11 @@@
  int			tag_func_define_edit_text	(SwfdecSwfDecoder *	s,
  							 guint			tag);
  
 -/* implemented in swfdec_html_parser.c */
 -SwfdecParagraph *	swfdec_paragraph_html_parse   	(SwfdecEditText *	text, 
 -							 const char *		str);
 -SwfdecParagraph *	swfdec_paragraph_text_parse	(SwfdecEditText *       text,
 -							 const char *		str);
 -void			swfdec_paragraph_free		(SwfdecParagraph *	paragraphs);
  void			swfdec_edit_text_render		(SwfdecEditText *	text,
  							 cairo_t *		cr,
 -							 const SwfdecParagraph *	paragraph,
 +							 const SwfdecTextRenderBlock *	blocks,
  							 const SwfdecColorTransform *	trans,
- 							 const SwfdecRect *	rect,
- 							 gboolean		fill);
+ 							 const SwfdecRect *		rect);
  
 -
  G_END_DECLS
  #endif
diff --cc libswfdec/swfdec_edittext_movie.c
index e481a86,e3b1ba5..0f21a26
@@@ -42,328 -38,19 +42,321 @@@
  }
  
  static void
 -swfdec_edit_text_movie_render (SwfdecMovie *movie, cairo_t *cr, 
 +swfdec_edit_text_movie_generate_render_block (SwfdecEditTextMovie *text,
 +    SwfdecTextRenderBlock *block, guint start_index, guint end_index)
 +{
 +  SwfdecTextFormat *format, *format_prev;
 +  guint index_;
 +  GSList *iter;
 +  gint32 length, i;
 +  SwfdecAsValue val;
 +  PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
 +		 *attr_letter_spacing, *attr_size, *attr_underline;
 +  // TODO: kerning
 +
 +  g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
 +  g_assert (block != NULL);
 +  g_assert (start_index < end_index);
 +  g_assert (end_index <= strlen (text->text_display));
 +
 +  block->text = text->text_display + start_index;
 +  block->text_length = end_index - start_index;
 +
 +  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;
 +
 +  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;
 +  }
 +  block->bullet = format->bullet;
 +  block->indent = format->indent * 20;
 +  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;
 +
 +  length = swfdec_as_array_get_length (format->tab_stops);
 +  block->tab_stops = pango_tab_array_new (length, TRUE);
 +  for (i = 0; i