diff --git a/src/runtime/libtcl9.0b1.zip b/src/runtime/libtcl9.0b1.zip deleted file mode 100644 index f198e117..00000000 Binary files a/src/runtime/libtcl9.0b1.zip and /dev/null differ diff --git a/src/runtime/tcl_library/auto.tcl b/src/runtime/tcl_library/auto.tcl deleted file mode 100644 index b28451cb..00000000 --- a/src/runtime/tcl_library/auto.tcl +++ /dev/null @@ -1,711 +0,0 @@ -# auto.tcl -- -# -# utility procs formerly in init.tcl dealing with auto execution of commands -# and can be auto loaded themselves. -# -# Copyright © 1991-1993 The Regents of the University of California. -# Copyright © 1994-1998 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# auto_reset -- -# -# Destroy all cached information for auto-loading and auto-execution, so that -# the information gets recomputed the next time it's needed. Also delete any -# commands that are listed in the auto-load index. -# -# Arguments: -# None. - -proc auto_reset {} { - global auto_execs auto_index auto_path - if {[array exists auto_index]} { - foreach cmdName [array names auto_index] { - set fqcn [namespace which $cmdName] - if {$fqcn eq ""} { - continue - } - rename $fqcn {} - } - } - unset -nocomplain auto_execs auto_index ::tcl::auto_oldpath - if {[catch {llength $auto_path}]} { - set auto_path [list [info library]] - } elseif {[info library] ni $auto_path} { - lappend auto_path [info library] - } -} - -# tcl_findLibrary -- -# -# This is a utility for extensions that searches for a library directory -# using a canonical searching algorithm. A side effect is to source the -# initialization script and set a global library variable. -# -# Arguments: -# basename Prefix of the directory name, (e.g., "tk") -# version Version number of the package, (e.g., "8.0") -# patch Patchlevel of the package, (e.g., "8.0.3") -# initScript Initialization script to source (e.g., tk.tcl) -# enVarName environment variable to honor (e.g., TK_LIBRARY) -# varName Global variable to set when done (e.g., tk_library) - -proc tcl_findLibrary {basename version patch initScript enVarName varName} { - upvar #0 $varName the_library - global auto_path env tcl_platform - - set dirs {} - set errors {} - - # The C application may have hardwired a path, which we honor - - if {[info exists the_library] && $the_library ne ""} { - lappend dirs $the_library - } else { - # Do the canonical search - - # 1. From an environment variable, if it exists. Placing this first - # gives the end-user ultimate control to work-around any bugs, or - # to customize. - - if {[info exists env($enVarName)]} { - lappend dirs $env($enVarName) - } - - catch { - set found 0 - set root [zipfs root] - set mountpoint [file join $root lib $basename] - lappend dirs [file join $root app ${basename}_library] - lappend dirs [file join $root lib ${basename} ${basename}_library] - lappend dirs [file join $root lib ${basename}] - if {![zipfs exists [file join $root app ${basename}_library]] \ - && ![zipfs exists $mountpoint]} { - set found 0 - foreach pkgdat [info loaded] { - lassign $pkgdat dllfile dllpkg - if {$dllpkg ne $basename} continue - if {$dllfile eq {}} { - # Loaded statically - break - } - set found 1 - zipfs mount $dllfile $mountpoint - break - } - if {!$found} { - set paths {} - if {![catch {::${basename}::pkgconfig get libdir,runtime} dir]} { - lappend paths $dir - } else { - catch {lappend paths [::tcl::pkgconfig get libdir,runtime]} - } - if {![catch {::${basename}::pkgconfig get bindir,runtime} dir]} { - lappend paths $dir - } else { - catch {lappend paths [::tcl::pkgconfig get bindir,runtime]} - } - if {[catch {::${basename}::pkgconfig get dllfile,runtime} dllfile]} { - set dllfile "libtcl9${basename}${version}[info sharedlibextension]" - } - set dir [file dirname [file join [pwd] [info nameofexecutable]]] - lappend paths $dir - lappend paths [file join [file dirname $dir] lib] - foreach path $paths { - set archive [file join $path $dllfile] - if {![file exists $archive]} { - continue - } - zipfs mount $archive $mountpoint - if {[zipfs exists [file join $mountpoint ${basename}_library $initScript]]} { - lappend dirs [file join $mountpoint ${basename}_library] - set found 1 - break - } elseif {[zipfs exists [file join $mountpoint $initScript]]} { - lappend dirs [file join $mountpoint $initScript] - set found 1 - break - } else { - catch {zipfs unmount $mountpoint} - } - } - } - } - } - - # 2. In the package script directory registered within the - # configuration of the package itself. - - catch { - lappend dirs [::${basename}::pkgconfig get scriptdir,runtime] - } - - # 3. Relative to auto_path directories. This checks relative to the - # Tcl library as well as allowing loading of libraries added to the - # auto_path that is not relative to the core library or binary paths. - foreach d $auto_path { - lappend dirs [file join $d $basename$version] - if {$tcl_platform(platform) eq "unix" - && $tcl_platform(os) eq "Darwin"} { - # 4. On MacOSX, check the Resources/Scripts subdir too - lappend dirs [file join $d $basename$version Resources Scripts] - } - } - - # 3. Various locations relative to the executable - # ../lib/foo1.0 (From bin directory in install hierarchy) - # ../../lib/foo1.0 (From bin/arch directory in install hierarchy) - # ../library (From unix directory in build hierarchy) - # - # Remaining locations are out of date (when relevant, they ought to be - # covered by the $::auto_path seach above) and disabled. - # - # ../../library (From unix/arch directory in build hierarchy) - # ../../foo1.0.1/library - # (From unix directory in parallel build hierarchy) - # ../../../foo1.0.1/library - # (From unix/arch directory in parallel build hierarchy) - - set parentDir [file dirname [file dirname [info nameofexecutable]]] - set grandParentDir [file dirname $parentDir] - lappend dirs [file join $parentDir lib $basename$version] - lappend dirs [file join $grandParentDir lib $basename$version] - lappend dirs [file join $parentDir library] - if {0} { - lappend dirs [file join $grandParentDir library] - lappend dirs [file join $grandParentDir $basename$patch library] - lappend dirs [file join [file dirname $grandParentDir] \ - $basename$patch library] - } - } - # make $dirs unique, preserving order - array set seen {} - foreach i $dirs { - # Make sure $i is unique under normalization. Avoid repeated [source]. - if {[interp issafe]} { - # Safe interps have no [file normalize]. - set norm $i - } else { - set norm [file normalize $i] - } - if {[info exists seen($norm)]} { - continue - } - set seen($norm) {} - - set the_library $i - set file [file join $i $initScript] - - # source everything when in a safe interpreter because we have a - # source command, but no file exists command - - if {[interp issafe] || [file exists $file]} { - if {![catch {uplevel #0 [list source $file]} msg opts]} { - return - } - append errors "$file: $msg\n" - append errors [dict get $opts -errorinfo]\n - } - } - unset -nocomplain the_library - set msg "Can't find a usable $initScript in the following directories: \n" - append msg " $dirs\n\n" - append msg "$errors\n\n" - append msg "This probably means that $basename wasn't installed properly.\n" - error $msg -} - - -# ---------------------------------------------------------------------- -# auto_mkindex -# ---------------------------------------------------------------------- -# The following procedures are used to generate the tclIndex file from Tcl -# source files. They use a special safe interpreter to parse Tcl source -# files, writing out index entries as "proc" commands are encountered. This -# implementation won't work in a safe interpreter, since a safe interpreter -# can't create the special parser and mess with its commands. - -if {[interp issafe]} { - return ;# Stop sourcing the file here -} - -# auto_mkindex -- -# Regenerate a tclIndex file from Tcl source files. Takes as argument the -# name of the directory in which the tclIndex file is to be placed, followed -# by any number of glob patterns to use in that directory to locate all of the -# relevant files. -# -# Arguments: -# dir - Name of the directory in which to create an index. - -# args - Any number of additional arguments giving the names of files -# within dir. If no additional are given auto_mkindex will look -# for *.tcl. - -proc auto_mkindex {dir args} { - if {[interp issafe]} { - error "can't generate index within safe interpreter" - } - - set oldDir [pwd] - cd $dir - - append index "# Tcl autoload index file, version 2.0\n" - append index "# This file is generated by the \"auto_mkindex\" command\n" - append index "# and sourced to set up indexing information for one or\n" - append index "# more commands. Typically each line is a command that\n" - append index "# sets an element in the auto_index array, where the\n" - append index "# element name is the name of a command and the value is\n" - append index "# a script that loads the command.\n\n" - if {![llength $args]} { - set args *.tcl - } - - auto_mkindex_parser::init - foreach file [lsort [glob -- {*}$args]] { - try { - append index [auto_mkindex_parser::mkindex $file] - } on error {msg opts} { - cd $oldDir - return -options $opts $msg - } - } - auto_mkindex_parser::cleanup - - set fid [open "tclIndex" w] - fconfigure $fid -encoding utf-8 -translation lf - puts -nonewline $fid $index - close $fid - cd $oldDir -} - -# Original version of auto_mkindex that just searches the source code for -# "proc" at the beginning of the line. - -proc auto_mkindex_old {dir args} { - set oldDir [pwd] - cd $dir - set dir [pwd] - append index "# Tcl autoload index file, version 2.0\n" - append index "# This file is generated by the \"auto_mkindex\" command\n" - append index "# and sourced to set up indexing information for one or\n" - append index "# more commands. Typically each line is a command that\n" - append index "# sets an element in the auto_index array, where the\n" - append index "# element name is the name of a command and the value is\n" - append index "# a script that loads the command.\n\n" - if {![llength $args]} { - set args *.tcl - } - foreach file [lsort [glob -- {*}$args]] { - set f "" - set error [catch { - set f [open $file] - fconfigure $f -encoding utf-8 -eofchar \x1A - while {[gets $f line] >= 0} { - if {[regexp {^proc[ ]+([^ ]*)} $line match procName]} { - set procName [lindex [auto_qualify $procName "::"] 0] - append index "set [list auto_index($procName)]" - append index " \[list source \[file join \$dir [list $file]\]\]\n" - } - } - close $f - } msg opts] - if {$error} { - catch {close $f} - cd $oldDir - return -options $opts $msg - } - } - set f "" - set error [catch { - set f [open tclIndex w] - fconfigure $f -encoding utf-8 -translation lf - puts -nonewline $f $index - close $f - cd $oldDir - } msg opts] - if {$error} { - catch {close $f} - cd $oldDir - error $msg $info $code - return -options $opts $msg - } -} - -# Create a safe interpreter that can be used to parse Tcl source files -# generate a tclIndex file for autoloading. This interp contains commands for -# things that need index entries. Each time a command is executed, it writes -# an entry out to the index file. - -namespace eval auto_mkindex_parser { - variable parser "" ;# parser used to build index - variable index "" ;# maintains index as it is built - variable scriptFile "" ;# name of file being processed - variable contextStack "" ;# stack of namespace scopes - variable imports "" ;# keeps track of all imported cmds - variable initCommands ;# list of commands that create aliases - if {![info exists initCommands]} { - set initCommands [list] - } - - proc init {} { - variable parser - variable initCommands - - if {![interp issafe]} { - set parser [interp create -safe] - $parser hide info - $parser hide rename - $parser hide proc - $parser hide namespace - $parser hide eval - $parser hide puts - foreach ns [$parser invokehidden namespace children ::] { - # MUST NOT DELETE "::tcl" OR BAD THINGS HAPPEN! - if {$ns eq "::tcl"} continue - $parser invokehidden namespace delete $ns - } - foreach cmd [$parser invokehidden info commands ::*] { - $parser invokehidden rename $cmd {} - } - $parser invokehidden proc unknown {args} {} - - # We'll need access to the "namespace" command within the - # interp. Put it back, but move it out of the way. - - $parser expose namespace - $parser invokehidden rename namespace _%@namespace - $parser expose eval - $parser invokehidden rename eval _%@eval - - # Install all the registered pseudo-command implementations - - foreach cmd $initCommands { - eval $cmd - } - } - } - proc cleanup {} { - variable parser - interp delete $parser - unset parser - } -} - -# auto_mkindex_parser::mkindex -- -# -# Used by the "auto_mkindex" command to create a "tclIndex" file for the given -# Tcl source file. Executes the commands in the file, and handles things like -# the "proc" command by adding an entry for the index file. Returns a string -# that represents the index file. -# -# Arguments: -# file Name of Tcl source file to be indexed. - -proc auto_mkindex_parser::mkindex {file} { - variable parser - variable index - variable scriptFile - variable contextStack - variable imports - - set scriptFile $file - - set fid [open $file] - fconfigure $fid -encoding utf-8 -eofchar \x1A - set contents [read $fid] - close $fid - - # There is one problem with sourcing files into the safe interpreter: - # references like "$x" will fail since code is not really being executed - # and variables do not really exist. To avoid this, we replace all $ with - # \0 (literally, the null char) later, when getting proc names we will - # have to reverse this replacement, in case there were any $ in the proc - # name. This will cause a problem if somebody actually tries to have a \0 - # in their proc name. Too bad for them. - set contents [string map [list \$ \0] $contents] - - set index "" - set contextStack "" - set imports "" - - $parser eval $contents - - foreach name $imports { - catch {$parser eval [list _%@namespace forget $name]} - } - return $index -} - -# auto_mkindex_parser::hook command -# -# Registers a Tcl command to evaluate when initializing the child interpreter -# used by the mkindex parser. The command is evaluated in the parent -# interpreter, and can use the variable auto_mkindex_parser::parser to get to -# the child - -proc auto_mkindex_parser::hook {cmd} { - variable initCommands - - lappend initCommands $cmd -} - -# auto_mkindex_parser::childhook command -# -# Registers a Tcl command to evaluate when initializing the child interpreter -# used by the mkindex parser. The command is evaluated in the child -# interpreter. - -proc auto_mkindex_parser::childhook {cmd} { - variable initCommands - - # The $parser variable is defined to be the name of the child interpreter - # when this command is used later. - - lappend initCommands "\$parser eval [list $cmd]" -} - -# auto_mkindex_parser::command -- -# -# Registers a new command with the "auto_mkindex_parser" interpreter that -# parses Tcl files. These commands are fake versions of things like the -# "proc" command. When you execute them, they simply write out an entry to a -# "tclIndex" file for auto-loading. -# -# This procedure allows extensions to register their own commands with the -# auto_mkindex facility. For example, a package like [incr Tcl] might -# register a "class" command so that class definitions could be added to a -# "tclIndex" file for auto-loading. -# -# Arguments: -# name Name of command recognized in Tcl files. -# arglist Argument list for command. -# body Implementation of command to handle indexing. - -proc auto_mkindex_parser::command {name arglist body} { - hook [list auto_mkindex_parser::commandInit $name $arglist $body] -} - -# auto_mkindex_parser::commandInit -- -# -# This does the actual work set up by auto_mkindex_parser::command. This is -# called when the interpreter used by the parser is created. -# -# Arguments: -# name Name of command recognized in Tcl files. -# arglist Argument list for command. -# body Implementation of command to handle indexing. - -proc auto_mkindex_parser::commandInit {name arglist body} { - variable parser - - set ns [namespace qualifiers $name] - set tail [namespace tail $name] - if {$ns eq ""} { - set fakeName [namespace current]::_%@fake_$tail - } else { - set fakeName [namespace current]::[string map {:: _} _%@fake_$name] - } - proc $fakeName $arglist $body - - # YUK! Tcl won't let us alias fully qualified command names, so we can't - # handle names like "::itcl::class". Instead, we have to build procs with - # the fully qualified names, and have the procs point to the aliases. - - if {[string match *::* $name]} { - set exportCmd [list _%@namespace export [namespace tail $name]] - $parser eval [list _%@namespace eval $ns $exportCmd] - - # The following proc definition does not work if you want to tolerate - # space or something else diabolical in the procedure name, (i.e., - # space in $alias). The following does not work: - # "_%@eval {$alias} \$args" - # because $alias gets concat'ed to $args. The following does not work - # because $cmd is somehow undefined - # "set cmd {$alias} \; _%@eval {\$cmd} \$args" - # A gold star to someone that can make test autoMkindex-3.3 work - # properly - - set alias [namespace tail $fakeName] - $parser invokehidden proc $name {args} "_%@eval {$alias} \$args" - $parser alias $alias $fakeName - } else { - $parser alias $name $fakeName - } - return -} - -# auto_mkindex_parser::fullname -- -# -# Used by commands like "proc" within the auto_mkindex parser. Returns the -# qualified namespace name for the "name" argument. If the "name" does not -# start with "::", elements are added from the current namespace stack to -# produce a qualified name. Then, the name is examined to see whether or not -# it should really be qualified. If the name has more than the leading "::", -# it is returned as a fully qualified name. Otherwise, it is returned as a -# simple name. That way, the Tcl autoloader will recognize it properly. -# -# Arguments: -# name - Name that is being added to index. - -proc auto_mkindex_parser::fullname {name} { - variable contextStack - - if {![string match ::* $name]} { - foreach ns $contextStack { - set name "${ns}::$name" - if {[string match ::* $name]} { - break - } - } - } - - if {[namespace qualifiers $name] eq ""} { - set name [namespace tail $name] - } elseif {![string match ::* $name]} { - set name "::$name" - } - - # Earlier, mkindex replaced all $'s with \0. Now, we have to reverse that - # replacement. - return [string map [list \0 \$] $name] -} - -# auto_mkindex_parser::indexEntry -- -# -# Used by commands like "proc" within the auto_mkindex parser to add a -# correctly-quoted entry to the index. This is shared code so it is done -# *right*, in one place. -# -# Arguments: -# name - Name that is being added to index. - -proc auto_mkindex_parser::indexEntry {name} { - variable index - variable scriptFile - - # We convert all metacharacters to their backslashed form, and pre-split - # the file name that we know about (which will be a proper list, and so - # correctly quoted). - - set name [string range [list \}[fullname $name]] 2 end] - set filenameParts [file split $scriptFile] - - append index [format \ - {set auto_index(%s) [list source [file join $dir %s]]%s} \ - $name $filenameParts \n] - return -} - -if {[llength $::auto_mkindex_parser::initCommands]} { - return -} - -# Register all of the procedures for the auto_mkindex parser that will build -# the "tclIndex" file. - -# AUTO MKINDEX: proc name arglist body -# Adds an entry to the auto index list for the given procedure name. - -auto_mkindex_parser::command proc {name args} { - indexEntry $name -} - -# Conditionally add support for Tcl byte code files. There are some tricky -# details here. First, we need to get the tbcload library initialized in the -# current interpreter. We cannot load tbcload into the child until we have -# done so because it needs access to the tcl_patchLevel variable. Second, -# because the package index file may defer loading the library until we invoke -# a command, we need to explicitly invoke auto_load to force it to be loaded. -# This should be a noop if the package has already been loaded - -auto_mkindex_parser::hook { - try { - package require tbcload - } on error {} { - # OK, don't have it so do nothing - } on ok {} { - if {[namespace which -command tbcload::bcproc] eq ""} { - auto_load tbcload::bcproc - } - load {} tbcload $auto_mkindex_parser::parser - - # AUTO MKINDEX: tbcload::bcproc name arglist body - # Adds an entry to the auto index list for the given precompiled - # procedure name. - - auto_mkindex_parser::commandInit tbcload::bcproc {name args} { - indexEntry $name - } - } -} - -# AUTO MKINDEX: namespace eval name command ?arg arg...? -# Adds the namespace name onto the context stack and evaluates the associated -# body of commands. -# -# AUTO MKINDEX: namespace import ?-force? pattern ?pattern...? -# Performs the "import" action in the parser interpreter. This is important -# for any commands contained in a namespace that affect the index. For -# example, a script may say "itcl::class ...", or it may import "itcl::*" and -# then say "class ...". This procedure does the import operation, but keeps -# track of imported patterns so we can remove the imports later. - -auto_mkindex_parser::command namespace {op args} { - switch -- $op { - eval { - variable parser - variable contextStack - - set name [lindex $args 0] - set args [lrange $args 1 end] - - set contextStack [linsert $contextStack 0 $name] - $parser eval [list _%@namespace eval $name] $args - set contextStack [lrange $contextStack 1 end] - } - import { - variable parser - variable imports - foreach pattern $args { - if {$pattern ne "-force"} { - lappend imports $pattern - } - } - catch {$parser eval "_%@namespace import $args"} - } - ensemble { - variable parser - variable contextStack - if {[lindex $args 0] eq "create"} { - set name ::[join [lreverse $contextStack] ::] - catch { - set name [dict get [lrange $args 1 end] -command] - if {![string match ::* $name]} { - set name ::[join [lreverse $contextStack] ::]$name - } - regsub -all ::+ $name :: name - } - # create artificial proc to force an entry in the tclIndex - $parser eval [list ::proc $name {} {}] - } - } - } -} - -# AUTO MKINDEX: oo::class create name ?definition? -# Adds an entry to the auto index list for the given class name. -auto_mkindex_parser::command oo::class {op name {body ""}} { - if {$op eq "create"} { - indexEntry $name - } -} -auto_mkindex_parser::command class {op name {body ""}} { - if {$op eq "create"} { - indexEntry $name - } -} - -return diff --git a/src/runtime/tcl_library/clock.tcl b/src/runtime/tcl_library/clock.tcl deleted file mode 100644 index d1a76e78..00000000 --- a/src/runtime/tcl_library/clock.tcl +++ /dev/null @@ -1,4551 +0,0 @@ -#---------------------------------------------------------------------- -# -# clock.tcl -- -# -# This file implements the portions of the [clock] ensemble that are -# coded in Tcl. Refer to the users' manual to see the description of -# the [clock] command and its subcommands. -# -# -#---------------------------------------------------------------------- -# -# Copyright © 2004-2007 Kevin B. Kenny -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -#---------------------------------------------------------------------- - -# We must have message catalogs that support the root locale, and we need -# access to the Registry on Windows systems. - -uplevel \#0 { - package require msgcat 1.6 - if { $::tcl_platform(platform) eq {windows} } { - if { [catch { package require registry 1.1 }] } { - namespace eval ::tcl::clock [list variable NoRegistry {}] - } - } -} - -# Put the library directory into the namespace for the ensemble so that the -# library code can find message catalogs and time zone definition files. - -namespace eval ::tcl::clock \ - [list variable LibDir [file dirname [info script]]] - -#---------------------------------------------------------------------- -# -# clock -- -# -# Manipulate times. -# -# The 'clock' command manipulates time. Refer to the user documentation for -# the available subcommands and what they do. -# -#---------------------------------------------------------------------- - -namespace eval ::tcl::clock { - - # Export the subcommands - - namespace export format - namespace export clicks - namespace export microseconds - namespace export milliseconds - namespace export scan - namespace export seconds - namespace export add - - # Import the message catalog commands that we use. - - namespace import ::msgcat::mcload - namespace import ::msgcat::mclocale - namespace import ::msgcat::mc - namespace import ::msgcat::mcpackagelocale - -} - -#---------------------------------------------------------------------- -# -# ::tcl::clock::Initialize -- -# -# Finish initializing the 'clock' subsystem -# -# Results: -# None. -# -# Side effects: -# Namespace variable in the 'clock' subsystem are initialized. -# -# The '::tcl::clock::Initialize' procedure initializes the namespace variables -# and root locale message catalog for the 'clock' subsystem. It is broken -# into a procedure rather than simply evaluated as a script so that it will be -# able to use local variables, avoiding the dangers of 'creative writing' as -# in Bug 1185933. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::Initialize {} { - - rename ::tcl::clock::Initialize {} - - variable LibDir - - # Define the Greenwich time zone - - proc InitTZData {} { - variable TZData - array unset TZData - set TZData(:Etc/GMT) { - {-9223372036854775808 0 0 GMT} - } - set TZData(:GMT) $TZData(:Etc/GMT) - set TZData(:Etc/UTC) { - {-9223372036854775808 0 0 UTC} - } - set TZData(:UTC) $TZData(:Etc/UTC) - set TZData(:localtime) {} - } - InitTZData - - mcpackagelocale set {} - ::msgcat::mcpackageconfig set mcfolder [file join $LibDir msgs] - ::msgcat::mcpackageconfig set unknowncmd "" - ::msgcat::mcpackageconfig set changecmd ChangeCurrentLocale - - # Define the message catalog for the root locale. - - ::msgcat::mcmset {} { - AM {am} - BCE {B.C.E.} - CE {C.E.} - DATE_FORMAT {%m/%d/%Y} - DATE_TIME_FORMAT {%a %b %e %H:%M:%S %Y} - DAYS_OF_WEEK_ABBREV { - Sun Mon Tue Wed Thu Fri Sat - } - DAYS_OF_WEEK_FULL { - Sunday Monday Tuesday Wednesday Thursday Friday Saturday - } - GREGORIAN_CHANGE_DATE 2299161 - LOCALE_DATE_FORMAT {%m/%d/%Y} - LOCALE_DATE_TIME_FORMAT {%a %b %e %H:%M:%S %Y} - LOCALE_ERAS {} - LOCALE_NUMERALS { - 00 01 02 03 04 05 06 07 08 09 - 10 11 12 13 14 15 16 17 18 19 - 20 21 22 23 24 25 26 27 28 29 - 30 31 32 33 34 35 36 37 38 39 - 40 41 42 43 44 45 46 47 48 49 - 50 51 52 53 54 55 56 57 58 59 - 60 61 62 63 64 65 66 67 68 69 - 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 - 90 91 92 93 94 95 96 97 98 99 - } - LOCALE_TIME_FORMAT {%H:%M:%S} - LOCALE_YEAR_FORMAT {%EC%Ey} - MONTHS_ABBREV { - Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec - } - MONTHS_FULL { - January February March - April May June - July August September - October November December - } - PM {pm} - TIME_FORMAT {%H:%M:%S} - TIME_FORMAT_12 {%I:%M:%S %P} - TIME_FORMAT_24 {%H:%M} - TIME_FORMAT_24_SECS {%H:%M:%S} - } - - # Define a few Gregorian change dates for other locales. In most cases - # the change date follows a language, because a nation's colonies changed - # at the same time as the nation itself. In many cases, different - # national boundaries existed; the dominating rule is to follow the - # nation's capital. - - # Italy, Spain, Portugal, Poland - - ::msgcat::mcset it GREGORIAN_CHANGE_DATE 2299161 - ::msgcat::mcset es GREGORIAN_CHANGE_DATE 2299161 - ::msgcat::mcset pt GREGORIAN_CHANGE_DATE 2299161 - ::msgcat::mcset pl GREGORIAN_CHANGE_DATE 2299161 - - # France, Austria - - ::msgcat::mcset fr GREGORIAN_CHANGE_DATE 2299227 - - # For Belgium, we follow Southern Netherlands; Liege Diocese changed - # several weeks later. - - ::msgcat::mcset fr_BE GREGORIAN_CHANGE_DATE 2299238 - ::msgcat::mcset nl_BE GREGORIAN_CHANGE_DATE 2299238 - - # Austria - - ::msgcat::mcset de_AT GREGORIAN_CHANGE_DATE 2299527 - - # Hungary - - ::msgcat::mcset hu GREGORIAN_CHANGE_DATE 2301004 - - # Germany, Norway, Denmark (Catholic Germany changed earlier) - - ::msgcat::mcset de_DE GREGORIAN_CHANGE_DATE 2342032 - ::msgcat::mcset nb GREGORIAN_CHANGE_DATE 2342032 - ::msgcat::mcset nn GREGORIAN_CHANGE_DATE 2342032 - ::msgcat::mcset no GREGORIAN_CHANGE_DATE 2342032 - ::msgcat::mcset da GREGORIAN_CHANGE_DATE 2342032 - - # Holland (Brabant, Gelderland, Flanders, Friesland, etc. changed at - # various times) - - ::msgcat::mcset nl GREGORIAN_CHANGE_DATE 2342165 - - # Protestant Switzerland (Catholic cantons changed earlier) - - ::msgcat::mcset fr_CH GREGORIAN_CHANGE_DATE 2361342 - ::msgcat::mcset it_CH GREGORIAN_CHANGE_DATE 2361342 - ::msgcat::mcset de_CH GREGORIAN_CHANGE_DATE 2361342 - - # English speaking countries - - ::msgcat::mcset en GREGORIAN_CHANGE_DATE 2361222 - - # Sweden (had several changes onto and off of the Gregorian calendar) - - ::msgcat::mcset sv GREGORIAN_CHANGE_DATE 2361390 - - # Russia - - ::msgcat::mcset ru GREGORIAN_CHANGE_DATE 2421639 - - # Romania (Transylvania changed earlier - perhaps de_RO should show the - # earlier date?) - - ::msgcat::mcset ro GREGORIAN_CHANGE_DATE 2422063 - - # Greece - - ::msgcat::mcset el GREGORIAN_CHANGE_DATE 2423480 - - #------------------------------------------------------------------ - # - # CONSTANTS - # - #------------------------------------------------------------------ - - # Paths at which binary time zone data for the Olson libraries are known - # to reside on various operating systems - - variable ZoneinfoPaths {} - foreach path { - /usr/share/zoneinfo - /usr/share/lib/zoneinfo - /usr/lib/zoneinfo - /usr/local/etc/zoneinfo - } { - if { [file isdirectory $path] } { - lappend ZoneinfoPaths $path - } - } - - # Define the directories for time zone data and message catalogs. - - variable DataDir [file join $LibDir tzdata] - - # Number of days in the months, in common years and leap years. - - variable DaysInRomanMonthInCommonYear \ - { 31 28 31 30 31 30 31 31 30 31 30 31 } - variable DaysInRomanMonthInLeapYear \ - { 31 29 31 30 31 30 31 31 30 31 30 31 } - variable DaysInPriorMonthsInCommonYear [list 0] - variable DaysInPriorMonthsInLeapYear [list 0] - set i 0 - foreach j $DaysInRomanMonthInCommonYear { - lappend DaysInPriorMonthsInCommonYear [incr i $j] - } - set i 0 - foreach j $DaysInRomanMonthInLeapYear { - lappend DaysInPriorMonthsInLeapYear [incr i $j] - } - - # Another epoch (Hi, Jeff!) - - variable Roddenberry 1946 - - # Integer ranges - - variable MINWIDE -9223372036854775808 - variable MAXWIDE 9223372036854775807 - - # Day before Leap Day - - variable FEB_28 58 - - # Translation table to map Windows TZI onto cities, so that the Olson - # rules can apply. In some cases the mapping is ambiguous, so it's wise - # to specify $::env(TCL_TZ) rather than simply depending on the system - # time zone. - - # The keys are long lists of values obtained from the time zone - # information in the Registry. In order, the list elements are: - # Bias StandardBias DaylightBias - # StandardDate.wYear StandardDate.wMonth StandardDate.wDayOfWeek - # StandardDate.wDay StandardDate.wHour StandardDate.wMinute - # StandardDate.wSecond StandardDate.wMilliseconds - # DaylightDate.wYear DaylightDate.wMonth DaylightDate.wDayOfWeek - # DaylightDate.wDay DaylightDate.wHour DaylightDate.wMinute - # DaylightDate.wSecond DaylightDate.wMilliseconds - # The values are the names of time zones where those rules apply. There - # is considerable ambiguity in certain zones; an attempt has been made to - # make a reasonable guess, but this table needs to be taken with a grain - # of salt. - - variable WinZoneInfo [dict create {*}{ - {-43200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Kwajalein - {-39600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Midway - {-36000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Honolulu - {-32400 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Anchorage - {-28800 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Los_Angeles - {-28800 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Tijuana - {-25200 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Denver - {-25200 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Chihuahua - {-25200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Phoenix - {-21600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Regina - {-21600 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Chicago - {-21600 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Mexico_City - {-18000 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/New_York - {-18000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Indianapolis - {-14400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Caracas - {-14400 0 3600 0 3 6 2 23 59 59 999 0 10 6 2 23 59 59 999} - :America/Santiago - {-14400 0 3600 0 2 0 5 2 0 0 0 0 11 0 1 2 0 0 0} :America/Manaus - {-14400 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Halifax - {-12600 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/St_Johns - {-10800 0 3600 0 2 0 2 2 0 0 0 0 10 0 3 2 0 0 0} :America/Sao_Paulo - {-10800 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Godthab - {-10800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Buenos_Aires - {-10800 0 3600 0 2 0 5 2 0 0 0 0 11 0 1 2 0 0 0} :America/Bahia - {-10800 0 3600 0 3 0 2 2 0 0 0 0 10 0 1 2 0 0 0} :America/Montevideo - {-7200 0 3600 0 9 0 5 2 0 0 0 0 3 0 5 2 0 0 0} :America/Noronha - {-3600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Atlantic/Azores - {-3600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Atlantic/Cape_Verde - {0 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :UTC - {0 0 3600 0 10 0 5 2 0 0 0 0 3 0 5 1 0 0 0} :Europe/London - {3600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Africa/Kinshasa - {3600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :CET - {7200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Africa/Harare - {7200 0 3600 0 9 4 5 23 59 59 0 0 4 4 5 23 59 59 0} - :Africa/Cairo - {7200 0 3600 0 10 0 5 4 0 0 0 0 3 0 5 3 0 0 0} :Europe/Helsinki - {7200 0 3600 0 9 0 3 2 0 0 0 0 3 5 5 2 0 0 0} :Asia/Jerusalem - {7200 0 3600 0 9 0 5 1 0 0 0 0 3 0 5 0 0 0 0} :Europe/Bucharest - {7200 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Europe/Athens - {7200 0 3600 0 9 5 5 1 0 0 0 0 3 4 5 0 0 0 0} :Asia/Amman - {7200 0 3600 0 10 6 5 23 59 59 999 0 3 0 5 0 0 0 0} - :Asia/Beirut - {7200 0 -3600 0 4 0 1 2 0 0 0 0 9 0 1 2 0 0 0} :Africa/Windhoek - {10800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Riyadh - {10800 0 3600 0 10 0 1 4 0 0 0 0 4 0 1 3 0 0 0} :Asia/Baghdad - {10800 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Europe/Moscow - {12600 0 3600 0 9 2 4 2 0 0 0 0 3 0 1 2 0 0 0} :Asia/Tehran - {14400 0 3600 0 10 0 5 5 0 0 0 0 3 0 5 4 0 0 0} :Asia/Baku - {14400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Muscat - {14400 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Tbilisi - {16200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Kabul - {18000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Karachi - {18000 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Yekaterinburg - {19800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Calcutta - {20700 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Katmandu - {21600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Dhaka - {21600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Novosibirsk - {23400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Rangoon - {25200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Bangkok - {25200 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Krasnoyarsk - {28800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Chongqing - {28800 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Irkutsk - {32400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Tokyo - {32400 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Yakutsk - {34200 0 3600 0 3 0 5 3 0 0 0 0 10 0 5 2 0 0 0} :Australia/Adelaide - {34200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Australia/Darwin - {36000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Australia/Brisbane - {36000 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Vladivostok - {36000 0 3600 0 3 0 5 3 0 0 0 0 10 0 1 2 0 0 0} :Australia/Hobart - {36000 0 3600 0 3 0 5 3 0 0 0 0 10 0 5 2 0 0 0} :Australia/Sydney - {39600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Noumea - {43200 0 3600 0 3 0 3 3 0 0 0 0 10 0 1 2 0 0 0} :Pacific/Auckland - {43200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Fiji - {46800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Tongatapu - }] - - # Groups of fields that specify the date, priorities, and code bursts that - # determine Julian Day Number given those groups. The code in [clock - # scan] will choose the highest priority (lowest numbered) set of fields - # that determines the date. - - variable DateParseActions { - - { seconds } 0 {} - - { julianDay } 1 {} - - { era century yearOfCentury month dayOfMonth } 2 { - dict set date year [expr { 100 * [dict get $date century] - + [dict get $date yearOfCentury] }] - set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ - $changeover] - } - { era century yearOfCentury dayOfYear } 2 { - dict set date year [expr { 100 * [dict get $date century] - + [dict get $date yearOfCentury] }] - set date [GetJulianDayFromEraYearDay $date[set date {}] \ - $changeover] - } - - { century yearOfCentury month dayOfMonth } 3 { - dict set date era CE - dict set date year [expr { 100 * [dict get $date century] - + [dict get $date yearOfCentury] }] - set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ - $changeover] - } - { century yearOfCentury dayOfYear } 3 { - dict set date era CE - dict set date year [expr { 100 * [dict get $date century] - + [dict get $date yearOfCentury] }] - set date [GetJulianDayFromEraYearDay $date[set date {}] \ - $changeover] - } - { iso8601Century iso8601YearOfCentury iso8601Week dayOfWeek } 3 { - dict set date era CE - dict set date iso8601Year \ - [expr { 100 * [dict get $date iso8601Century] - + [dict get $date iso8601YearOfCentury] }] - set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ - $changeover] - } - - { yearOfCentury month dayOfMonth } 4 { - set date [InterpretTwoDigitYear $date[set date {}] $baseTime] - dict set date era CE - set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ - $changeover] - } - { yearOfCentury dayOfYear } 4 { - set date [InterpretTwoDigitYear $date[set date {}] $baseTime] - dict set date era CE - set date [GetJulianDayFromEraYearDay $date[set date {}] \ - $changeover] - } - { iso8601YearOfCentury iso8601Week dayOfWeek } 4 { - set date [InterpretTwoDigitYear \ - $date[set date {}] $baseTime \ - iso8601YearOfCentury iso8601Year] - dict set date era CE - set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ - $changeover] - } - - { month dayOfMonth } 5 { - set date [AssignBaseYear $date[set date {}] \ - $baseTime $timeZone $changeover] - set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ - $changeover] - } - { dayOfYear } 5 { - set date [AssignBaseYear $date[set date {}] \ - $baseTime $timeZone $changeover] - set date [GetJulianDayFromEraYearDay $date[set date {}] \ - $changeover] - } - { iso8601Week dayOfWeek } 5 { - set date [AssignBaseIso8601Year $date[set date {}] \ - $baseTime $timeZone $changeover] - set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ - $changeover] - } - - { dayOfMonth } 6 { - set date [AssignBaseMonth $date[set date {}] \ - $baseTime $timeZone $changeover] - set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ - $changeover] - } - - { dayOfWeek } 7 { - set date [AssignBaseWeek $date[set date {}] \ - $baseTime $timeZone $changeover] - set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ - $changeover] - } - - {} 8 { - set date [AssignBaseJulianDay $date[set date {}] \ - $baseTime $timeZone $changeover] - } - } - - # Groups of fields that specify time of day, priorities, and code that - # processes them - - variable TimeParseActions { - - seconds 1 {} - - { hourAMPM minute second amPmIndicator } 2 { - dict set date secondOfDay [InterpretHMSP $date] - } - { hour minute second } 2 { - dict set date secondOfDay [InterpretHMS $date] - } - - { hourAMPM minute amPmIndicator } 3 { - dict set date second 0 - dict set date secondOfDay [InterpretHMSP $date] - } - { hour minute } 3 { - dict set date second 0 - dict set date secondOfDay [InterpretHMS $date] - } - - { hourAMPM amPmIndicator } 4 { - dict set date minute 0 - dict set date second 0 - dict set date secondOfDay [InterpretHMSP $date] - } - { hour } 4 { - dict set date minute 0 - dict set date second 0 - dict set date secondOfDay [InterpretHMS $date] - } - - { } 5 { - dict set date secondOfDay 0 - } - } - - # Legacy time zones, used primarily for parsing RFC822 dates. - - variable LegacyTimeZone [dict create \ - gmt +0000 \ - ut +0000 \ - utc +0000 \ - bst +0100 \ - wet +0000 \ - wat -0100 \ - at -0200 \ - nft -0330 \ - nst -0330 \ - ndt -0230 \ - ast -0400 \ - adt -0300 \ - est -0500 \ - edt -0400 \ - cst -0600 \ - cdt -0500 \ - mst -0700 \ - mdt -0600 \ - pst -0800 \ - pdt -0700 \ - yst -0900 \ - ydt -0800 \ - hst -1000 \ - hdt -0900 \ - cat -1000 \ - ahst -1000 \ - nt -1100 \ - idlw -1200 \ - cet +0100 \ - cest +0200 \ - met +0100 \ - mewt +0100 \ - mest +0200 \ - swt +0100 \ - sst +0200 \ - fwt +0100 \ - fst +0200 \ - eet +0200 \ - eest +0300 \ - bt +0300 \ - it +0330 \ - zp4 +0400 \ - zp5 +0500 \ - ist +0530 \ - zp6 +0600 \ - wast +0700 \ - wadt +0800 \ - jt +0730 \ - cct +0800 \ - jst +0900 \ - kst +0900 \ - cast +0930 \ - jdt +1000 \ - kdt +1000 \ - cadt +1030 \ - east +1000 \ - eadt +1030 \ - gst +1000 \ - nzt +1200 \ - nzst +1200 \ - nzdt +1300 \ - idle +1200 \ - a +0100 \ - b +0200 \ - c +0300 \ - d +0400 \ - e +0500 \ - f +0600 \ - g +0700 \ - h +0800 \ - i +0900 \ - k +1000 \ - l +1100 \ - m +1200 \ - n -0100 \ - o -0200 \ - p -0300 \ - q -0400 \ - r -0500 \ - s -0600 \ - t -0700 \ - u -0800 \ - v -0900 \ - w -1000 \ - x -1100 \ - y -1200 \ - z +0000 \ - ] - - # Caches - - variable LocaleNumeralCache {}; # Dictionary whose keys are locale - # names and whose values are pairs - # comprising regexes matching numerals - # in the given locales and dictionaries - # mapping the numerals to their numeric - # values. - # variable CachedSystemTimeZone; # If 'CachedSystemTimeZone' exists, - # it contains the value of the - # system time zone, as determined from - # the environment. - variable TimeZoneBad {}; # Dictionary whose keys are time zone - # names and whose values are 1 if - # the time zone is unknown and 0 - # if it is known. - variable TZData; # Array whose keys are time zone names - # and whose values are lists of quads - # comprising start time, UTC offset, - # Daylight Saving Time indicator, and - # time zone abbreviation. - variable FormatProc; # Array mapping format group - # and locale to the name of a procedure - # that renders the given format -} -::tcl::clock::Initialize - -#---------------------------------------------------------------------- -# -# clock format -- -# -# Formats a count of seconds since the Posix Epoch as a time of day. -# -# The 'clock format' command formats times of day for output. Refer to the -# user documentation to see what it does. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::format { args } { - - variable FormatProc - variable TZData - - lassign [ParseFormatArgs {*}$args] format locale timezone - set locale [string tolower $locale] - set clockval [lindex $args 0] - - # Get the data for time changes in the given zone - - if {$timezone eq ""} { - set timezone [GetSystemTimeZone] - } - if {![info exists TZData($timezone)]} { - if {[catch {SetupTimeZone $timezone} retval opts]} { - dict unset opts -errorinfo - return -options $opts $retval - } - } - - # Build a procedure to format the result. Cache the built procedure's name - # in the 'FormatProc' array to avoid losing its internal representation, - # which contains the name resolution. - - set procName formatproc'$format'$locale - set procName [namespace current]::[string map {: {\:} \\ {\\}} $procName] - if {[info exists FormatProc($procName)]} { - set procName $FormatProc($procName) - } else { - set FormatProc($procName) \ - [ParseClockFormatFormat $procName $format $locale] - } - - return [$procName $clockval $timezone] - -} - -#---------------------------------------------------------------------- -# -# ParseClockFormatFormat -- -# -# Builds and caches a procedure that formats a time value. -# -# Parameters: -# format -- Format string to use -# locale -- Locale in which the format string is to be interpreted -# -# Results: -# Returns the name of the newly-built procedure. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ParseClockFormatFormat {procName format locale} { - - if {[namespace which $procName] ne {}} { - return $procName - } - - # Map away the locale-dependent composite format groups - - EnterLocale $locale - - # Change locale if a fresh locale has been given on the command line. - - try { - return [ParseClockFormatFormat2 $format $locale $procName] - } trap CLOCK {result opts} { - dict unset opts -errorinfo - return -options $opts $result - } -} - -proc ::tcl::clock::ParseClockFormatFormat2 {format locale procName} { - set didLocaleEra 0 - set didLocaleNumerals 0 - set preFormatCode \ - [string map [list @GREGORIAN_CHANGE_DATE@ \ - [mc GREGORIAN_CHANGE_DATE]] \ - { - variable TZData - set date [GetDateFields $clockval \ - $TZData($timezone) \ - @GREGORIAN_CHANGE_DATE@] - }] - set formatString {} - set substituents {} - set state {} - - set format [LocalizeFormat $locale $format] - - foreach char [split $format {}] { - switch -exact -- $state { - {} { - if { [string equal % $char] } { - set state percent - } else { - append formatString $char - } - } - percent { # Character following a '%' character - set state {} - switch -exact -- $char { - % { # A literal character, '%' - append formatString %% - } - a { # Day of week, abbreviated - append formatString %s - append substituents \ - [string map \ - [list @DAYS_OF_WEEK_ABBREV@ \ - [list [mc DAYS_OF_WEEK_ABBREV]]] \ - { [lindex @DAYS_OF_WEEK_ABBREV@ \ - [expr {[dict get $date dayOfWeek] \ - % 7}]]}] - } - A { # Day of week, spelt out. - append formatString %s - append substituents \ - [string map \ - [list @DAYS_OF_WEEK_FULL@ \ - [list [mc DAYS_OF_WEEK_FULL]]] \ - { [lindex @DAYS_OF_WEEK_FULL@ \ - [expr {[dict get $date dayOfWeek] \ - % 7}]]}] - } - b - h { # Name of month, abbreviated. - append formatString %s - append substituents \ - [string map \ - [list @MONTHS_ABBREV@ \ - [list [mc MONTHS_ABBREV]]] \ - { [lindex @MONTHS_ABBREV@ \ - [expr {[dict get $date month]-1}]]}] - } - B { # Name of month, spelt out - append formatString %s - append substituents \ - [string map \ - [list @MONTHS_FULL@ \ - [list [mc MONTHS_FULL]]] \ - { [lindex @MONTHS_FULL@ \ - [expr {[dict get $date month]-1}]]}] - } - C { # Century number - append formatString %02d - append substituents \ - { [expr {[dict get $date year] / 100}]} - } - d { # Day of month, with leading zero - append formatString %02d - append substituents { [dict get $date dayOfMonth]} - } - e { # Day of month, without leading zero - append formatString %2d - append substituents { [dict get $date dayOfMonth]} - } - E { # Format group in a locale-dependent - # alternative era - set state percentE - if {!$didLocaleEra} { - append preFormatCode \ - [string map \ - [list @LOCALE_ERAS@ \ - [list [mc LOCALE_ERAS]]] \ - { - set date [GetLocaleEra \ - $date[set date {}] \ - @LOCALE_ERAS@]}] \n - set didLocaleEra 1 - } - if {!$didLocaleNumerals} { - append preFormatCode \ - [list set localeNumerals \ - [mc LOCALE_NUMERALS]] \n - set didLocaleNumerals 1 - } - } - g { # Two-digit year relative to ISO8601 - # week number - append formatString %02d - append substituents \ - { [expr { [dict get $date iso8601Year] % 100 }]} - } - G { # Four-digit year relative to ISO8601 - # week number - append formatString %02d - append substituents { [dict get $date iso8601Year]} - } - H { # Hour in the 24-hour day, leading zero - append formatString %02d - append substituents \ - { [expr { [dict get $date localSeconds] \ - / 3600 % 24}]} - } - I { # Hour AM/PM, with leading zero - append formatString %02d - append substituents \ - { [expr { ( ( ( [dict get $date localSeconds] \ - % 86400 ) \ - + 86400 \ - - 3600 ) \ - / 3600 ) \ - % 12 + 1 }] } - } - j { # Day of year (001-366) - append formatString %03d - append substituents { [dict get $date dayOfYear]} - } - J { # Julian Day Number - append formatString %07ld - append substituents { [dict get $date julianDay]} - } - k { # Hour (0-23), no leading zero - append formatString %2d - append substituents \ - { [expr { [dict get $date localSeconds] - / 3600 - % 24 }]} - } - l { # Hour (12-11), no leading zero - append formatString %2d - append substituents \ - { [expr { ( ( ( [dict get $date localSeconds] - % 86400 ) - + 86400 - - 3600 ) - / 3600 ) - % 12 + 1 }]} - } - m { # Month number, leading zero - append formatString %02d - append substituents { [dict get $date month]} - } - M { # Minute of the hour, leading zero - append formatString %02d - append substituents \ - { [expr { [dict get $date localSeconds] - / 60 - % 60 }]} - } - n { # A literal newline - append formatString \n - } - N { # Month number, no leading zero - append formatString %2d - append substituents { [dict get $date month]} - } - O { # A format group in the locale's - # alternative numerals - set state percentO - if {!$didLocaleNumerals} { - append preFormatCode \ - [list set localeNumerals \ - [mc LOCALE_NUMERALS]] \n - set didLocaleNumerals 1 - } - } - p { # Localized 'AM' or 'PM' indicator - # converted to uppercase - append formatString %s - append preFormatCode \ - [list set AM [string toupper [mc AM]]] \n \ - [list set PM [string toupper [mc PM]]] \n - append substituents \ - { [expr {(([dict get $date localSeconds] - % 86400) < 43200) ? - $AM : $PM}]} - } - P { # Localized 'AM' or 'PM' indicator - append formatString %s - append preFormatCode \ - [list set am [mc AM]] \n \ - [list set pm [mc PM]] \n - append substituents \ - { [expr {(([dict get $date localSeconds] - % 86400) < 43200) ? - $am : $pm}]} - - } - Q { # Hi, Jeff! - append formatString %s - append substituents { [FormatStarDate $date]} - } - s { # Seconds from the Posix Epoch - append formatString %s - append substituents { [dict get $date seconds]} - } - S { # Second of the minute, with - # leading zero - append formatString %02d - append substituents \ - { [expr { [dict get $date localSeconds] - % 60 }]} - } - t { # A literal tab character - append formatString \t - } - u { # Day of the week (1-Monday, 7-Sunday) - append formatString %1d - append substituents { [dict get $date dayOfWeek]} - } - U { # Week of the year (00-53). The - # first Sunday of the year is the - # first day of week 01 - append formatString %02d - append preFormatCode { - set dow [dict get $date dayOfWeek] - if { $dow == 7 } { - set dow 0 - } - incr dow - set UweekNumber \ - [expr { ( [dict get $date dayOfYear] - - $dow + 7 ) - / 7 }] - } - append substituents { $UweekNumber} - } - V { # The ISO8601 week number - append formatString %02d - append substituents { [dict get $date iso8601Week]} - } - w { # Day of the week (0-Sunday, - # 6-Saturday) - append formatString %1d - append substituents \ - { [expr { [dict get $date dayOfWeek] % 7 }]} - } - W { # Week of the year (00-53). The first - # Monday of the year is the first day - # of week 01. - append preFormatCode { - set WweekNumber \ - [expr { ( [dict get $date dayOfYear] - - [dict get $date dayOfWeek] - + 7 ) - / 7 }] - } - append formatString %02d - append substituents { $WweekNumber} - } - y { # The two-digit year of the century - append formatString %02d - append substituents \ - { [expr { [dict get $date year] % 100 }]} - } - Y { # The four-digit year - append formatString %04d - append substituents { [dict get $date year]} - } - z { # The time zone as hours and minutes - # east (+) or west (-) of Greenwich - append formatString %s - append substituents { [FormatNumericTimeZone \ - [dict get $date tzOffset]]} - } - Z { # The name of the time zone - append formatString %s - append substituents { [dict get $date tzName]} - } - % { # A literal percent character - append formatString %% - } - default { # An unknown escape sequence - append formatString %% $char - } - } - } - percentE { # Character following %E - set state {} - switch -exact -- $char { - E { - append formatString %s - append substituents { } \ - [string map \ - [list @BCE@ [list [mc BCE]] \ - @CE@ [list [mc CE]]] \ - {[dict get {BCE @BCE@ CE @CE@} \ - [dict get $date era]]}] - } - C { # Locale-dependent era - append formatString %s - append substituents { [dict get $date localeEra]} - } - y { # Locale-dependent year of the era - append preFormatCode { - set y [dict get $date localeYear] - if { $y >= 0 && $y < 100 } { - set Eyear [lindex $localeNumerals $y] - } else { - set Eyear $y - } - } - append formatString %s - append substituents { $Eyear} - } - default { # Unknown %E format group - append formatString %%E $char - } - } - } - percentO { # Character following %O - set state {} - switch -exact -- $char { - d - e { # Day of the month in alternative - # numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [dict get $date dayOfMonth]]} - } - H - k { # Hour of the day in alternative - # numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [expr { [dict get $date localSeconds] - / 3600 - % 24 }]]} - } - I - l { # Hour (12-11) AM/PM in alternative - # numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [expr { ( ( ( [dict get $date localSeconds] - % 86400 ) - + 86400 - - 3600 ) - / 3600 ) - % 12 + 1 }]]} - } - m { # Month number in alternative numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals [dict get $date month]]} - } - M { # Minute of the hour in alternative - # numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [expr { [dict get $date localSeconds] - / 60 - % 60 }]]} - } - S { # Second of the minute in alternative - # numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [expr { [dict get $date localSeconds] - % 60 }]]} - } - u { # Day of the week (Monday=1,Sunday=7) - # in alternative numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [dict get $date dayOfWeek]]} - } - w { # Day of the week (Sunday=0,Saturday=6) - # in alternative numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [expr { [dict get $date dayOfWeek] % 7 }]]} - } - y { # Year of the century in alternative - # numerals - append formatString %s - append substituents \ - { [lindex $localeNumerals \ - [expr { [dict get $date year] % 100 }]]} - } - default { # Unknown format group - append formatString %%O $char - } - } - } - } - } - - # Clean up any improperly terminated groups - - switch -exact -- $state { - percent { - append formatString %% - } - percentE { - append retval %%E - } - percentO { - append retval %%O - } - } - - proc $procName {clockval timezone} " - $preFormatCode - return \[::format [list $formatString] $substituents\] - " - - # puts [list $procName [info args $procName] [info body $procName]] - - return $procName -} - -#---------------------------------------------------------------------- -# -# clock scan -- -# -# Inputs a count of seconds since the Posix Epoch as a time of day. -# -# The 'clock scan' command scans times of day on input. Refer to the user -# documentation to see what it does. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::scan { args } { - - set format {} - - # Check the count of args - - if { [llength $args] < 1 || [llength $args] % 2 != 1 } { - set cmdName "clock scan" - return -code error \ - -errorcode [list CLOCK wrongNumArgs] \ - "wrong \# args: should be\ - \"$cmdName string\ - ?-base seconds?\ - ?-format string? ?-gmt boolean?\ - ?-locale LOCALE? ?-timezone ZONE?\"" - } - - # Set defaults - - set base [clock seconds] - set string [lindex $args 0] - set format {} - set gmt 0 - set locale c - set timezone [GetSystemTimeZone] - - # Pick up command line options. - - foreach { flag value } [lreplace $args 0 0] { - switch -exact -- $flag { - -b - -ba - -bas - -base { - set base $value - } - -f - -fo - -for - -form - -forma - -format { - set saw(-format) {} - set format $value - } - -g - -gm - -gmt { - set saw(-gmt) {} - set gmt $value - } - -l - -lo - -loc - -loca - -local - -locale { - set saw(-locale) {} - set locale [string tolower $value] - } - -t - -ti - -tim - -time - -timez - -timezo - -timezon - -timezone { - set saw(-timezone) {} - set timezone $value - } - default { - return -code error \ - -errorcode [list CLOCK badOption $flag] \ - "bad option \"$flag\",\ - must be -base, -format, -gmt, -locale or -timezone" - } - } - } - - # Check options for validity - - if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } { - return -code error \ - -errorcode [list CLOCK gmtWithTimezone] \ - "cannot use -gmt and -timezone in same call" - } - if { [catch { expr { wide($base) } } result] } { - return -code error "expected integer but got \"$base\"" - } - if { ![string is boolean -strict $gmt] } { - return -code error "expected boolean value but got \"$gmt\"" - } elseif { $gmt } { - set timezone :GMT - } - - if { ![info exists saw(-format)] } { - # Perhaps someday we'll localize the legacy code. Right now, it's not - # localized. - if { [info exists saw(-locale)] } { - return -code error \ - -errorcode [list CLOCK flagWithLegacyFormat] \ - "legacy \[clock scan\] does not support -locale" - - } - return [FreeScan $string $base $timezone $locale] - } - - # Change locale if a fresh locale has been given on the command line. - - EnterLocale $locale - - try { - # Map away the locale-dependent composite format groups - - set scanner [ParseClockScanFormat $format $locale] - return [$scanner $string $base $timezone] - } trap CLOCK {result opts} { - # Conceal location of generation of expected errors - dict unset opts -errorinfo - return -options $opts $result - } -} - -#---------------------------------------------------------------------- -# -# FreeScan -- -# -# Scans a time in free format -# -# Parameters: -# string - String containing the time to scan -# base - Base time, expressed in seconds from the Epoch -# timezone - Default time zone in which the time will be expressed -# locale - (Unused) Name of the locale where the time will be scanned. -# -# Results: -# Returns the date and time extracted from the string in seconds from -# the epoch -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::FreeScan { string base timezone locale } { - - variable TZData - - # Get the data for time changes in the given zone - - try { - SetupTimeZone $timezone - } on error {retval opts} { - dict unset opts -errorinfo - return -options $opts $retval - } - - # Extract year, month and day from the base time for the parser to use as - # defaults - - set date [GetDateFields $base $TZData($timezone) 2361222] - dict set date secondOfDay [expr { - [dict get $date localSeconds] % 86400 - }] - - # Parse the date. The parser will return a list comprising date, time, - # time zone, relative month/day/seconds, relative weekday, ordinal month. - - try { - set scanned [Oldscan $string \ - [dict get $date year] \ - [dict get $date month] \ - [dict get $date dayOfMonth]] - lassign $scanned \ - parseDate parseTime parseZone parseRel \ - parseWeekday parseOrdinalMonth - } on error message { - return -code error \ - "unable to convert date-time string \"$string\": $message" - } - - # If the caller supplied a date in the string, update the 'date' dict with - # the value. If the caller didn't specify a time with the date, default to - # midnight. - - if { [llength $parseDate] > 0 } { - lassign $parseDate y m d - if { $y < 100 } { - if { $y >= 39 } { - incr y 1900 - } else { - incr y 2000 - } - } - dict set date era CE - dict set date year $y - dict set date month $m - dict set date dayOfMonth $d - if { $parseTime eq {} } { - set parseTime 0 - } - } - - # If the caller supplied a time zone in the string, it comes back as a - # two-element list; the first element is the number of minutes east of - # Greenwich, and the second is a Daylight Saving Time indicator (1 == yes, - # 0 == no, -1 == unknown). We make it into a time zone indicator of - # +-hhmm. - - if { [llength $parseZone] > 0 } { - lassign $parseZone minEast dstFlag - set timezone [FormatNumericTimeZone \ - [expr { 60 * $minEast + 3600 * $dstFlag }]] - SetupTimeZone $timezone - } - dict set date tzName $timezone - - # Assemble date, time, zone into seconds-from-epoch - - set date [GetJulianDayFromEraYearMonthDay $date[set date {}] 2361222] - if { $parseTime ne {} } { - dict set date secondOfDay $parseTime - } elseif { [llength $parseWeekday] != 0 - || [llength $parseOrdinalMonth] != 0 - || ( [llength $parseRel] != 0 - && ( [lindex $parseRel 0] != 0 - || [lindex $parseRel 1] != 0 ) ) } { - dict set date secondOfDay 0 - } - - dict set date localSeconds [expr { - -210866803200 - + ( 86400 * wide([dict get $date julianDay]) ) - + [dict get $date secondOfDay] - }] - dict set date tzName $timezone - set date [ConvertLocalToUTC $date[set date {}] $TZData($timezone) 2361222] - set seconds [dict get $date seconds] - - # Do relative times - - if { [llength $parseRel] > 0 } { - lassign $parseRel relMonth relDay relSecond - set seconds [add $seconds \ - $relMonth months $relDay days $relSecond seconds \ - -timezone $timezone -locale $locale] - } - - # Do relative weekday - - if { [llength $parseWeekday] > 0 } { - lassign $parseWeekday dayOrdinal dayOfWeek - set date2 [GetDateFields $seconds $TZData($timezone) 2361222] - dict set date2 era CE - set jdwkday [WeekdayOnOrBefore $dayOfWeek [expr { - [dict get $date2 julianDay] + 6 - }]] - incr jdwkday [expr { 7 * $dayOrdinal }] - if { $dayOrdinal > 0 } { - incr jdwkday -7 - } - dict set date2 secondOfDay \ - [expr { [dict get $date2 localSeconds] % 86400 }] - dict set date2 julianDay $jdwkday - dict set date2 localSeconds [expr { - -210866803200 - + ( 86400 * wide([dict get $date2 julianDay]) ) - + [dict get $date secondOfDay] - }] - dict set date2 tzName $timezone - set date2 [ConvertLocalToUTC $date2[set date2 {}] $TZData($timezone) \ - 2361222] - set seconds [dict get $date2 seconds] - - } - - # Do relative month - - if { [llength $parseOrdinalMonth] > 0 } { - lassign $parseOrdinalMonth monthOrdinal monthNumber - if { $monthOrdinal > 0 } { - set monthDiff [expr { $monthNumber - [dict get $date month] }] - if { $monthDiff <= 0 } { - incr monthDiff 12 - } - incr monthOrdinal -1 - } else { - set monthDiff [expr { [dict get $date month] - $monthNumber }] - if { $monthDiff >= 0 } { - incr monthDiff -12 - } - incr monthOrdinal - } - set seconds [add $seconds $monthOrdinal years $monthDiff months \ - -timezone $timezone -locale $locale] - } - - return $seconds -} - - -#---------------------------------------------------------------------- -# -# ParseClockScanFormat -- -# -# Parses a format string given to [clock scan -format] -# -# Parameters: -# formatString - The format being parsed -# locale - The current locale -# -# Results: -# Constructs and returns a procedure that accepts the string being -# scanned, the base time, and the time zone. The procedure will either -# return the scanned time or else throw an error that should be rethrown -# to the caller of [clock scan] -# -# Side effects: -# The given procedure is defined in the ::tcl::clock namespace. Scan -# procedures are not deleted once installed. -# -# Why do we parse dates by defining a procedure to parse them? The reason is -# that by doing so, we have one convenient place to cache all the information: -# the regular expressions that match the patterns (which will be compiled), -# the code that assembles the date information, everything lands in one place. -# In this way, when a given format is reused at run time, all the information -# of how to apply it is available in a single place. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ParseClockScanFormat {formatString locale} { - # Check whether the format has been parsed previously, and return the - # existing recognizer if it has. - - set procName scanproc'$formatString'$locale - set procName [namespace current]::[string map {: {\:} \\ {\\}} $procName] - if { [namespace which $procName] != {} } { - return $procName - } - - variable DateParseActions - variable TimeParseActions - - # Localize the %x, %X, etc. groups - - set formatString [LocalizeFormat $locale $formatString] - - # Condense whitespace - - regsub -all {[[:space:]]+} $formatString { } formatString - - # Walk through the groups of the format string. In this loop, we - # accumulate: - # - a regular expression that matches the string, - # - the count of capturing brackets in the regexp - # - a set of code that post-processes the fields captured by the regexp, - # - a dictionary whose keys are the names of fields that are present - # in the format string. - - set re {^[[:space:]]*} - set captureCount 0 - set postcode {} - set fieldSet [dict create] - set fieldCount 0 - set postSep {} - set state {} - - foreach c [split $formatString {}] { - switch -exact -- $state { - {} { - if { $c eq "%" } { - set state % - } elseif { $c eq " " } { - append re {[[:space:]]+} - } else { - if { ! [string is alnum $c] } { - append re "\\" - } - append re $c - } - } - % { - set state {} - switch -exact -- $c { - % { - append re % - } - { } { - append re "\[\[:space:\]\]*" - } - a - A { # Day of week, in words - set l {} - foreach \ - i {7 1 2 3 4 5 6} \ - abr [mc DAYS_OF_WEEK_ABBREV] \ - full [mc DAYS_OF_WEEK_FULL] { - dict set l [string tolower $abr] $i - dict set l [string tolower $full] $i - incr i - } - lassign [UniquePrefixRegexp $l] regex lookup - append re ( $regex ) - dict set fieldSet dayOfWeek [incr fieldCount] - append postcode "dict set date dayOfWeek \[" \ - "dict get " [list $lookup] " " \ - \[ {string tolower $field} [incr captureCount] \] \ - "\]\n" - } - b - B - h { # Name of month - set i 0 - set l {} - foreach \ - abr [mc MONTHS_ABBREV] \ - full [mc MONTHS_FULL] { - incr i - dict set l [string tolower $abr] $i - dict set l [string tolower $full] $i - } - lassign [UniquePrefixRegexp $l] regex lookup - append re ( $regex ) - dict set fieldSet month [incr fieldCount] - append postcode "dict set date month \[" \ - "dict get " [list $lookup] \ - " " \[ {string tolower $field} \ - [incr captureCount] \] \ - "\]\n" - } - C { # Gregorian century - append re \\s*(\\d\\d?) - dict set fieldSet century [incr fieldCount] - append postcode "dict set date century \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - d - e { # Day of month - append re \\s*(\\d\\d?) - dict set fieldSet dayOfMonth [incr fieldCount] - append postcode "dict set date dayOfMonth \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - E { # Prefix for locale-specific codes - set state %E - } - g { # ISO8601 2-digit year - append re \\s*(\\d\\d) - dict set fieldSet iso8601YearOfCentury \ - [incr fieldCount] - append postcode \ - "dict set date iso8601YearOfCentury \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - G { # ISO8601 4-digit year - append re \\s*(\\d\\d)(\\d\\d) - dict set fieldSet iso8601Century [incr fieldCount] - dict set fieldSet iso8601YearOfCentury \ - [incr fieldCount] - append postcode \ - "dict set date iso8601Century \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" \ - "dict set date iso8601YearOfCentury \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - H - k { # Hour of day - append re \\s*(\\d\\d?) - dict set fieldSet hour [incr fieldCount] - append postcode "dict set date hour \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - I - l { # Hour, AM/PM - append re \\s*(\\d\\d?) - dict set fieldSet hourAMPM [incr fieldCount] - append postcode "dict set date hourAMPM \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - j { # Day of year - append re \\s*(\\d\\d?\\d?) - dict set fieldSet dayOfYear [incr fieldCount] - append postcode "dict set date dayOfYear \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - J { # Julian Day Number - append re \\s*(\\d+) - dict set fieldSet julianDay [incr fieldCount] - append postcode "dict set date julianDay \[" \ - "::scan \$field" [incr captureCount] " %ld" \ - "\]\n" - } - m - N { # Month number - append re \\s*(\\d\\d?) - dict set fieldSet month [incr fieldCount] - append postcode "dict set date month \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - M { # Minute - append re \\s*(\\d\\d?) - dict set fieldSet minute [incr fieldCount] - append postcode "dict set date minute \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - n { # Literal newline - append re \\n - } - O { # Prefix for locale numerics - set state %O - } - p - P { # AM/PM indicator - set l [list [string tolower [mc AM]] 0 \ - [string tolower [mc PM]] 1] - lassign [UniquePrefixRegexp $l] regex lookup - append re ( $regex ) - dict set fieldSet amPmIndicator [incr fieldCount] - append postcode "dict set date amPmIndicator \[" \ - "dict get " [list $lookup] " \[string tolower " \ - "\$field" \ - [incr captureCount] \ - "\]\]\n" - } - Q { # Hi, Jeff! - append re {Stardate\s+([-+]?\d+)(\d\d\d)[.](\d)} - incr captureCount - dict set fieldSet seconds [incr fieldCount] - append postcode {dict set date seconds } \[ \ - {ParseStarDate $field} [incr captureCount] \ - { $field} [incr captureCount] \ - { $field} [incr captureCount] \ - \] \n - } - s { # Seconds from Posix Epoch - # This next case is insanely difficult, because it's - # problematic to determine whether the field is - # actually within the range of a wide integer. - append re {\s*([-+]?\d+)} - dict set fieldSet seconds [incr fieldCount] - append postcode {dict set date seconds } \[ \ - {ScanWide $field} [incr captureCount] \] \n - } - S { # Second - append re \\s*(\\d\\d?) - dict set fieldSet second [incr fieldCount] - append postcode "dict set date second \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - t { # Literal tab character - append re \\t - } - u - w { # Day number within week, 0 or 7 == Sun - # 1=Mon, 6=Sat - append re \\s*(\\d) - dict set fieldSet dayOfWeek [incr fieldCount] - append postcode {::scan $field} [incr captureCount] \ - { %d dow} \n \ - { - if { $dow == 0 } { - set dow 7 - } elseif { $dow > 7 } { - return -code error \ - -errorcode [list CLOCK badDayOfWeek] \ - "day of week is greater than 7" - } - dict set date dayOfWeek $dow - } - } - U { # Week of year. The first Sunday of - # the year is the first day of week - # 01. No scan rule uses this group. - append re \\s*\\d\\d? - } - V { # Week of ISO8601 year - - append re \\s*(\\d\\d?) - dict set fieldSet iso8601Week [incr fieldCount] - append postcode "dict set date iso8601Week \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - W { # Week of the year (00-53). The first - # Monday of the year is the first day - # of week 01. No scan rule uses this - # group. - append re \\s*\\d\\d? - } - y { # Two-digit Gregorian year - append re \\s*(\\d\\d?) - dict set fieldSet yearOfCentury [incr fieldCount] - append postcode "dict set date yearOfCentury \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - Y { # 4-digit Gregorian year - append re \\s*(\\d\\d)(\\d\\d) - dict set fieldSet century [incr fieldCount] - dict set fieldSet yearOfCentury [incr fieldCount] - append postcode \ - "dict set date century \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" \ - "dict set date yearOfCentury \[" \ - "::scan \$field" [incr captureCount] " %d" \ - "\]\n" - } - z - Z { # Time zone name - append re {(?:([-+]\d\d(?::?\d\d(?::?\d\d)?)?)|([[:alnum:]]{1,4}))} - dict set fieldSet tzName [incr fieldCount] - append postcode \ - {if } \{ { $field} [incr captureCount] \ - { ne "" } \} { } \{ \n \ - {dict set date tzName $field} \ - $captureCount \n \ - \} { else } \{ \n \ - {dict set date tzName } \[ \ - {ConvertLegacyTimeZone $field} \ - [incr captureCount] \] \n \ - \} \n \ - } - % { # Literal percent character - append re % - } - default { - append re % - if { ! [string is alnum $c] } { - append re \\ - } - append re $c - } - } - } - %E { - switch -exact -- $c { - C { # Locale-dependent era - set d {} - foreach triple [mc LOCALE_ERAS] { - lassign $triple t symbol year - dict set d [string tolower $symbol] $year - } - lassign [UniquePrefixRegexp $d] regex lookup - append re (?: $regex ) - } - E { - set l {} - dict set l [string tolower [mc BCE]] BCE - dict set l [string tolower [mc CE]] CE - dict set l b.c.e. BCE - dict set l c.e. CE - dict set l b.c. BCE - dict set l a.d. CE - lassign [UniquePrefixRegexp $l] regex lookup - append re ( $regex ) - dict set fieldSet era [incr fieldCount] - append postcode "dict set date era \["\ - "dict get " [list $lookup] \ - { } \[ {string tolower $field} \ - [incr captureCount] \] \ - "\]\n" - } - y { # Locale-dependent year of the era - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - incr captureCount - } - default { - append re %E - if { ! [string is alnum $c] } { - append re \\ - } - append re $c - } - } - set state {} - } - %O { - switch -exact -- $c { - d - e { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet dayOfMonth [incr fieldCount] - append postcode "dict set date dayOfMonth \[" \ - "dict get " [list $lookup] " \$field" \ - [incr captureCount] \ - "\]\n" - } - H - k { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet hour [incr fieldCount] - append postcode "dict set date hour \[" \ - "dict get " [list $lookup] " \$field" \ - [incr captureCount] \ - "\]\n" - } - I - l { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet hourAMPM [incr fieldCount] - append postcode "dict set date hourAMPM \[" \ - "dict get " [list $lookup] " \$field" \ - [incr captureCount] \ - "\]\n" - } - m { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet month [incr fieldCount] - append postcode "dict set date month \[" \ - "dict get " [list $lookup] " \$field" \ - [incr captureCount] \ - "\]\n" - } - M { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet minute [incr fieldCount] - append postcode "dict set date minute \[" \ - "dict get " [list $lookup] " \$field" \ - [incr captureCount] \ - "\]\n" - } - S { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet second [incr fieldCount] - append postcode "dict set date second \[" \ - "dict get " [list $lookup] " \$field" \ - [incr captureCount] \ - "\]\n" - } - u - w { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet dayOfWeek [incr fieldCount] - append postcode "set dow \[dict get " [list $lookup] \ - { $field} [incr captureCount] \] \n \ - { - if { $dow == 0 } { - set dow 7 - } elseif { $dow > 7 } { - return -code error \ - -errorcode [list CLOCK badDayOfWeek] \ - "day of week is greater than 7" - } - dict set date dayOfWeek $dow - } - } - y { - lassign [LocaleNumeralMatcher $locale] regex lookup - append re $regex - dict set fieldSet yearOfCentury [incr fieldCount] - append postcode {dict set date yearOfCentury } \[ \ - {dict get } [list $lookup] { $field} \ - [incr captureCount] \] \n - } - default { - append re %O - if { ! [string is alnum $c] } { - append re \\ - } - append re $c - } - } - set state {} - } - } - } - - # Clean up any unfinished format groups - - append re $state \\s*\$ - - # Build the procedure - - set procBody {} - append procBody "variable ::tcl::clock::TZData" \n - append procBody "if \{ !\[ regexp -nocase [list $re] \$string ->" - for { set i 1 } { $i <= $captureCount } { incr i } { - append procBody " " field $i - } - append procBody "\] \} \{" \n - append procBody { - return -code error -errorcode [list CLOCK badInputString] \ - {input string does not match supplied format} - } - append procBody \}\n - append procBody "set date \[dict create\]" \n - append procBody {dict set date tzName $timeZone} \n - append procBody $postcode - append procBody [list set changeover [mc GREGORIAN_CHANGE_DATE]] \n - - # Set up the time zone before doing anything with a default base date - # that might need a timezone to interpret it. - - if { ![dict exists $fieldSet seconds] - && ![dict exists $fieldSet starDate] } { - if { [dict exists $fieldSet tzName] } { - append procBody { - set timeZone [dict get $date tzName] - } - } - append procBody { - ::tcl::clock::SetupTimeZone $timeZone - } - } - - # Add code that gets Julian Day Number from the fields. - - append procBody [MakeParseCodeFromFields $fieldSet $DateParseActions] - - # Get time of day - - append procBody [MakeParseCodeFromFields $fieldSet $TimeParseActions] - - # Assemble seconds from the Julian day and second of the day. - # Convert to local time unless epoch seconds or stardate are - # being processed - they're always absolute - - if { ![dict exists $fieldSet seconds] - && ![dict exists $fieldSet starDate] } { - append procBody { - if { [dict get $date julianDay] > 5373484 } { - return -code error -errorcode [list CLOCK dateTooLarge] \ - "requested date too large to represent" - } - dict set date localSeconds [expr { - -210866803200 - + ( 86400 * wide([dict get $date julianDay]) ) - + [dict get $date secondOfDay] - }] - } - - # Finally, convert the date to local time - - append procBody { - set date [::tcl::clock::ConvertLocalToUTC $date[set date {}] \ - $TZData($timeZone) $changeover] - } - } - - # Return result - - append procBody {return [dict get $date seconds]} \n - - proc $procName { string baseTime timeZone } $procBody - - # puts [list proc $procName [list string baseTime timeZone] $procBody] - - return $procName -} - -#---------------------------------------------------------------------- -# -# LocaleNumeralMatcher -- -# -# Composes a regexp that captures the numerals in the given locale, and -# a dictionary to map them to conventional numerals. -# -# Parameters: -# locale - Name of the current locale -# -# Results: -# Returns a two-element list comprising the regexp and the dictionary. -# -# Side effects: -# Caches the result. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::LocaleNumeralMatcher {l} { - variable LocaleNumeralCache - - if { ![dict exists $LocaleNumeralCache $l] } { - set d {} - set i 0 - set sep \( - foreach n [mc LOCALE_NUMERALS] { - dict set d $n $i - regsub -all {[^[:alnum:]]} $n \\\\& subex - append re $sep $subex - set sep | - incr i - } - append re \) - dict set LocaleNumeralCache $l [list $re $d] - } - return [dict get $LocaleNumeralCache $l] -} - - - -#---------------------------------------------------------------------- -# -# UniquePrefixRegexp -- -# -# Composes a regexp that performs unique-prefix matching. The RE -# matches one of a supplied set of strings, or any unique prefix -# thereof. -# -# Parameters: -# data - List of alternating match-strings and values. -# Match-strings with distinct values are considered -# distinct. -# -# Results: -# Returns a two-element list. The first is a regexp that matches any -# unique prefix of any of the strings. The second is a dictionary whose -# keys are match values from the regexp and whose values are the -# corresponding values from 'data'. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::UniquePrefixRegexp { data } { - # The 'successors' dictionary will contain, for each string that is a - # prefix of any key, all characters that may follow that prefix. The - # 'prefixMapping' dictionary will have keys that are prefixes of keys and - # values that correspond to the keys. - - set prefixMapping [dict create] - set successors [dict create {} {}] - - # Walk the key-value pairs - - foreach { key value } $data { - # Construct all prefixes of the key; - - set prefix {} - foreach char [split $key {}] { - set oldPrefix $prefix - dict set successors $oldPrefix $char {} - append prefix $char - - # Put the prefixes in the 'prefixMapping' and 'successors' - # dictionaries - - dict lappend prefixMapping $prefix $value - if { ![dict exists $successors $prefix] } { - dict set successors $prefix {} - } - } - } - - # Identify those prefixes that designate unique values, and those that are - # the full keys - - set uniquePrefixMapping {} - dict for { key valueList } $prefixMapping { - if { [llength $valueList] == 1 } { - dict set uniquePrefixMapping $key [lindex $valueList 0] - } - } - foreach { key value } $data { - dict set uniquePrefixMapping $key $value - } - - # Construct the re. - - return [list \ - [MakeUniquePrefixRegexp $successors $uniquePrefixMapping {}] \ - $uniquePrefixMapping] -} - -#---------------------------------------------------------------------- -# -# MakeUniquePrefixRegexp -- -# -# Service procedure for 'UniquePrefixRegexp' that constructs a regular -# expresison that matches the unique prefixes. -# -# Parameters: -# successors - Dictionary whose keys are all prefixes -# of keys passed to 'UniquePrefixRegexp' and whose -# values are dictionaries whose keys are the characters -# that may follow those prefixes. -# uniquePrefixMapping - Dictionary whose keys are the unique -# prefixes and whose values are not examined. -# prefixString - Current prefix being processed. -# -# Results: -# Returns a constructed regular expression that matches the set of -# unique prefixes beginning with the 'prefixString'. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::MakeUniquePrefixRegexp { successors - uniquePrefixMapping - prefixString } { - - # Get the characters that may follow the current prefix string - - set schars [lsort -ascii [dict keys [dict get $successors $prefixString]]] - if { [llength $schars] == 0 } { - return {} - } - - # If there is more than one successor character, or if the current prefix - # is a unique prefix, surround the generated re with non-capturing - # parentheses. - - set re {} - if { - [dict exists $uniquePrefixMapping $prefixString] - || [llength $schars] > 1 - } then { - append re "(?:" - } - - # Generate a regexp that matches the successors. - - set sep "" - foreach { c } $schars { - set nextPrefix $prefixString$c - regsub -all {[^[:alnum:]]} $c \\\\& rechar - append re $sep $rechar \ - [MakeUniquePrefixRegexp \ - $successors $uniquePrefixMapping $nextPrefix] - set sep | - } - - # If the current prefix is a unique prefix, make all following text - # optional. Otherwise, if there is more than one successor character, - # close the non-capturing parentheses. - - if { [dict exists $uniquePrefixMapping $prefixString] } { - append re ")?" - } elseif { [llength $schars] > 1 } { - append re ")" - } - - return $re -} - -#---------------------------------------------------------------------- -# -# MakeParseCodeFromFields -- -# -# Composes Tcl code to extract the Julian Day Number from a dictionary -# containing date fields. -# -# Parameters: -# dateFields -- Dictionary whose keys are fields of the date, -# and whose values are the rightmost positions -# at which those fields appear. -# parseActions -- List of triples: field set, priority, and -# code to emit. Smaller priorities are better, and -# the list must be in ascending order by priority -# -# Results: -# Returns a burst of code that extracts the day number from the given -# date. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::MakeParseCodeFromFields { dateFields parseActions } { - - set currPrio 999 - set currFieldPos [list] - set currCodeBurst { - error "in ::tcl::clock::MakeParseCodeFromFields: can't happen" - } - - foreach { fieldSet prio parseAction } $parseActions { - # If we've found an answer that's better than any that follow, quit - # now. - - if { $prio > $currPrio } { - break - } - - # Accumulate the field positions that are used in the current field - # grouping. - - set fieldPos [list] - set ok true - foreach field $fieldSet { - if { ! [dict exists $dateFields $field] } { - set ok 0 - break - } - lappend fieldPos [dict get $dateFields $field] - } - - # Quit if we don't have a complete set of fields - if { !$ok } { - continue - } - - # Determine whether the current answer is better than the last. - - set fPos [lsort -integer -decreasing $fieldPos] - - if { $prio == $currPrio } { - foreach currPos $currFieldPos newPos $fPos { - if { - ![string is integer $newPos] - || ![string is integer $currPos] - || $newPos > $currPos - } then { - break - } - if { $newPos < $currPos } { - set ok 0 - break - } - } - } - if { !$ok } { - continue - } - - # Remember the best possibility for extracting date information - - set currPrio $prio - set currFieldPos $fPos - set currCodeBurst $parseAction - } - - return $currCodeBurst -} - -#---------------------------------------------------------------------- -# -# EnterLocale -- -# -# Switch [mclocale] to a given locale if necessary -# -# Parameters: -# locale -- Desired locale -# -# Results: -# Returns the locale that was previously current. -# -# Side effects: -# Does [mclocale]. If necessary, loads the designated locale's files. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::EnterLocale { locale } { - if { $locale eq {system} } { - if { $::tcl_platform(platform) ne {windows} } { - # On a non-windows platform, the 'system' locale is the same as - # the 'current' locale - - set locale current - } else { - # On a windows platform, the 'system' locale is adapted from the - # 'current' locale by applying the date and time formats from the - # Control Panel. First, load the 'current' locale if it's not yet - # loaded - - mcpackagelocale set [mclocale] - - # Make a new locale string for the system locale, and get the - # Control Panel information - - set locale [mclocale]_windows - if { ! [mcpackagelocale present $locale] } { - LoadWindowsDateTimeFormats $locale - } - } - } - if { $locale eq {current}} { - set locale [mclocale] - } - # Eventually load the locale - mcpackagelocale set $locale -} - -#---------------------------------------------------------------------- -# -# LoadWindowsDateTimeFormats -- -# -# Load the date/time formats from the Control Panel in Windows and -# convert them so that they're usable by Tcl. -# -# Parameters: -# locale - Name of the locale in whose message catalog -# the converted formats are to be stored. -# -# Results: -# None. -# -# Side effects: -# Updates the given message catalog with the locale strings. -# -# Presumes that on entry, [mclocale] is set to the current locale, so that -# default strings can be obtained if the Registry query fails. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::LoadWindowsDateTimeFormats { locale } { - # Bail out if we can't find the Registry - - variable NoRegistry - if { [info exists NoRegistry] } return - - if { ![catch { - registry get "HKEY_CURRENT_USER\\Control Panel\\International" \ - sShortDate - } string] } { - set quote {} - set datefmt {} - foreach { unquoted quoted } [split $string '] { - append datefmt $quote [string map { - dddd %A - ddd %a - dd %d - d %e - MMMM %B - MMM %b - MM %m - M %N - yyyy %Y - yy %y - y %y - gg {} - } $unquoted] - if { $quoted eq {} } { - set quote ' - } else { - set quote $quoted - } - } - ::msgcat::mcset $locale DATE_FORMAT $datefmt - } - - if { ![catch { - registry get "HKEY_CURRENT_USER\\Control Panel\\International" \ - sLongDate - } string] } { - set quote {} - set ldatefmt {} - foreach { unquoted quoted } [split $string '] { - append ldatefmt $quote [string map { - dddd %A - ddd %a - dd %d - d %e - MMMM %B - MMM %b - MM %m - M %N - yyyy %Y - yy %y - y %y - gg {} - } $unquoted] - if { $quoted eq {} } { - set quote ' - } else { - set quote $quoted - } - } - ::msgcat::mcset $locale LOCALE_DATE_FORMAT $ldatefmt - } - - if { ![catch { - registry get "HKEY_CURRENT_USER\\Control Panel\\International" \ - sTimeFormat - } string] } { - set quote {} - set timefmt {} - foreach { unquoted quoted } [split $string '] { - append timefmt $quote [string map { - HH %H - H %k - hh %I - h %l - mm %M - m %M - ss %S - s %S - tt %p - t %p - } $unquoted] - if { $quoted eq {} } { - set quote ' - } else { - set quote $quoted - } - } - ::msgcat::mcset $locale TIME_FORMAT $timefmt - } - - catch { - ::msgcat::mcset $locale DATE_TIME_FORMAT "$datefmt $timefmt" - } - catch { - ::msgcat::mcset $locale LOCALE_DATE_TIME_FORMAT "$ldatefmt $timefmt" - } - - return - -} - -#---------------------------------------------------------------------- -# -# LocalizeFormat -- -# -# Map away locale-dependent format groups in a clock format. -# -# Parameters: -# locale -- Current [mclocale] locale, supplied to avoid -# an extra call -# format -- Format supplied to [clock scan] or [clock format] -# -# Results: -# Returns the string with locale-dependent composite format groups -# substituted out. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::LocalizeFormat { locale format } { - - # message catalog key to cache this format - set key FORMAT_$format - - if { [::msgcat::mcexists -exactlocale -exactnamespace $key] } { - return [mc $key] - } - # Handle locale-dependent format groups by mapping them out of the format - # string. Note that the order of the [string map] operations is - # significant because later formats can refer to later ones; for example - # %c can refer to %X, which in turn can refer to %T. - - set list { - %% %% - %D %m/%d/%Y - %+ {%a %b %e %H:%M:%S %Z %Y} - } - lappend list %EY [string map $list [mc LOCALE_YEAR_FORMAT]] - lappend list %T [string map $list [mc TIME_FORMAT_24_SECS]] - lappend list %R [string map $list [mc TIME_FORMAT_24]] - lappend list %r [string map $list [mc TIME_FORMAT_12]] - lappend list %X [string map $list [mc TIME_FORMAT]] - lappend list %EX [string map $list [mc LOCALE_TIME_FORMAT]] - lappend list %x [string map $list [mc DATE_FORMAT]] - lappend list %Ex [string map $list [mc LOCALE_DATE_FORMAT]] - lappend list %c [string map $list [mc DATE_TIME_FORMAT]] - lappend list %Ec [string map $list [mc LOCALE_DATE_TIME_FORMAT]] - set format [string map $list $format] - - ::msgcat::mcset $locale $key $format - return $format -} - -#---------------------------------------------------------------------- -# -# FormatNumericTimeZone -- -# -# Formats a time zone as +hhmmss -# -# Parameters: -# z - Time zone in seconds east of Greenwich -# -# Results: -# Returns the time zone formatted in a numeric form -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::FormatNumericTimeZone { z } { - if { $z < 0 } { - set z [expr { - $z }] - set retval - - } else { - set retval + - } - append retval [::format %02d [expr { $z / 3600 }]] - set z [expr { $z % 3600 }] - append retval [::format %02d [expr { $z / 60 }]] - set z [expr { $z % 60 }] - if { $z != 0 } { - append retval [::format %02d $z] - } - return $retval -} - -#---------------------------------------------------------------------- -# -# FormatStarDate -- -# -# Formats a date as a StarDate. -# -# Parameters: -# date - Dictionary containing 'year', 'dayOfYear', and -# 'localSeconds' fields. -# -# Results: -# Returns the given date formatted as a StarDate. -# -# Side effects: -# None. -# -# Jeff Hobbs put this in to support an atrocious pun about Tcl being -# "Enterprise ready." Now we're stuck with it. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::FormatStarDate { date } { - variable Roddenberry - - # Get day of year, zero based - - set doy [expr { [dict get $date dayOfYear] - 1 }] - - # Determine whether the year is a leap year - - set lp [IsGregorianLeapYear $date] - - # Convert day of year to a fractional year - - if { $lp } { - set fractYear [expr { 1000 * $doy / 366 }] - } else { - set fractYear [expr { 1000 * $doy / 365 }] - } - - # Put together the StarDate - - return [::format "Stardate %02d%03d.%1d" \ - [expr { [dict get $date year] - $Roddenberry }] \ - $fractYear \ - [expr { [dict get $date localSeconds] % 86400 - / ( 86400 / 10 ) }]] -} - -#---------------------------------------------------------------------- -# -# ParseStarDate -- -# -# Parses a StarDate -# -# Parameters: -# year - Year from the Roddenberry epoch -# fractYear - Fraction of a year specifying the day of year. -# fractDay - Fraction of a day -# -# Results: -# Returns a count of seconds from the Posix epoch. -# -# Side effects: -# None. -# -# Jeff Hobbs put this in to support an atrocious pun about Tcl being -# "Enterprise ready." Now we're stuck with it. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ParseStarDate { year fractYear fractDay } { - variable Roddenberry - - # Build a tentative date from year and fraction. - - set date [dict create \ - gregorian 1 \ - era CE \ - year [expr { $year + $Roddenberry }] \ - dayOfYear [expr { $fractYear * 365 / 1000 + 1 }]] - set date [GetJulianDayFromGregorianEraYearDay $date[set date {}]] - - # Determine whether the given year is a leap year - - set lp [IsGregorianLeapYear $date] - - # Reconvert the fractional year according to whether the given year is a - # leap year - - if { $lp } { - dict set date dayOfYear \ - [expr { $fractYear * 366 / 1000 + 1 }] - } else { - dict set date dayOfYear \ - [expr { $fractYear * 365 / 1000 + 1 }] - } - dict unset date julianDay - dict unset date gregorian - set date [GetJulianDayFromGregorianEraYearDay $date[set date {}]] - - return [expr { - 86400 * [dict get $date julianDay] - - 210866803200 - + ( 86400 / 10 ) * $fractDay - }] -} - -#---------------------------------------------------------------------- -# -# ScanWide -- -# -# Scans a wide integer from an input -# -# Parameters: -# str - String containing a decimal wide integer -# -# Results: -# Returns the string as a pure wide integer. Throws an error if the -# string is misformatted or out of range. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ScanWide { str } { - set count [::scan $str {%ld %c} result junk] - if { $count != 1 } { - return -code error -errorcode [list CLOCK notAnInteger $str] \ - "\"$str\" is not an integer" - } - if { [incr result 0] != $str } { - return -code error -errorcode [list CLOCK integervalueTooLarge] \ - "integer value too large to represent" - } - return $result -} - -#---------------------------------------------------------------------- -# -# InterpretTwoDigitYear -- -# -# Given a date that contains only the year of the century, determines -# the target value of a two-digit year. -# -# Parameters: -# date - Dictionary containing fields of the date. -# baseTime - Base time relative to which the date is expressed. -# twoDigitField - Name of the field that stores the two-digit year. -# Default is 'yearOfCentury' -# fourDigitField - Name of the field that will receive the four-digit -# year. Default is 'year' -# -# Results: -# Returns the dictionary augmented with the four-digit year, stored in -# the given key. -# -# Side effects: -# None. -# -# The current rule for interpreting a two-digit year is that the year shall be -# between 1937 and 2037, thus staying within the range of a 32-bit signed -# value for time. This rule may change to a sliding window in future -# versions, so the 'baseTime' parameter (which is currently ignored) is -# provided in the procedure signature. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::InterpretTwoDigitYear { date baseTime - { twoDigitField yearOfCentury } - { fourDigitField year } } { - set yr [dict get $date $twoDigitField] - if { $yr <= 37 } { - dict set date $fourDigitField [expr { $yr + 2000 }] - } else { - dict set date $fourDigitField [expr { $yr + 1900 }] - } - return $date -} - -#---------------------------------------------------------------------- -# -# AssignBaseYear -- -# -# Places the number of the current year into a dictionary. -# -# Parameters: -# date - Dictionary value to update -# baseTime - Base time from which to extract the year, expressed -# in seconds from the Posix epoch -# timezone - the time zone in which the date is being scanned -# changeover - the Julian Day on which the Gregorian calendar -# was adopted in the target locale. -# -# Results: -# Returns the dictionary with the current year assigned. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AssignBaseYear { date baseTime timezone changeover } { - variable TZData - - # Find the Julian Day Number corresponding to the base time, and - # find the Gregorian year corresponding to that Julian Day. - - set date2 [GetDateFields $baseTime $TZData($timezone) $changeover] - - # Store the converted year - - dict set date era [dict get $date2 era] - dict set date year [dict get $date2 year] - - return $date -} - -#---------------------------------------------------------------------- -# -# AssignBaseIso8601Year -- -# -# Determines the base year in the ISO8601 fiscal calendar. -# -# Parameters: -# date - Dictionary containing the fields of the date that -# is to be augmented with the base year. -# baseTime - Base time expressed in seconds from the Posix epoch. -# timeZone - Target time zone -# changeover - Julian Day of adoption of the Gregorian calendar in -# the target locale. -# -# Results: -# Returns the given date with "iso8601Year" set to the -# base year. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AssignBaseIso8601Year {date baseTime timeZone changeover} { - variable TZData - - # Find the Julian Day Number corresponding to the base time - - set date2 [GetDateFields $baseTime $TZData($timeZone) $changeover] - - # Calculate the ISO8601 date and transfer the year - - dict set date era CE - dict set date iso8601Year [dict get $date2 iso8601Year] - return $date -} - -#---------------------------------------------------------------------- -# -# AssignBaseMonth -- -# -# Places the number of the current year and month into a -# dictionary. -# -# Parameters: -# date - Dictionary value to update -# baseTime - Time from which the year and month are to be -# obtained, expressed in seconds from the Posix epoch. -# timezone - Name of the desired time zone -# changeover - Julian Day on which the Gregorian calendar was adopted. -# -# Results: -# Returns the dictionary with the base year and month assigned. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AssignBaseMonth {date baseTime timezone changeover} { - variable TZData - - # Find the year and month corresponding to the base time - - set date2 [GetDateFields $baseTime $TZData($timezone) $changeover] - dict set date era [dict get $date2 era] - dict set date year [dict get $date2 year] - dict set date month [dict get $date2 month] - return $date -} - -#---------------------------------------------------------------------- -# -# AssignBaseWeek -- -# -# Determines the base year and week in the ISO8601 fiscal calendar. -# -# Parameters: -# date - Dictionary containing the fields of the date that -# is to be augmented with the base year and week. -# baseTime - Base time expressed in seconds from the Posix epoch. -# changeover - Julian Day on which the Gregorian calendar was adopted -# in the target locale. -# -# Results: -# Returns the given date with "iso8601Year" set to the -# base year and "iso8601Week" to the week number. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AssignBaseWeek {date baseTime timeZone changeover} { - variable TZData - - # Find the Julian Day Number corresponding to the base time - - set date2 [GetDateFields $baseTime $TZData($timeZone) $changeover] - - # Calculate the ISO8601 date and transfer the year - - dict set date era CE - dict set date iso8601Year [dict get $date2 iso8601Year] - dict set date iso8601Week [dict get $date2 iso8601Week] - return $date -} - -#---------------------------------------------------------------------- -# -# AssignBaseJulianDay -- -# -# Determines the base day for a time-of-day conversion. -# -# Parameters: -# date - Dictionary that is to get the base day -# baseTime - Base time expressed in seconds from the Posix epoch -# changeover - Julian day on which the Gregorian calendar was -# adpoted in the target locale. -# -# Results: -# Returns the given dictionary augmented with a 'julianDay' field -# that contains the base day. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AssignBaseJulianDay { date baseTime timeZone changeover } { - variable TZData - - # Find the Julian Day Number corresponding to the base time - - set date2 [GetDateFields $baseTime $TZData($timeZone) $changeover] - dict set date julianDay [dict get $date2 julianDay] - - return $date -} - -#---------------------------------------------------------------------- -# -# InterpretHMSP -- -# -# Interprets a time in the form "hh:mm:ss am". -# -# Parameters: -# date -- Dictionary containing "hourAMPM", "minute", "second" -# and "amPmIndicator" fields. -# -# Results: -# Returns the number of seconds from local midnight. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::InterpretHMSP { date } { - set hr [dict get $date hourAMPM] - if { $hr == 12 } { - set hr 0 - } - if { [dict get $date amPmIndicator] } { - incr hr 12 - } - dict set date hour $hr - return [InterpretHMS $date[set date {}]] -} - -#---------------------------------------------------------------------- -# -# InterpretHMS -- -# -# Interprets a 24-hour time "hh:mm:ss" -# -# Parameters: -# date -- Dictionary containing the "hour", "minute" and "second" -# fields. -# -# Results: -# Returns the given dictionary augmented with a "secondOfDay" -# field containing the number of seconds from local midnight. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::InterpretHMS { date } { - return [expr { - ( [dict get $date hour] * 60 - + [dict get $date minute] ) * 60 - + [dict get $date second] - }] -} - -#---------------------------------------------------------------------- -# -# GetSystemTimeZone -- -# -# Determines the system time zone, which is the default for the -# 'clock' command if no other zone is supplied. -# -# Parameters: -# None. -# -# Results: -# Returns the system time zone. -# -# Side effects: -# Stores the system time zone in the 'CachedSystemTimeZone' -# variable, since determining it may be an expensive process. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::GetSystemTimeZone {} { - variable CachedSystemTimeZone - variable TimeZoneBad - - if {[set result [getenv TCL_TZ]] ne {}} { - set timezone $result - } elseif {[set result [getenv TZ]] ne {}} { - set timezone $result - } else { - # Cache the time zone only if it was detected by one of the - # expensive methods. - if { [info exists CachedSystemTimeZone] } { - set timezone $CachedSystemTimeZone - } elseif { $::tcl_platform(platform) eq {windows} } { - set timezone [GuessWindowsTimeZone] - } elseif { [file exists /etc/localtime] - && ![catch {ReadZoneinfoFile \ - Tcl/Localtime /etc/localtime}] } { - set timezone :Tcl/Localtime - } else { - set timezone :localtime - } - set CachedSystemTimeZone $timezone - } - if { ![dict exists $TimeZoneBad $timezone] } { - dict set TimeZoneBad $timezone [catch {SetupTimeZone $timezone}] - } - if { [dict get $TimeZoneBad $timezone] } { - return :localtime - } else { - return $timezone - } -} - -#---------------------------------------------------------------------- -# -# ConvertLegacyTimeZone -- -# -# Given an alphanumeric time zone identifier and the system time zone, -# convert the alphanumeric identifier to an unambiguous time zone. -# -# Parameters: -# tzname - Name of the time zone to convert -# -# Results: -# Returns a time zone name corresponding to tzname, but in an -# unambiguous form, generally +hhmm. -# -# This procedure is implemented primarily to allow the parsing of RFC822 -# date/time strings. Processing a time zone name on input is not recommended -# practice, because there is considerable room for ambiguity; for instance, is -# BST Brazilian Standard Time, or British Summer Time? -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ConvertLegacyTimeZone { tzname } { - variable LegacyTimeZone - - set tzname [string tolower $tzname] - if { ![dict exists $LegacyTimeZone $tzname] } { - return -code error -errorcode [list CLOCK badTZName $tzname] \ - "time zone \"$tzname\" not found" - } - return [dict get $LegacyTimeZone $tzname] -} - -#---------------------------------------------------------------------- -# -# SetupTimeZone -- -# -# Given the name or specification of a time zone, sets up its in-memory -# data. -# -# Parameters: -# tzname - Name of a time zone -# -# Results: -# Unless the time zone is ':localtime', sets the TZData array to contain -# the lookup table for local<->UTC conversion. Returns an error if the -# time zone cannot be parsed. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::SetupTimeZone { timezone } { - variable TZData - - if {! [info exists TZData($timezone)] } { - variable MINWIDE - if { $timezone eq {:localtime} } { - # Nothing to do, we'll convert using the localtime function - - } elseif { - [regexp {^([-+])(\d\d)(?::?(\d\d)(?::?(\d\d))?)?} $timezone \ - -> s hh mm ss] - } then { - # Make a fixed offset - - ::scan $hh %d hh - if { $mm eq {} } { - set mm 0 - } else { - ::scan $mm %d mm - } - if { $ss eq {} } { - set ss 0 - } else { - ::scan $ss %d ss - } - set offset [expr { ( $hh * 60 + $mm ) * 60 + $ss }] - if { $s eq {-} } { - set offset [expr { - $offset }] - } - set TZData($timezone) [list [list $MINWIDE $offset -1 $timezone]] - - } elseif { [string index $timezone 0] eq {:} } { - # Convert using a time zone file - - if { - [catch { - LoadTimeZoneFile [string range $timezone 1 end] - }] && [catch { - LoadZoneinfoFile [string range $timezone 1 end] - }] - } then { - return -code error \ - -errorcode [list CLOCK badTimeZone $timezone] \ - "time zone \"$timezone\" not found" - } - } elseif { ![catch {ParsePosixTimeZone $timezone} tzfields] } { - # This looks like a POSIX time zone - try to process it - - if { [catch {ProcessPosixTimeZone $tzfields} data opts] } { - if { [lindex [dict get $opts -errorcode] 0] eq {CLOCK} } { - dict unset opts -errorinfo - } - return -options $opts $data - } else { - set TZData($timezone) $data - } - - } else { - # We couldn't parse this as a POSIX time zone. Try again with a - # time zone file - this time without a colon - - if { [catch { LoadTimeZoneFile $timezone }] - && [catch { LoadZoneinfoFile $timezone } - opts] } { - dict unset opts -errorinfo - return -options $opts "time zone $timezone not found" - } - set TZData($timezone) $TZData(:$timezone) - } - } - - return -} - -#---------------------------------------------------------------------- -# -# GuessWindowsTimeZone -- -# -# Determines the system time zone on windows. -# -# Parameters: -# None. -# -# Results: -# Returns a time zone specifier that corresponds to the system time zone -# information found in the Registry. -# -# Bugs: -# Fixed dates for DST change are unimplemented at present, because no -# time zone information supplied with Windows actually uses them! -# -# On a Windows system where neither $env(TCL_TZ) nor $env(TZ) is specified, -# GuessWindowsTimeZone looks in the Registry for the system time zone -# information. It then attempts to find an entry in WinZoneInfo for a time -# zone that uses the same rules. If it finds one, it returns it; otherwise, -# it constructs a Posix-style time zone string and returns that. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::GuessWindowsTimeZone {} { - variable WinZoneInfo - variable NoRegistry - variable TimeZoneBad - - if { [info exists NoRegistry] } { - return :localtime - } - - # Dredge time zone information out of the registry - - if { [catch { - set rpath HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\TimeZoneInformation - set data [list \ - [expr { -60 - * [registry get $rpath Bias] }] \ - [expr { -60 - * [registry get $rpath StandardBias] }] \ - [expr { -60 \ - * [registry get $rpath DaylightBias] }]] - set stdtzi [registry get $rpath StandardStart] - foreach ind {0 2 14 4 6 8 10 12} { - binary scan $stdtzi @${ind}s val - lappend data $val - } - set daytzi [registry get $rpath DaylightStart] - foreach ind {0 2 14 4 6 8 10 12} { - binary scan $daytzi @${ind}s val - lappend data $val - } - }] } { - # Missing values in the Registry - bail out - - return :localtime - } - - # Make up a Posix time zone specifier if we can't find one. Check here - # that the tzdata file exists, in case we're running in an environment - # (e.g. starpack) where tzdata is incomplete. (Bug 1237907) - - if { [dict exists $WinZoneInfo $data] } { - set tzname [dict get $WinZoneInfo $data] - if { ! [dict exists $TimeZoneBad $tzname] } { - dict set TimeZoneBad $tzname [catch {SetupTimeZone $tzname}] - } - } else { - set tzname {} - } - if { $tzname eq {} || [dict get $TimeZoneBad $tzname] } { - lassign $data \ - bias stdBias dstBias \ - stdYear stdMonth stdDayOfWeek stdDayOfMonth \ - stdHour stdMinute stdSecond stdMillisec \ - dstYear dstMonth dstDayOfWeek dstDayOfMonth \ - dstHour dstMinute dstSecond dstMillisec - set stdDelta [expr { $bias + $stdBias }] - set dstDelta [expr { $bias + $dstBias }] - if { $stdDelta <= 0 } { - set stdSignum + - set stdDelta [expr { - $stdDelta }] - set dispStdSignum - - } else { - set stdSignum - - set dispStdSignum + - } - set hh [::format %02d [expr { $stdDelta / 3600 }]] - set mm [::format %02d [expr { ($stdDelta / 60 ) % 60 }]] - set ss [::format %02d [expr { $stdDelta % 60 }]] - set tzname {} - append tzname < $dispStdSignum $hh $mm > $stdSignum $hh : $mm : $ss - if { $stdMonth >= 0 } { - if { $dstDelta <= 0 } { - set dstSignum + - set dstDelta [expr { - $dstDelta }] - set dispDstSignum - - } else { - set dstSignum - - set dispDstSignum + - } - set hh [::format %02d [expr { $dstDelta / 3600 }]] - set mm [::format %02d [expr { ($dstDelta / 60 ) % 60 }]] - set ss [::format %02d [expr { $dstDelta % 60 }]] - append tzname < $dispDstSignum $hh $mm > $dstSignum $hh : $mm : $ss - if { $dstYear == 0 } { - append tzname ,M $dstMonth . $dstDayOfMonth . $dstDayOfWeek - } else { - # I have not been able to find any locale on which Windows - # converts time zone on a fixed day of the year, hence don't - # know how to interpret the fields. If someone can inform me, - # I'd be glad to code it up. For right now, we bail out in - # such a case. - return :localtime - } - append tzname / [::format %02d $dstHour] \ - : [::format %02d $dstMinute] \ - : [::format %02d $dstSecond] - if { $stdYear == 0 } { - append tzname ,M $stdMonth . $stdDayOfMonth . $stdDayOfWeek - } else { - # I have not been able to find any locale on which Windows - # converts time zone on a fixed day of the year, hence don't - # know how to interpret the fields. If someone can inform me, - # I'd be glad to code it up. For right now, we bail out in - # such a case. - return :localtime - } - append tzname / [::format %02d $stdHour] \ - : [::format %02d $stdMinute] \ - : [::format %02d $stdSecond] - } - dict set WinZoneInfo $data $tzname - } - - return [dict get $WinZoneInfo $data] -} - -#---------------------------------------------------------------------- -# -# LoadTimeZoneFile -- -# -# Load the data file that specifies the conversion between a -# given time zone and Greenwich. -# -# Parameters: -# fileName -- Name of the file to load -# -# Results: -# None. -# -# Side effects: -# TZData(:fileName) contains the time zone data -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::LoadTimeZoneFile { fileName } { - variable DataDir - variable TZData - - if { [info exists TZData($fileName)] } { - return - } - - # Since an unsafe interp uses the [clock] command in the parent, this code - # is security sensitive. Make sure that the path name cannot escape the - # given directory. - - if { ![regexp {^[[.-.][:alpha:]_]+(?:/[[.-.][:alpha:]_]+)*$} $fileName] } { - return -code error \ - -errorcode [list CLOCK badTimeZone $:fileName] \ - "time zone \":$fileName\" not valid" - } - try { - source [file join $DataDir $fileName] - } on error {} { - return -code error \ - -errorcode [list CLOCK badTimeZone :$fileName] \ - "time zone \":$fileName\" not found" - } - return -} - -#---------------------------------------------------------------------- -# -# LoadZoneinfoFile -- -# -# Loads a binary time zone information file in Olson format. -# -# Parameters: -# fileName - Relative path name of the file to load. -# -# Results: -# Returns an empty result normally; returns an error if no Olson file -# was found or the file was malformed in some way. -# -# Side effects: -# TZData(:fileName) contains the time zone data -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::LoadZoneinfoFile { fileName } { - variable ZoneinfoPaths - - # Since an unsafe interp uses the [clock] command in the parent, this code - # is security sensitive. Make sure that the path name cannot escape the - # given directory. - - if { ![regexp {^[[.-.][:alpha:]_]+(?:/[[.-.][:alpha:]_]+)*$} $fileName] } { - return -code error \ - -errorcode [list CLOCK badTimeZone $:fileName] \ - "time zone \":$fileName\" not valid" - } - foreach d $ZoneinfoPaths { - set fname [file join $d $fileName] - if { [file readable $fname] && [file isfile $fname] } { - break - } - unset fname - } - ReadZoneinfoFile $fileName $fname -} - -#---------------------------------------------------------------------- -# -# ReadZoneinfoFile -- -# -# Loads a binary time zone information file in Olson format. -# -# Parameters: -# fileName - Name of the time zone (relative path name of the -# file). -# fname - Absolute path name of the file. -# -# Results: -# Returns an empty result normally; returns an error if no Olson file -# was found or the file was malformed in some way. -# -# Side effects: -# TZData(:fileName) contains the time zone data -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ReadZoneinfoFile {fileName fname} { - variable MINWIDE - variable TZData - if { ![file exists $fname] } { - return -code error "$fileName not found" - } - - if { [file size $fname] > 262144 } { - return -code error "$fileName too big" - } - - # Suck in all the data from the file - - set f [open $fname r] - fconfigure $f -translation binary - set d [read $f] - close $f - - # The file begins with a magic number, sixteen reserved bytes, and then - # six 4-byte integers giving counts of fields in the file. - - binary scan $d a4a1x15IIIIII \ - magic version nIsGMT nIsStd nLeap nTime nType nChar - set seek 44 - set ilen 4 - set iformat I - if { $magic != {TZif} } { - return -code error "$fileName not a time zone information file" - } - if { $nType > 255 } { - return -code error "$fileName contains too many time types" - } - # Accept only Posix-style zoneinfo. Sorry, 'leaps' bigots. - if { $nLeap != 0 } { - return -code error "$fileName contains leap seconds" - } - - # In a version 2 file, we use the second part of the file, which contains - # 64-bit transition times. - - if {$version eq "2"} { - set seek [expr { - 44 - + 5 * $nTime - + 6 * $nType - + 4 * $nLeap - + $nIsStd - + $nIsGMT - + $nChar - }] - binary scan $d @${seek}a4a1x15IIIIII \ - magic version nIsGMT nIsStd nLeap nTime nType nChar - if {$magic ne {TZif}} { - return -code error "seek address $seek miscomputed, magic = $magic" - } - set iformat W - set ilen 8 - incr seek 44 - } - - # Next come ${nTime} transition times, followed by ${nTime} time type - # codes. The type codes are unsigned 1-byte quantities. We insert an - # arbitrary start time in front of the transitions. - - binary scan $d @${seek}${iformat}${nTime}c${nTime} times tempCodes - incr seek [expr { ($ilen + 1) * $nTime }] - set times [linsert $times 0 $MINWIDE] - set codes {} - foreach c $tempCodes { - lappend codes [expr { $c & 0xFF }] - } - set codes [linsert $codes 0 0] - - # Next come ${nType} time type descriptions, each of which has an offset - # (seconds east of GMT), a DST indicator, and an index into the - # abbreviation text. - - for { set i 0 } { $i < $nType } { incr i } { - binary scan $d @${seek}Icc gmtOff isDst abbrInd - lappend types [list $gmtOff $isDst $abbrInd] - incr seek 6 - } - - # Next come $nChar characters of time zone name abbreviations, which are - # null-terminated. - # We build them up into a dictionary indexed by character index, because - # that's what's in the indices above. - - binary scan $d @${seek}a${nChar} abbrs - incr seek ${nChar} - set abbrList [split $abbrs \0] - set i 0 - set abbrevs {} - foreach a $abbrList { - for {set j 0} {$j <= [string length $a]} {incr j} { - dict set abbrevs $i [string range $a $j end] - incr i - } - } - - # Package up a list of tuples, each of which contains transition time, - # seconds east of Greenwich, DST flag and time zone abbreviation. - - set r {} - set lastTime $MINWIDE - foreach t $times c $codes { - if { $t < $lastTime } { - return -code error "$fileName has times out of order" - } - set lastTime $t - lassign [lindex $types $c] gmtoff isDst abbrInd - set abbrev [dict get $abbrevs $abbrInd] - lappend r [list $t $gmtoff $isDst $abbrev] - } - - # In a version 2 file, there is also a POSIX-style time zone description - # at the very end of the file. To get to it, skip over nLeap leap second - # values (8 bytes each), - # nIsStd standard/DST indicators and nIsGMT UTC/local indicators. - - if {$version eq {2}} { - set seek [expr {$seek + 8 * $nLeap + $nIsStd + $nIsGMT + 1}] - set last [string first \n $d $seek] - set posix [string range $d $seek [expr {$last-1}]] - if {[llength $posix] > 0} { - set posixFields [ParsePosixTimeZone $posix] - foreach tuple [ProcessPosixTimeZone $posixFields] { - lassign $tuple t gmtoff isDst abbrev - if {$t > $lastTime} { - lappend r $tuple - } - } - } - } - - set TZData(:$fileName) $r - - return -} - -#---------------------------------------------------------------------- -# -# ParsePosixTimeZone -- -# -# Parses the TZ environment variable in Posix form -# -# Parameters: -# tz Time zone specifier to be interpreted -# -# Results: -# Returns a dictionary whose values contain the various pieces of the -# time zone specification. -# -# Side effects: -# None. -# -# Errors: -# Throws an error if the syntax of the time zone is incorrect. -# -# The following keys are present in the dictionary: -# stdName - Name of the time zone when Daylight Saving Time -# is not in effect. -# stdSignum - Sign (+, -, or empty) of the offset from Greenwich -# to the given (non-DST) time zone. + and the empty -# string denote zones west of Greenwich, - denotes east -# of Greenwich; this is contrary to the ISO convention -# but follows Posix. -# stdHours - Hours part of the offset from Greenwich to the given -# (non-DST) time zone. -# stdMinutes - Minutes part of the offset from Greenwich to the -# given (non-DST) time zone. Empty denotes zero. -# stdSeconds - Seconds part of the offset from Greenwich to the -# given (non-DST) time zone. Empty denotes zero. -# dstName - Name of the time zone when DST is in effect, or the -# empty string if the time zone does not observe Daylight -# Saving Time. -# dstSignum, dstHours, dstMinutes, dstSeconds - -# Fields corresponding to stdSignum, stdHours, stdMinutes, -# stdSeconds for the Daylight Saving Time version of the -# time zone. If dstHours is empty, it is presumed to be 1. -# startDayOfYear - The ordinal number of the day of the year on which -# Daylight Saving Time begins. If this field is -# empty, then DST begins on a given month-week-day, -# as below. -# startJ - The letter J, or an empty string. If a J is present in -# this field, then startDayOfYear does not count February 29 -# even in leap years. -# startMonth - The number of the month in which Daylight Saving Time -# begins, supplied if startDayOfYear is empty. If both -# startDayOfYear and startMonth are empty, then US rules -# are presumed. -# startWeekOfMonth - The number of the week in the month in which -# Daylight Saving Time begins, in the range 1-5. -# 5 denotes the last week of the month even in a -# 4-week month. -# startDayOfWeek - The number of the day of the week (Sunday=0, -# Saturday=6) on which Daylight Saving Time begins. -# startHours - The hours part of the time of day at which Daylight -# Saving Time begins. An empty string is presumed to be 2. -# startMinutes - The minutes part of the time of day at which DST begins. -# An empty string is presumed zero. -# startSeconds - The seconds part of the time of day at which DST begins. -# An empty string is presumed zero. -# endDayOfYear, endJ, endMonth, endWeekOfMonth, endDayOfWeek, -# endHours, endMinutes, endSeconds - -# Specify the end of DST in the same way that the start* fields -# specify the beginning of DST. -# -# This procedure serves only to break the time specifier into fields. No -# attempt is made to canonicalize the fields or supply default values. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ParsePosixTimeZone { tz } { - if {[regexp -expanded -nocase -- { - ^ - # 1 - Standard time zone name - ([[:alpha:]]+ | <[-+[:alnum:]]+>) - # 2 - Standard time zone offset, signum - ([-+]?) - # 3 - Standard time zone offset, hours - ([[:digit:]]{1,2}) - (?: - # 4 - Standard time zone offset, minutes - : ([[:digit:]]{1,2}) - (?: - # 5 - Standard time zone offset, seconds - : ([[:digit:]]{1,2} ) - )? - )? - (?: - # 6 - DST time zone name - ([[:alpha:]]+ | <[-+[:alnum:]]+>) - (?: - (?: - # 7 - DST time zone offset, signum - ([-+]?) - # 8 - DST time zone offset, hours - ([[:digit:]]{1,2}) - (?: - # 9 - DST time zone offset, minutes - : ([[:digit:]]{1,2}) - (?: - # 10 - DST time zone offset, seconds - : ([[:digit:]]{1,2}) - )? - )? - )? - (?: - , - (?: - # 11 - Optional J in n and Jn form 12 - Day of year - ( J ? ) ( [[:digit:]]+ ) - | M - # 13 - Month number 14 - Week of month 15 - Day of week - ( [[:digit:]] + ) - [.] ( [[:digit:]] + ) - [.] ( [[:digit:]] + ) - ) - (?: - # 16 - Start time of DST - hours - / ( [[:digit:]]{1,2} ) - (?: - # 17 - Start time of DST - minutes - : ( [[:digit:]]{1,2} ) - (?: - # 18 - Start time of DST - seconds - : ( [[:digit:]]{1,2} ) - )? - )? - )? - , - (?: - # 19 - Optional J in n and Jn form 20 - Day of year - ( J ? ) ( [[:digit:]]+ ) - | M - # 21 - Month number 22 - Week of month 23 - Day of week - ( [[:digit:]] + ) - [.] ( [[:digit:]] + ) - [.] ( [[:digit:]] + ) - ) - (?: - # 24 - End time of DST - hours - / ( [[:digit:]]{1,2} ) - (?: - # 25 - End time of DST - minutes - : ( [[:digit:]]{1,2} ) - (?: - # 26 - End time of DST - seconds - : ( [[:digit:]]{1,2} ) - )? - )? - )? - )? - )? - )? - $ - } $tz -> x(stdName) x(stdSignum) x(stdHours) x(stdMinutes) x(stdSeconds) \ - x(dstName) x(dstSignum) x(dstHours) x(dstMinutes) x(dstSeconds) \ - x(startJ) x(startDayOfYear) \ - x(startMonth) x(startWeekOfMonth) x(startDayOfWeek) \ - x(startHours) x(startMinutes) x(startSeconds) \ - x(endJ) x(endDayOfYear) \ - x(endMonth) x(endWeekOfMonth) x(endDayOfWeek) \ - x(endHours) x(endMinutes) x(endSeconds)] } { - # it's a good timezone - - return [array get x] - } - - return -code error\ - -errorcode [list CLOCK badTimeZone $tz] \ - "unable to parse time zone specification \"$tz\"" -} - -#---------------------------------------------------------------------- -# -# ProcessPosixTimeZone -- -# -# Handle a Posix time zone after it's been broken out into fields. -# -# Parameters: -# z - Dictionary returned from 'ParsePosixTimeZone' -# -# Results: -# Returns time zone information for the 'TZData' array. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ProcessPosixTimeZone { z } { - variable MINWIDE - variable TZData - - # Determine the standard time zone name and seconds east of Greenwich - - set stdName [dict get $z stdName] - if { [string index $stdName 0] eq {<} } { - set stdName [string range $stdName 1 end-1] - } - if { [dict get $z stdSignum] eq {-} } { - set stdSignum +1 - } else { - set stdSignum -1 - } - set stdHours [lindex [::scan [dict get $z stdHours] %d] 0] - if { [dict get $z stdMinutes] ne {} } { - set stdMinutes [lindex [::scan [dict get $z stdMinutes] %d] 0] - } else { - set stdMinutes 0 - } - if { [dict get $z stdSeconds] ne {} } { - set stdSeconds [lindex [::scan [dict get $z stdSeconds] %d] 0] - } else { - set stdSeconds 0 - } - set stdOffset [expr { - (($stdHours * 60 + $stdMinutes) * 60 + $stdSeconds) * $stdSignum - }] - set data [list [list $MINWIDE $stdOffset 0 $stdName]] - - # If there's no daylight zone, we're done - - set dstName [dict get $z dstName] - if { $dstName eq {} } { - return $data - } - if { [string index $dstName 0] eq {<} } { - set dstName [string range $dstName 1 end-1] - } - - # Determine the daylight name - - if { [dict get $z dstSignum] eq {-} } { - set dstSignum +1 - } else { - set dstSignum -1 - } - if { [dict get $z dstHours] eq {} } { - set dstOffset [expr { 3600 + $stdOffset }] - } else { - set dstHours [lindex [::scan [dict get $z dstHours] %d] 0] - if { [dict get $z dstMinutes] ne {} } { - set dstMinutes [lindex [::scan [dict get $z dstMinutes] %d] 0] - } else { - set dstMinutes 0 - } - if { [dict get $z dstSeconds] ne {} } { - set dstSeconds [lindex [::scan [dict get $z dstSeconds] %d] 0] - } else { - set dstSeconds 0 - } - set dstOffset [expr { - (($dstHours*60 + $dstMinutes) * 60 + $dstSeconds) * $dstSignum - }] - } - - # Fill in defaults for European or US DST rules - # US start time is the second Sunday in March - # EU start time is the last Sunday in March - # US end time is the first Sunday in November. - # EU end time is the last Sunday in October - - if { - [dict get $z startDayOfYear] eq {} - && [dict get $z startMonth] eq {} - } then { - if {($stdSignum * $stdHours>=0) && ($stdSignum * $stdHours<=12)} { - # EU - dict set z startWeekOfMonth 5 - if {$stdHours>2} { - dict set z startHours 2 - } else { - dict set z startHours [expr {$stdHours+1}] - } - } else { - # US - dict set z startWeekOfMonth 2 - dict set z startHours 2 - } - dict set z startMonth 3 - dict set z startDayOfWeek 0 - dict set z startMinutes 0 - dict set z startSeconds 0 - } - if { - [dict get $z endDayOfYear] eq {} - && [dict get $z endMonth] eq {} - } then { - if {($stdSignum * $stdHours>=0) && ($stdSignum * $stdHours<=12)} { - # EU - dict set z endMonth 10 - dict set z endWeekOfMonth 5 - if {$stdHours>2} { - dict set z endHours 3 - } else { - dict set z endHours [expr {$stdHours+2}] - } - } else { - # US - dict set z endMonth 11 - dict set z endWeekOfMonth 1 - dict set z endHours 2 - } - dict set z endDayOfWeek 0 - dict set z endMinutes 0 - dict set z endSeconds 0 - } - - # Put DST in effect in all years from 1916 to 2099. - - for { set y 1916 } { $y < 2100 } { incr y } { - set startTime [DeterminePosixDSTTime $z start $y] - incr startTime [expr { - wide($stdOffset) }] - set endTime [DeterminePosixDSTTime $z end $y] - incr endTime [expr { - wide($dstOffset) }] - if { $startTime < $endTime } { - lappend data \ - [list $startTime $dstOffset 1 $dstName] \ - [list $endTime $stdOffset 0 $stdName] - } else { - lappend data \ - [list $endTime $stdOffset 0 $stdName] \ - [list $startTime $dstOffset 1 $dstName] - } - } - - return $data -} - -#---------------------------------------------------------------------- -# -# DeterminePosixDSTTime -- -# -# Determines the time that Daylight Saving Time starts or ends from a -# Posix time zone specification. -# -# Parameters: -# z - Time zone data returned from ParsePosixTimeZone. -# Missing fields are expected to be filled in with -# default values. -# bound - The word 'start' or 'end' -# y - The year for which the transition time is to be determined. -# -# Results: -# Returns the transition time as a count of seconds from the epoch. The -# time is relative to the wall clock, not UTC. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::DeterminePosixDSTTime { z bound y } { - - variable FEB_28 - - # Determine the start or end day of DST - - set date [dict create era CE year $y] - set doy [dict get $z ${bound}DayOfYear] - if { $doy ne {} } { - - # Time was specified as a day of the year - - if { [dict get $z ${bound}J] ne {} - && [IsGregorianLeapYear $y] - && ( $doy > $FEB_28 ) } { - incr doy - } - dict set date dayOfYear $doy - set date [GetJulianDayFromEraYearDay $date[set date {}] 2361222] - } else { - # Time was specified as a day of the week within a month - - dict set date month [dict get $z ${bound}Month] - dict set date dayOfWeek [dict get $z ${bound}DayOfWeek] - set dowim [dict get $z ${bound}WeekOfMonth] - if { $dowim >= 5 } { - set dowim -1 - } - dict set date dayOfWeekInMonth $dowim - set date [GetJulianDayFromEraYearMonthWeekDay $date[set date {}] 2361222] - - } - - set jd [dict get $date julianDay] - set seconds [expr { - wide($jd) * wide(86400) - wide(210866803200) - }] - - set h [dict get $z ${bound}Hours] - if { $h eq {} } { - set h 2 - } else { - set h [lindex [::scan $h %d] 0] - } - set m [dict get $z ${bound}Minutes] - if { $m eq {} } { - set m 0 - } else { - set m [lindex [::scan $m %d] 0] - } - set s [dict get $z ${bound}Seconds] - if { $s eq {} } { - set s 0 - } else { - set s [lindex [::scan $s %d] 0] - } - set tod [expr { ( $h * 60 + $m ) * 60 + $s }] - return [expr { $seconds + $tod }] -} - -#---------------------------------------------------------------------- -# -# GetLocaleEra -- -# -# Given local time expressed in seconds from the Posix epoch, -# determine localized era and year within the era. -# -# Parameters: -# date - Dictionary that must contain the keys, 'localSeconds', -# whose value is expressed as the appropriate local time; -# and 'year', whose value is the Gregorian year. -# etable - Value of the LOCALE_ERAS key in the message catalogue -# for the target locale. -# -# Results: -# Returns the dictionary, augmented with the keys, 'localeEra' and -# 'localeYear'. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::GetLocaleEra { date etable } { - set index [BSearch $etable [dict get $date localSeconds]] - if { $index < 0} { - dict set date localeEra \ - [::format %02d [expr { [dict get $date year] / 100 }]] - dict set date localeYear [expr { - [dict get $date year] % 100 - }] - } else { - dict set date localeEra [lindex $etable $index 1] - dict set date localeYear [expr { - [dict get $date year] - [lindex $etable $index 2] - }] - } - return $date -} - -#---------------------------------------------------------------------- -# -# GetJulianDayFromEraYearDay -- -# -# Given a year, month and day on the Gregorian calendar, determines -# the Julian Day Number beginning at noon on that date. -# -# Parameters: -# date -- A dictionary in which the 'era', 'year', and -# 'dayOfYear' slots are populated. The calendar in use -# is determined by the date itself relative to: -# changeover -- Julian day on which the Gregorian calendar was -# adopted in the current locale. -# -# Results: -# Returns the given dictionary augmented with a 'julianDay' key whose -# value is the desired Julian Day Number, and a 'gregorian' key that -# specifies whether the calendar is Gregorian (1) or Julian (0). -# -# Side effects: -# None. -# -# Bugs: -# This code needs to be moved to the C layer. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::GetJulianDayFromEraYearDay {date changeover} { - # Get absolute year number from the civil year - - switch -exact -- [dict get $date era] { - BCE { - set year [expr { 1 - [dict get $date year] }] - } - CE { - set year [dict get $date year] - } - } - set ym1 [expr { $year - 1 }] - - # Try the Gregorian calendar first. - - dict set date gregorian 1 - set jd [expr { - 1721425 - + [dict get $date dayOfYear] - + ( 365 * $ym1 ) - + ( $ym1 / 4 ) - - ( $ym1 / 100 ) - + ( $ym1 / 400 ) - }] - - # If the date is before the Gregorian change, use the Julian calendar. - - if { $jd < $changeover } { - dict set date gregorian 0 - set jd [expr { - 1721423 - + [dict get $date dayOfYear] - + ( 365 * $ym1 ) - + ( $ym1 / 4 ) - }] - } - - dict set date julianDay $jd - return $date -} - -#---------------------------------------------------------------------- -# -# GetJulianDayFromEraYearMonthWeekDay -- -# -# Determines the Julian Day number corresponding to the nth given -# day-of-the-week in a given month. -# -# Parameters: -# date - Dictionary containing the keys, 'era', 'year', 'month' -# 'weekOfMonth', 'dayOfWeek', and 'dayOfWeekInMonth'. -# changeover - Julian Day of adoption of the Gregorian calendar -# -# Results: -# Returns the given dictionary, augmented with a 'julianDay' key. -# -# Side effects: -# None. -# -# Bugs: -# This code needs to be moved to the C layer. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::GetJulianDayFromEraYearMonthWeekDay {date changeover} { - # Come up with a reference day; either the zeroeth day of the given month - # (dayOfWeekInMonth >= 0) or the seventh day of the following month - # (dayOfWeekInMonth < 0) - - set date2 $date - set week [dict get $date dayOfWeekInMonth] - if { $week >= 0 } { - dict set date2 dayOfMonth 0 - } else { - dict incr date2 month - dict set date2 dayOfMonth 7 - } - set date2 [GetJulianDayFromEraYearMonthDay $date2[set date2 {}] \ - $changeover] - set wd0 [WeekdayOnOrBefore [dict get $date dayOfWeek] \ - [dict get $date2 julianDay]] - dict set date julianDay [expr { $wd0 + 7 * $week }] - return $date -} - -#---------------------------------------------------------------------- -# -# IsGregorianLeapYear -- -# -# Determines whether a given date represents a leap year in the -# Gregorian calendar. -# -# Parameters: -# date -- The date to test. The fields, 'era', 'year' and 'gregorian' -# must be set. -# -# Results: -# Returns 1 if the year is a leap year, 0 otherwise. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::IsGregorianLeapYear { date } { - switch -exact -- [dict get $date era] { - BCE { - set year [expr { 1 - [dict get $date year]}] - } - CE { - set year [dict get $date year] - } - } - if { $year % 4 != 0 } { - return 0 - } elseif { ![dict get $date gregorian] } { - return 1 - } elseif { $year % 400 == 0 } { - return 1 - } elseif { $year % 100 == 0 } { - return 0 - } else { - return 1 - } -} - -#---------------------------------------------------------------------- -# -# WeekdayOnOrBefore -- -# -# Determine the nearest day of week (given by the 'weekday' parameter, -# Sunday==0) on or before a given Julian Day. -# -# Parameters: -# weekday -- Day of the week -# j -- Julian Day number -# -# Results: -# Returns the Julian Day Number of the desired date. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::WeekdayOnOrBefore { weekday j } { - set k [expr { ( $weekday + 6 ) % 7 }] - return [expr { $j - ( $j - $k ) % 7 }] -} - -#---------------------------------------------------------------------- -# -# BSearch -- -# -# Service procedure that does binary search in several places inside the -# 'clock' command. -# -# Parameters: -# list - List of lists, sorted in ascending order by the -# first elements -# key - Value to search for -# -# Results: -# Returns the index of the greatest element in $list that is less than -# or equal to $key. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::BSearch { list key } { - if {[llength $list] == 0} { - return -1 - } - if { $key < [lindex $list 0 0] } { - return -1 - } - - set l 0 - set u [expr { [llength $list] - 1 }] - - while { $l < $u } { - # At this point, we know that - # $k >= [lindex $list $l 0] - # Either $u == [llength $list] or else $k < [lindex $list $u+1 0] - # We find the midpoint of the interval {l,u} rounded UP, compare - # against it, and set l or u to maintain the invariant. Note that the - # interval shrinks at each step, guaranteeing convergence. - - set m [expr { ( $l + $u + 1 ) / 2 }] - if { $key >= [lindex $list $m 0] } { - set l $m - } else { - set u [expr { $m - 1 }] - } - } - - return $l -} - -#---------------------------------------------------------------------- -# -# clock add -- -# -# Adds an offset to a given time. -# -# Syntax: -# clock add clockval ?count unit?... ?-option value? -# -# Parameters: -# clockval -- Starting time value -# count -- Amount of a unit of time to add -# unit -- Unit of time to add, must be one of: -# years year months month weeks week -# days day hours hour minutes minute -# seconds second -# -# Options: -# -gmt BOOLEAN -# (Deprecated) Flag synonymous with '-timezone :GMT' -# -timezone ZONE -# Name of the time zone in which calculations are to be done. -# -locale NAME -# Name of the locale in which calculations are to be done. -# Used to determine the Gregorian change date. -# -# Results: -# Returns the given time adjusted by the given offset(s) in -# order. -# -# Notes: -# It is possible that adding a number of months or years will adjust the -# day of the month as well. For instance, the time at one month after -# 31 January is either 28 or 29 February, because February has fewer -# than 31 days. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::add { clockval args } { - if { [llength $args] % 2 != 0 } { - set cmdName "clock add" - return -code error \ - -errorcode [list CLOCK wrongNumArgs] \ - "wrong \# args: should be\ - \"$cmdName clockval ?number units?...\ - ?-gmt boolean? ?-locale LOCALE? ?-timezone ZONE?\"" - } - if { [catch { expr {wide($clockval)} } result] } { - return -code error $result - } - - set offsets {} - set gmt 0 - set locale c - set timezone [GetSystemTimeZone] - - foreach { a b } $args { - if { [string is integer -strict $a] } { - lappend offsets $a $b - } else { - switch -exact -- $a { - -g - -gm - -gmt { - set saw(-gmt) {} - set gmt $b - } - -l - -lo - -loc - -loca - -local - -locale { - set locale [string tolower $b] - } - -t - -ti - -tim - -time - -timez - -timezo - -timezon - - -timezone { - set saw(-timezone) {} - set timezone $b - } - default { - throw [list CLOCK badOption $a] \ - "bad option \"$a\",\ - must be -gmt, -locale or -timezone" - } - } - } - } - - # Check options for validity - - if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } { - return -code error \ - -errorcode [list CLOCK gmtWithTimezone] \ - "cannot use -gmt and -timezone in same call" - } - if { [catch { expr { wide($clockval) } } result] } { - return -code error "expected integer but got \"$clockval\"" - } - if { ![string is boolean -strict $gmt] } { - return -code error "expected boolean value but got \"$gmt\"" - } elseif { $gmt } { - set timezone :GMT - } - - EnterLocale $locale - - set changeover [mc GREGORIAN_CHANGE_DATE] - - if {[catch {SetupTimeZone $timezone} retval opts]} { - dict unset opts -errorinfo - return -options $opts $retval - } - - try { - foreach { quantity unit } $offsets { - switch -exact -- $unit { - years - year { - set clockval [AddMonths [expr { 12 * $quantity }] \ - $clockval $timezone $changeover] - } - months - month { - set clockval [AddMonths $quantity $clockval $timezone \ - $changeover] - } - - weeks - week { - set clockval [AddDays [expr { 7 * $quantity }] \ - $clockval $timezone $changeover] - } - days - day { - set clockval [AddDays $quantity $clockval $timezone \ - $changeover] - } - - hours - hour { - set clockval [expr { 3600 * $quantity + $clockval }] - } - minutes - minute { - set clockval [expr { 60 * $quantity + $clockval }] - } - seconds - second { - set clockval [expr { $quantity + $clockval }] - } - - default { - throw [list CLOCK badUnit $unit] \ - "unknown unit \"$unit\", must be \ - years, months, weeks, days, hours, minutes or seconds" - } - } - } - return $clockval - } trap CLOCK {result opts} { - # Conceal the innards of [clock] when it's an expected error - dict unset opts -errorinfo - return -options $opts $result - } -} - -#---------------------------------------------------------------------- -# -# AddMonths -- -# -# Add a given number of months to a given clock value in a given -# time zone. -# -# Parameters: -# months - Number of months to add (may be negative) -# clockval - Seconds since the epoch before the operation -# timezone - Time zone in which the operation is to be performed -# -# Results: -# Returns the new clock value as a number of seconds since -# the epoch. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AddMonths { months clockval timezone changeover } { - variable DaysInRomanMonthInCommonYear - variable DaysInRomanMonthInLeapYear - variable TZData - - # Convert the time to year, month, day, and fraction of day. - - set date [GetDateFields $clockval $TZData($timezone) $changeover] - dict set date secondOfDay [expr { - [dict get $date localSeconds] % 86400 - }] - dict set date tzName $timezone - - # Add the requisite number of months - - set m [dict get $date month] - incr m $months - incr m -1 - set delta [expr { $m / 12 }] - set mm [expr { $m % 12 }] - dict set date month [expr { $mm + 1 }] - dict incr date year $delta - - # If the date doesn't exist in the current month, repair it - - if { [IsGregorianLeapYear $date] } { - set hath [lindex $DaysInRomanMonthInLeapYear $mm] - } else { - set hath [lindex $DaysInRomanMonthInCommonYear $mm] - } - if { [dict get $date dayOfMonth] > $hath } { - dict set date dayOfMonth $hath - } - - # Reconvert to a number of seconds - - set date [GetJulianDayFromEraYearMonthDay \ - $date[set date {}]\ - $changeover] - dict set date localSeconds [expr { - -210866803200 - + ( 86400 * wide([dict get $date julianDay]) ) - + [dict get $date secondOfDay] - }] - set date [ConvertLocalToUTC $date[set date {}] $TZData($timezone) \ - $changeover] - - return [dict get $date seconds] - -} - -#---------------------------------------------------------------------- -# -# AddDays -- -# -# Add a given number of days to a given clock value in a given time -# zone. -# -# Parameters: -# days - Number of days to add (may be negative) -# clockval - Seconds since the epoch before the operation -# timezone - Time zone in which the operation is to be performed -# changeover - Julian Day on which the Gregorian calendar was adopted -# in the target locale. -# -# Results: -# Returns the new clock value as a number of seconds since the epoch. -# -# Side effects: -# None. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::AddDays { days clockval timezone changeover } { - variable TZData - - # Convert the time to Julian Day - - set date [GetDateFields $clockval $TZData($timezone) $changeover] - dict set date secondOfDay [expr { - [dict get $date localSeconds] % 86400 - }] - dict set date tzName $timezone - - # Add the requisite number of days - - dict incr date julianDay $days - - # Reconvert to a number of seconds - - dict set date localSeconds [expr { - -210866803200 - + ( 86400 * wide([dict get $date julianDay]) ) - + [dict get $date secondOfDay] - }] - set date [ConvertLocalToUTC $date[set date {}] $TZData($timezone) \ - $changeover] - - return [dict get $date seconds] - -} - -#---------------------------------------------------------------------- -# -# ChangeCurrentLocale -- -# -# The global locale was changed within msgcat. -# Clears the buffered parse functions of the current locale. -# -# Parameters: -# loclist (ignored) -# -# Results: -# None. -# -# Side effects: -# Buffered parse functions are cleared. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ChangeCurrentLocale {args} { - variable FormatProc - variable LocaleNumeralCache - variable CachedSystemTimeZone - variable TimeZoneBad - - foreach p [info procs [namespace current]::scanproc'*'current] { - rename $p {} - } - foreach p [info procs [namespace current]::formatproc'*'current] { - rename $p {} - } - - catch {array unset FormatProc *'current} - set LocaleNumeralCache {} -} - -#---------------------------------------------------------------------- -# -# ClearCaches -- -# -# Clears all caches to reclaim the memory used in [clock] -# -# Parameters: -# None. -# -# Results: -# None. -# -# Side effects: -# Caches are cleared. -# -#---------------------------------------------------------------------- - -proc ::tcl::clock::ClearCaches {} { - variable FormatProc - variable LocaleNumeralCache - variable CachedSystemTimeZone - variable TimeZoneBad - - foreach p [info procs [namespace current]::scanproc'*] { - rename $p {} - } - foreach p [info procs [namespace current]::formatproc'*] { - rename $p {} - } - - catch {unset FormatProc} - set LocaleNumeralCache {} - catch {unset CachedSystemTimeZone} - set TimeZoneBad {} - InitTZData -} diff --git a/src/runtime/tcl_library/cookiejar/cookiejar.tcl b/src/runtime/tcl_library/cookiejar/cookiejar.tcl deleted file mode 100644 index c9c0b1c0..00000000 --- a/src/runtime/tcl_library/cookiejar/cookiejar.tcl +++ /dev/null @@ -1,746 +0,0 @@ -# cookiejar.tcl -- -# -# Implementation of an HTTP cookie storage engine using SQLite. The -# implementation is done as a TclOO class, and includes a punycode -# encoder and decoder (though only the encoder is currently used). -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. - -# Dependencies -package require Tcl 8.6- -package require http 2.8.4 -package require sqlite3 -package require tcl::idna 1.0 - -# -# Configuration for the cookiejar package, plus basic support procedures. -# - -# This is the class that we are creating -if {![llength [info commands ::http::cookiejar]]} { - ::oo::class create ::http::cookiejar -} - -namespace eval [info object namespace ::http::cookiejar] { - proc setInt {*var val} { - upvar 1 ${*var} var - if {[catch {incr dummy $val} msg]} { - return -code error $msg - } - set var $val - } - proc setInterval {trigger *var val} { - upvar 1 ${*var} var - if {![string is integer -strict $val] || $val < 1} { - return -code error "expected positive integer but got \"$val\"" - } - set var $val - {*}$trigger - } - proc setBool {*var val} { - upvar 1 ${*var} var - if {[catch {if {$val} {}} msg]} { - return -code error $msg - } - set var [expr {!!$val}] - } - - proc setLog {*var val} { - upvar 1 ${*var} var - set var [::tcl::prefix match -message "log level" \ - {debug info warn error} $val] - } - - # Keep this in sync with pkgIndex.tcl and with the install directories in - # Makefiles - variable version 0.2.0 - - variable domainlist \ - https://publicsuffix.org/list/public_suffix_list.dat - variable domainfile \ - [file join [file dirname [info script]] public_suffix_list.dat.gz] - # The list is directed to from http://publicsuffix.org/list/ - variable loglevel info - variable vacuumtrigger 200 - variable retainlimit 100 - variable offline false - variable purgeinterval 60000 - variable refreshinterval 10000000 - variable domaincache {} - - # Some support procedures, none particularly useful in general - namespace eval support { - # Set up a logger if the http package isn't actually loaded yet. - if {![llength [info commands ::http::Log]]} { - proc ::http::Log args { - # Do nothing by default... - } - } - - namespace export * - proc locn {secure domain path {key ""}} { - if {$key eq ""} { - format "%s://%s%s" [expr {$secure?"https":"http"}] \ - [::tcl::idna encode $domain] $path - } else { - format "%s://%s%s?%s" \ - [expr {$secure?"https":"http"}] [::tcl::idna encode $domain] \ - $path $key - } - } - proc splitDomain domain { - set pieces [split $domain "."] - for {set i [llength $pieces]} {[incr i -1] >= 0} {} { - lappend result [join [lrange $pieces $i end] "."] - } - return $result - } - proc splitPath path { - set pieces [split [string trimleft $path "/"] "/"] - set result / - for {set j 0} {$j < [llength $pieces]} {incr j} { - lappend result /[join [lrange $pieces 0 $j] "/"] - } - return $result - } - proc isoNow {} { - set ms [clock milliseconds] - set ts [expr {$ms / 1000}] - set ms [format %03d [expr {$ms % 1000}]] - clock format $ts -format "%Y%m%dT%H%M%S.${ms}Z" -gmt 1 - } - proc log {level msg args} { - namespace upvar [info object namespace ::http::cookiejar] \ - loglevel loglevel - set who [uplevel 1 self class] - set mth [uplevel 1 self method] - set map {debug 0 info 1 warn 2 error 3} - if {[string map $map $level] >= [string map $map $loglevel]} { - set msg [format $msg {*}$args] - set LVL [string toupper $level] - ::http::Log "[isoNow] $LVL $who $mth - $msg" - } - } - } -} - -# Now we have enough information to provide the package. -package provide cookiejar \ - [set [info object namespace ::http::cookiejar]::version] - -# The implementation of the cookiejar package -::oo::define ::http::cookiejar { - self { - method configure {{optionName "\x00\x00"} {optionValue "\x00\x00"}} { - set tbl { - -domainfile {domainfile set} - -domainlist {domainlist set} - -domainrefresh {refreshinterval setInterval} - -loglevel {loglevel setLog} - -offline {offline setBool} - -purgeold {purgeinterval setInterval} - -retain {retainlimit setInt} - -vacuumtrigger {vacuumtrigger setInt} - } - dict lappend tbl -domainrefresh [namespace code { - my IntervalTrigger PostponeRefresh - }] - dict lappend tbl -purgeold [namespace code { - my IntervalTrigger PostponePurge - }] - if {$optionName eq "\x00\x00"} { - return [dict keys $tbl] - } - set opt [::tcl::prefix match -message "option" \ - [dict keys $tbl] $optionName] - set setter [lassign [dict get $tbl $opt] varname] - namespace upvar [namespace current] $varname var - if {$optionValue ne "\x00\x00"} { - {*}$setter var $optionValue - } - return $var - } - - method IntervalTrigger {method} { - # TODO: handle subclassing - foreach obj [info class instances [self]] { - [info object namespace $obj]::my $method - } - } - } - - variable purgeTimer deletions refreshTimer - constructor {{path ""}} { - namespace import [info object namespace [self class]]::support::* - - if {$path eq ""} { - sqlite3 [namespace current]::db :memory: - set storeorigin "constructed cookie store in memory" - } else { - sqlite3 [namespace current]::db $path - db timeout 500 - set storeorigin "loaded cookie store from $path" - } - - set deletions 0 - db transaction { - db eval { - --;# Store the persistent cookies in this table. - --;# Deletion policy: once they expire, or if explicitly - --;# killed. - CREATE TABLE IF NOT EXISTS persistentCookies ( - id INTEGER PRIMARY KEY, - secure INTEGER NOT NULL, - domain TEXT NOT NULL COLLATE NOCASE, - path TEXT NOT NULL, - key TEXT NOT NULL, - value TEXT NOT NULL, - originonly INTEGER NOT NULL, - expiry INTEGER NOT NULL, - lastuse INTEGER NOT NULL, - creation INTEGER NOT NULL); - CREATE UNIQUE INDEX IF NOT EXISTS persistentUnique - ON persistentCookies (domain, path, key); - CREATE INDEX IF NOT EXISTS persistentLookup - ON persistentCookies (domain, path); - - --;# Store the session cookies in this table. - --;# Deletion policy: at cookiejar instance deletion, if - --;# explicitly killed, or if the number of session cookies is - --;# too large and the cookie has not been used recently. - CREATE TEMP TABLE sessionCookies ( - id INTEGER PRIMARY KEY, - secure INTEGER NOT NULL, - domain TEXT NOT NULL COLLATE NOCASE, - path TEXT NOT NULL, - key TEXT NOT NULL, - originonly INTEGER NOT NULL, - value TEXT NOT NULL, - lastuse INTEGER NOT NULL, - creation INTEGER NOT NULL); - CREATE UNIQUE INDEX sessionUnique - ON sessionCookies (domain, path, key); - CREATE INDEX sessionLookup ON sessionCookies (domain, path); - - --;# View to allow for simple looking up of a cookie. - --;# Deletion policy: NOT SUPPORTED via this view. - CREATE TEMP VIEW cookies AS - SELECT id, domain, ( - CASE originonly WHEN 1 THEN path ELSE '.' || path END - ) AS path, key, value, secure, 1 AS persistent - FROM persistentCookies - UNION - SELECT id, domain, ( - CASE originonly WHEN 1 THEN path ELSE '.' || path END - ) AS path, key, value, secure, 0 AS persistent - FROM sessionCookies; - - --;# Encoded domain permission policy; if forbidden is 1, no - --;# cookie may be ever set for the domain, and if forbidden - --;# is 0, cookies *may* be created for the domain (overriding - --;# the forbiddenSuper table). - --;# Deletion policy: normally not modified. - CREATE TABLE IF NOT EXISTS domains ( - domain TEXT PRIMARY KEY NOT NULL, - forbidden INTEGER NOT NULL); - - --;# Domains that may not have a cookie defined for direct - --;# child domains of them. - --;# Deletion policy: normally not modified. - CREATE TABLE IF NOT EXISTS forbiddenSuper ( - domain TEXT PRIMARY KEY); - - --;# When we last retrieved the domain list. - CREATE TABLE IF NOT EXISTS domainCacheMetadata ( - id INTEGER PRIMARY KEY, - retrievalDate INTEGER, - installDate INTEGER); - } - - set cookieCount "no" - db eval { - SELECT COUNT(*) AS cookieCount FROM persistentCookies - } - log info "%s with %s entries" $storeorigin $cookieCount - - my PostponePurge - - if {$path ne ""} { - if {[db exists {SELECT 1 FROM domains}]} { - my RefreshDomains - } else { - my InitDomainList - my PostponeRefresh - } - } else { - set data [my GetDomainListOffline metadata] - my InstallDomainData $data $metadata - my PostponeRefresh - } - } - } - - method PostponePurge {} { - namespace upvar [info object namespace [self class]] \ - purgeinterval interval - catch {after cancel $purgeTimer} - set purgeTimer [after $interval [namespace code {my PurgeCookies}]] - } - - method PostponeRefresh {} { - namespace upvar [info object namespace [self class]] \ - refreshinterval interval - catch {after cancel $refreshTimer} - set refreshTimer [after $interval [namespace code {my RefreshDomains}]] - } - - method RefreshDomains {} { - # TODO: domain list refresh policy - my PostponeRefresh - } - - method HttpGet {url {timeout 0} {maxRedirects 5}} { - for {set r 0} {$r < $maxRedirects} {incr r} { - set tok [::http::geturl $url -timeout $timeout] - try { - if {[::http::status $tok] eq "timeout"} { - return -code error "connection timed out" - } elseif {[::http::ncode $tok] == 200} { - return [::http::data $tok] - } elseif {[::http::ncode $tok] >= 400} { - return -code error [::http::error $tok] - } elseif {[dict exists [::http::meta $tok] Location]} { - set url [dict get [::http::meta $tok] Location] - continue - } - return -code error \ - "unexpected state: [::http::code $tok]" - } finally { - ::http::cleanup $tok - } - } - return -code error "too many redirects" - } - method GetDomainListOnline {metaVar} { - upvar 1 $metaVar meta - namespace upvar [info object namespace [self class]] \ - domainlist url domaincache cache - lassign $cache when data - if {$when > [clock seconds] - 3600} { - log debug "using cached value created at %s" \ - [clock format $when -format {%Y%m%dT%H%M%SZ} -gmt 1] - dict set meta retrievalDate $when - return $data - } - log debug "loading domain list from %s" $url - try { - set when [clock seconds] - set data [my HttpGet $url] - set cache [list $when $data] - # TODO: Should we use the Last-Modified header instead? - dict set meta retrievalDate $when - return $data - } on error msg { - log error "failed to fetch list of forbidden cookie domains from %s: %s" \ - $url $msg - return {} - } - } - method GetDomainListOffline {metaVar} { - upvar 1 $metaVar meta - namespace upvar [info object namespace [self class]] \ - domainfile filename - log debug "loading domain list from %s" $filename - try { - set f [open $filename] - try { - if {[string match *.gz $filename]} { - zlib push gunzip $f - } - fconfigure $f -encoding utf-8 - dict set meta retrievalDate [file mtime $filename] - return [read $f] - } finally { - close $f - } - } on error {msg opt} { - log error "failed to read list of forbidden cookie domains from %s: %s" \ - $filename $msg - return -options $opt $msg - } - } - method InitDomainList {} { - namespace upvar [info object namespace [self class]] \ - offline offline - if {!$offline} { - try { - set data [my GetDomainListOnline metadata] - if {[string length $data]} { - my InstallDomainData $data $metadata - return - } - } on error {} { - log warn "attempting to fall back to built in version" - } - } - set data [my GetDomainListOffline metadata] - my InstallDomainData $data $metadata - } - - method InstallDomainData {data meta} { - set n [db total_changes] - db transaction { - foreach line [split $data "\n"] { - if {[string trim $line] eq ""} { - continue - } elseif {[string match //* $line]} { - continue - } elseif {[string match !* $line]} { - set line [string range $line 1 end] - set idna [string tolower [::tcl::idna encode $line]] - set utf [::tcl::idna decode [string tolower $line]] - db eval { - INSERT OR REPLACE INTO domains (domain, forbidden) - VALUES ($utf, 0); - } - if {$idna ne $utf} { - db eval { - INSERT OR REPLACE INTO domains (domain, forbidden) - VALUES ($idna, 0); - } - } - } else { - if {[string match {\*.*} $line]} { - set line [string range $line 2 end] - set idna [string tolower [::tcl::idna encode $line]] - set utf [::tcl::idna decode [string tolower $line]] - db eval { - INSERT OR REPLACE INTO forbiddenSuper (domain) - VALUES ($utf); - } - if {$idna ne $utf} { - db eval { - INSERT OR REPLACE INTO forbiddenSuper (domain) - VALUES ($idna); - } - } - } else { - set idna [string tolower [::tcl::idna encode $line]] - set utf [::tcl::idna decode [string tolower $line]] - } - db eval { - INSERT OR REPLACE INTO domains (domain, forbidden) - VALUES ($utf, 1); - } - if {$idna ne $utf} { - db eval { - INSERT OR REPLACE INTO domains (domain, forbidden) - VALUES ($idna, 1); - } - } - } - if {$utf ne [::tcl::idna decode [string tolower $idna]]} { - log warn "mismatch in IDNA handling for %s (%d, %s, %s)" \ - $idna $line $utf [::tcl::idna decode $idna] - } - } - - dict with meta { - set installDate [clock seconds] - db eval { - INSERT OR REPLACE INTO domainCacheMetadata - (id, retrievalDate, installDate) - VALUES (1, $retrievalDate, $installDate); - } - } - } - set n [expr {[db total_changes] - $n}] - log info "constructed domain info with %d entries" $n - } - - # This forces the rebuild of the domain data, loading it from - method forceLoadDomainData {} { - db transaction { - db eval { - DELETE FROM domains; - DELETE FROM forbiddenSuper; - INSERT OR REPLACE INTO domainCacheMetadata - (id, retrievalDate, installDate) - VALUES (1, -1, -1); - } - my InitDomainList - } - } - - destructor { - catch { - after cancel $purgeTimer - } - catch { - after cancel $refreshTimer - } - catch { - db close - } - return - } - - method GetCookiesForHostAndPath {listVar secure host path fullhost} { - upvar 1 $listVar result - log debug "check for cookies for %s" [locn $secure $host $path] - set exact [expr {$host eq $fullhost}] - db eval { - SELECT key, value FROM persistentCookies - WHERE domain = $host AND path = $path AND secure <= $secure - AND (NOT originonly OR domain = $fullhost) - AND originonly = $exact - } { - lappend result $key $value - db eval { - UPDATE persistentCookies SET lastuse = $now WHERE id = $id - } - } - set now [clock seconds] - db eval { - SELECT id, key, value FROM sessionCookies - WHERE domain = $host AND path = $path AND secure <= $secure - AND (NOT originonly OR domain = $fullhost) - AND originonly = $exact - } { - lappend result $key $value - db eval { - UPDATE sessionCookies SET lastuse = $now WHERE id = $id - } - } - } - - method getCookies {proto host path} { - set result {} - set paths [splitPath $path] - if {[regexp {[^0-9.]} $host]} { - set domains [splitDomain [string tolower [::tcl::idna encode $host]]] - } else { - # Ugh, it's a numeric domain! Restrict it to just itself... - set domains [list $host] - } - set secure [string equal -nocase $proto "https"] - # Open question: how to move these manipulations into the database - # engine (if that's where they *should* be). - # - # Suggestion from kbk: - #LENGTH(theColumn) <= LENGTH($queryStr) AND - #SUBSTR(theColumn, LENGTH($queryStr) LENGTH(theColumn)+1) = $queryStr - # - # However, we instead do most of the work in Tcl because that lets us - # do the splitting exactly right, and it's far easier to work with - # strings in Tcl than in SQL. - db transaction { - foreach domain $domains { - foreach p $paths { - my GetCookiesForHostAndPath result $secure $domain $p $host - } - } - return $result - } - } - - method BadDomain options { - if {![dict exists $options domain]} { - log error "no domain present in options" - return 0 - } - dict with options {} - if {$domain ne $origin} { - log debug "cookie domain varies from origin (%s, %s)" \ - $domain $origin - if {[string match .* $domain]} { - set dotd $domain - } else { - set dotd .$domain - } - if {![string equal -length [string length $dotd] \ - [string reverse $dotd] [string reverse $origin]]} { - log warn "bad cookie: domain not suffix of origin" - return 1 - } - } - if {![regexp {[^0-9.]} $domain]} { - if {$domain eq $origin} { - # May set for itself - return 0 - } - log warn "bad cookie: for a numeric address" - return 1 - } - db eval { - SELECT forbidden FROM domains WHERE domain = $domain - } { - if {$forbidden} { - log warn "bad cookie: for a forbidden address" - } - return $forbidden - } - if {[regexp {^[^.]+\.(.+)$} $domain -> super] && [db exists { - SELECT 1 FROM forbiddenSuper WHERE domain = $super - }]} then { - log warn "bad cookie: for a forbidden address" - return 1 - } - return 0 - } - - # A defined extension point to allow users to easily impose extra policies - # on whether to accept cookies from a particular domain and path. - method policyAllow {operation domain path} { - return true - } - - method storeCookie {options} { - db transaction { - if {[my BadDomain $options]} { - return - } - set now [clock seconds] - set persistent [dict exists $options expires] - dict with options {} - if {!$persistent} { - if {![my policyAllow session $domain $path]} { - log warn "bad cookie: $domain prohibited by user policy" - return - } - db eval { - INSERT OR REPLACE INTO sessionCookies ( - secure, domain, path, key, value, originonly, creation, - lastuse) - VALUES ($secure, $domain, $path, $key, $value, $hostonly, - $now, $now); - DELETE FROM persistentCookies - WHERE domain = $domain AND path = $path AND key = $key - AND secure <= $secure AND originonly = $hostonly - } - incr deletions [db changes] - log debug "defined session cookie for %s" \ - [locn $secure $domain $path $key] - } elseif {$expires < $now} { - if {![my policyAllow delete $domain $path]} { - log warn "bad cookie: $domain prohibited by user policy" - return - } - db eval { - DELETE FROM persistentCookies - WHERE domain = $domain AND path = $path AND key = $key - AND secure <= $secure AND originonly = $hostonly - } - set del [db changes] - db eval { - DELETE FROM sessionCookies - WHERE domain = $domain AND path = $path AND key = $key - AND secure <= $secure AND originonly = $hostonly - } - incr deletions [incr del [db changes]] - log debug "deleted %d cookies for %s" \ - $del [locn $secure $domain $path $key] - } else { - if {![my policyAllow set $domain $path]} { - log warn "bad cookie: $domain prohibited by user policy" - return - } - db eval { - INSERT OR REPLACE INTO persistentCookies ( - secure, domain, path, key, value, originonly, expiry, - creation, lastuse) - VALUES ($secure, $domain, $path, $key, $value, $hostonly, - $expires, $now, $now); - DELETE FROM sessionCookies - WHERE domain = $domain AND path = $path AND key = $key - AND secure <= $secure AND originonly = $hostonly - } - incr deletions [db changes] - log debug "defined persistent cookie for %s, expires at %s" \ - [locn $secure $domain $path $key] \ - [clock format $expires] - } - } - } - - method PurgeCookies {} { - namespace upvar [info object namespace [self class]] \ - vacuumtrigger trigger retainlimit retain - my PostponePurge - set now [clock seconds] - log debug "purging cookies that expired before %s" [clock format $now] - db transaction { - db eval { - DELETE FROM persistentCookies WHERE expiry < $now - } - incr deletions [db changes] - db eval { - DELETE FROM persistentCookies WHERE id IN ( - SELECT id FROM persistentCookies ORDER BY lastuse ASC - LIMIT -1 OFFSET $retain) - } - incr deletions [db changes] - db eval { - DELETE FROM sessionCookies WHERE id IN ( - SELECT id FROM sessionCookies ORDER BY lastuse - LIMIT -1 OFFSET $retain) - } - incr deletions [db changes] - } - - # Once we've deleted a fair bit, vacuum the database. Must be done - # outside a transaction. - if {$deletions > $trigger} { - set deletions 0 - log debug "vacuuming cookie database" - catch { - db eval { - VACUUM - } - } - } - } - - forward Database db - - method lookup {{host ""} {key ""}} { - set host [string tolower [::tcl::idna encode $host]] - db transaction { - if {$host eq ""} { - set result {} - db eval { - SELECT DISTINCT domain FROM cookies - ORDER BY domain - } { - lappend result [::tcl::idna decode [string tolower $domain]] - } - return $result - } elseif {$key eq ""} { - set result {} - db eval { - SELECT DISTINCT key FROM cookies - WHERE domain = $host - ORDER BY key - } { - lappend result $key - } - return $result - } else { - db eval { - SELECT value FROM cookies - WHERE domain = $host AND key = $key - LIMIT 1 - } { - return $value - } - return -code error "no such key for that host" - } - } - } -} - -# Local variables: -# mode: tcl -# fill-column: 78 -# End: diff --git a/src/runtime/tcl_library/cookiejar/idna.tcl b/src/runtime/tcl_library/cookiejar/idna.tcl deleted file mode 100644 index dc25cd80..00000000 --- a/src/runtime/tcl_library/cookiejar/idna.tcl +++ /dev/null @@ -1,292 +0,0 @@ -# idna.tcl -- -# -# Implementation of IDNA (Internationalized Domain Names for -# Applications) encoding/decoding system, built on a punycode engine -# developed directly from the code in RFC 3492, Appendix C (with -# substantial modifications). -# -# This implementation includes code from that RFC, translated to Tcl; the -# other parts are: -# Copyright © 2014 Donal K. Fellows -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. - -namespace eval ::tcl::idna { - namespace ensemble create -command puny -map { - encode punyencode - decode punydecode - } - namespace ensemble create -command ::tcl::idna -map { - encode IDNAencode - decode IDNAdecode - puny puny - version {::apply {{} {package present tcl::idna} ::}} - } - - proc IDNAencode hostname { - set parts {} - # Split term from RFC 3490, Sec 3.1 - foreach part [split $hostname "\x2E\u3002\uFF0E\uFF61"] { - if {[regexp {[^-A-Za-z0-9]} $part]} { - if {[regexp {[^-A-Za-z0-9\xA1-\uFFFF]} $part ch]} { - scan $ch %c c - if {$ch < "!" || $ch > "~"} { - set ch [format "\\u%04x" $c] - } - throw [list IDNA INVALID_NAME_CHARACTER $ch] \ - "bad character \"$ch\" in DNS name" - } - set part xn--[punyencode $part] - # Length restriction from RFC 5890, Sec 2.3.1 - if {[string length $part] > 63} { - throw [list IDNA OVERLONG_PART $part] \ - "hostname part too long" - } - } - lappend parts $part - } - return [join $parts .] - } - proc IDNAdecode hostname { - set parts {} - # Split term from RFC 3490, Sec 3.1 - foreach part [split $hostname "\x2E\u3002\uFF0E\uFF61"] { - if {[string match -nocase "xn--*" $part]} { - set part [punydecode [string range $part 4 end]] - } - lappend parts $part - } - return [join $parts .] - } - - variable digits [split "abcdefghijklmnopqrstuvwxyz0123456789" ""] - # Bootstring parameters for Punycode - variable base 36 - variable tmin 1 - variable tmax 26 - variable skew 38 - variable damp 700 - variable initial_bias 72 - variable initial_n 0x80 - - variable max_codepoint 0x10FFFF - - proc adapt {delta first numchars} { - variable base - variable tmin - variable tmax - variable damp - variable skew - - set delta [expr {$delta / ($first ? $damp : 2)}] - incr delta [expr {$delta / $numchars}] - set k 0 - while {$delta > ($base - $tmin) * $tmax / 2} { - set delta [expr {$delta / ($base-$tmin)}] - incr k $base - } - return [expr {$k + ($base-$tmin+1) * $delta / ($delta+$skew)}] - } - - # Main punycode encoding function - proc punyencode {string {case ""}} { - variable digits - variable tmin - variable tmax - variable base - variable initial_n - variable initial_bias - - if {![string is boolean $case]} { - return -code error "\"$case\" must be boolean" - } - - set in {} - foreach char [set string [split $string ""]] { - scan $char "%c" ch - lappend in $ch - } - set output {} - - # Initialize the state: - set n $initial_n - set delta 0 - set bias $initial_bias - - # Handle the basic code points: - foreach ch $string { - if {$ch < "\x80"} { - if {$case eq ""} { - append output $ch - } elseif {[string is true $case]} { - append output [string toupper $ch] - } elseif {[string is false $case]} { - append output [string tolower $ch] - } - } - } - - set b [string length $output] - - # h is the number of code points that have been handled, b is the - # number of basic code points. - - if {$b > 0} { - append output "-" - } - - # Main encoding loop: - - for {set h $b} {$h < [llength $in]} {incr delta; incr n} { - # All non-basic code points < n have been handled already. Find - # the next larger one: - - set m inf - foreach ch $in { - if {$ch >= $n && $ch < $m} { - set m $ch - } - } - - # Increase delta enough to advance the decoder's state to - # , but guard against overflow: - - if {$m-$n > (0xFFFFFFFF-$delta)/($h+1)} { - throw {PUNYCODE OVERFLOW} "overflow in delta computation" - } - incr delta [expr {($m-$n) * ($h+1)}] - set n $m - - foreach ch $in { - if {$ch < $n && ([incr delta] & 0xFFFFFFFF) == 0} { - throw {PUNYCODE OVERFLOW} "overflow in delta computation" - } - - if {$ch != $n} { - continue - } - - # Represent delta as a generalized variable-length integer: - - for {set q $delta; set k $base} true {incr k $base} { - set t [expr {min(max($k-$bias, $tmin), $tmax)}] - if {$q < $t} { - break - } - append output \ - [lindex $digits [expr {$t + ($q-$t)%($base-$t)}]] - set q [expr {($q-$t) / ($base-$t)}] - } - - append output [lindex $digits $q] - set bias [adapt $delta [expr {$h==$b}] [expr {$h+1}]] - set delta 0 - incr h - } - } - - return $output - } - - # Main punycode decode function - proc punydecode {string {case ""}} { - variable tmin - variable tmax - variable base - variable initial_n - variable initial_bias - variable max_codepoint - - if {![string is boolean $case]} { - return -code error "\"$case\" must be boolean" - } - - # Initialize the state: - - set n $initial_n - set i 0 - set first 1 - set bias $initial_bias - - # Split the string into the "real" ASCII characters and the ones to - # feed into the main decoder. Note that we don't need to check the - # result of [regexp] because that RE will technically match any string - # at all. - - regexp {^(?:(.*)-)?([^-]*)$} $string -> pre post - if {[string is true -strict $case]} { - set pre [string toupper $pre] - } elseif {[string is false -strict $case]} { - set pre [string tolower $pre] - } - set output [split $pre ""] - set out [llength $output] - - # Main decoding loop: - - for {set in 0} {$in < [string length $post]} {incr in} { - # Decode a generalized variable-length integer into delta, which - # gets added to i. The overflow checking is easier if we increase - # i as we go, then subtract off its starting value at the end to - # obtain delta. - - for {set oldi $i; set w 1; set k $base} 1 {incr in} { - if {[set ch [string index $post $in]] eq ""} { - throw {PUNYCODE BAD_INPUT LENGTH} "exceeded input data" - } - if {[string match -nocase {[a-z]} $ch]} { - scan [string toupper $ch] %c digit - incr digit -65 - } elseif {[string match {[0-9]} $ch]} { - set digit [expr {$ch + 26}] - } else { - throw {PUNYCODE BAD_INPUT CHAR} \ - "bad decode character \"$ch\"" - } - incr i [expr {$digit * $w}] - set t [expr {min(max($tmin, $k-$bias), $tmax)}] - if {$digit < $t} { - set bias [adapt [expr {$i-$oldi}] $first [incr out]] - set first 0 - break - } - if {[set w [expr {$w * ($base - $t)}]] > 0x7FFFFFFF} { - throw {PUNYCODE OVERFLOW} \ - "excessively large integer computed in digit decode" - } - incr k $base - } - - # i was supposed to wrap around from out+1 to 0, incrementing n - # each time, so we'll fix that now: - - if {[incr n [expr {$i / $out}]] > 0x7FFFFFFF} { - throw {PUNYCODE OVERFLOW} \ - "excessively large integer computed in character choice" - } elseif {$n > $max_codepoint} { - if {$n >= 0x00D800 && $n < 0x00E000} { - # Bare surrogate?! - throw {PUNYCODE NON_BMP} \ - [format "unsupported character U+%06x" $n] - } - throw {PUNYCODE NON_UNICODE} "bad codepoint $n" - } - set i [expr {$i % $out}] - - # Insert n at position i of the output: - - set output [linsert $output $i [format "%c" $n]] - incr i - } - - return [join $output ""] - } -} - -package provide tcl::idna 1.0.1 - -# Local variables: -# mode: tcl -# fill-column: 78 -# End: diff --git a/src/runtime/tcl_library/cookiejar/pkgIndex.tcl b/src/runtime/tcl_library/cookiejar/pkgIndex.tcl deleted file mode 100644 index b1853aa8..00000000 --- a/src/runtime/tcl_library/cookiejar/pkgIndex.tcl +++ /dev/null @@ -1,3 +0,0 @@ -if {![package vsatisfies [package provide Tcl] 8.6-]} {return} -package ifneeded cookiejar 0.2.0 [list source [file join $dir cookiejar.tcl]] -package ifneeded tcl::idna 1.0.1 [list source [file join $dir idna.tcl]] diff --git a/src/runtime/tcl_library/cookiejar/public_suffix_list.dat.gz b/src/runtime/tcl_library/cookiejar/public_suffix_list.dat.gz deleted file mode 100644 index 65bf75a8..00000000 Binary files a/src/runtime/tcl_library/cookiejar/public_suffix_list.dat.gz and /dev/null differ diff --git a/src/runtime/tcl_library/dde/pkgIndex.tcl b/src/runtime/tcl_library/dde/pkgIndex.tcl deleted file mode 100644 index ace16818..00000000 --- a/src/runtime/tcl_library/dde/pkgIndex.tcl +++ /dev/null @@ -1,12 +0,0 @@ -if {[info sharedlibextension] != ".dll"} return -if {[package vsatisfies [package provide Tcl] 9.0-]} { - package ifneeded dde 1.4.5 \ - [list load [file join $dir tcl9dde14.dll] Dde] -} elseif {![package vsatisfies [package provide Tcl] 8.7] - && [::tcl::pkgconfig get debug]} { - package ifneeded dde 1.4.5 \ - [list load [file join $dir tcldde14g.dll] Dde] -} else { - package ifneeded dde 1.4.5 \ - [list load [file join $dir tcldde14.dll] Dde] -} diff --git a/src/runtime/tcl_library/dde/tcl9dde14.dll b/src/runtime/tcl_library/dde/tcl9dde14.dll deleted file mode 100644 index b7b4ce43..00000000 Binary files a/src/runtime/tcl_library/dde/tcl9dde14.dll and /dev/null differ diff --git a/src/runtime/tcl_library/encoding/ascii.enc b/src/runtime/tcl_library/encoding/ascii.enc deleted file mode 100644 index 284a9f51..00000000 --- a/src/runtime/tcl_library/encoding/ascii.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: ascii, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/big5.enc b/src/runtime/tcl_library/encoding/big5.enc deleted file mode 100644 index d6ff7600..00000000 --- a/src/runtime/tcl_library/encoding/big5.enc +++ /dev/null @@ -1,1516 +0,0 @@ -# Encoding file: big5, multi-byte -M -003F 0 89 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3000FF0C30013002FF0E2022FF1BFF1AFF1FFF01FE3020262025FE50FF64FE52 -00B7FE54FE55FE56FE57FF5C2013FE312014FE33FFFDFE34FE4FFF08FF09FE35 -FE36FF5BFF5DFE37FE3830143015FE39FE3A30103011FE3BFE3C300A300BFE3D -FE3E30083009FE3FFE40300C300DFE41FE42300E300FFE43FE44FE59FE5A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FE5BFE5CFE5DFE5E20182019201C201D301D301E20352032FF03FF06FF0A -203B00A7300325CB25CF25B325B225CE2606260525C725C625A125A025BD25BC -32A32105203EFFFDFF3FFFFDFE49FE4AFE4DFE4EFE4BFE4CFE5FFE60FE61FF0B -FF0D00D700F700B1221AFF1CFF1EFF1D226622672260221E22522261FE62FE63 -FE64FE65FE66223C2229222A22A52220221F22BF33D233D1222B222E22352234 -26402642264126092191219321902192219621972199219822252223FFFD0000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FFFDFF0FFF3CFF0400A5301200A200A3FF05FF2021032109FE69FE6AFE6B33D5 -339C339D339E33CE33A1338E338F33C400B05159515B515E515D5161516355E7 -74E97CCE25812582258325842585258625872588258F258E258D258C258B258A -2589253C2534252C2524251C2594250025022595250C251025142518256D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000256E2570256F2550255E256A256125E225E325E525E4257125722573FF10 -FF11FF12FF13FF14FF15FF16FF17FF18FF192160216121622163216421652166 -216721682169302130223023302430253026302730283029FFFD5344FFFDFF21 -FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2FFF30FF31 -FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF41FF42FF43FF44FF45FF46FF47 -FF48FF49FF4AFF4BFF4CFF4DFF4EFF4FFF50FF51FF52FF53FF54FF55FF560000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FF57FF58FF59FF5A039103920393039403950396039703980399039A039B039C -039D039E039F03A003A103A303A403A503A603A703A803A903B103B203B303B4 -03B503B603B703B803B903BA03BB03BC03BD03BE03BF03C003C103C303C403C5 -03C603C703C803C931053106310731083109310A310B310C310D310E310F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00003110311131123113311431153116311731183119311A311B311C311D311E -311F312031213122312331243125312631273128312902D902C902CA02C702CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E004E594E014E034E434E5D4E864E8C4EBA513F5165516B51E052005201529B -53155341535C53C84E094E0B4E084E0A4E2B4E3851E14E454E484E5F4E5E4E8E -4EA15140520352FA534353C953E3571F58EB5915592759735B505B515B535BF8 -5C0F5C225C385C715DDD5DE55DF15DF25DF35DFE5E725EFE5F0B5F13624D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E114E104E0D4E2D4E304E394E4B5C394E884E914E954E924E944EA24EC1 -4EC04EC34EC64EC74ECD4ECA4ECB4EC4514351415167516D516E516C519751F6 -52065207520852FB52FE52FF53165339534853475345535E538453CB53CA53CD -58EC5929592B592A592D5B545C115C245C3A5C6F5DF45E7B5EFF5F145F155FC3 -62086236624B624E652F6587659765A465B965E566F0670867286B206B626B79 -6BCB6BD46BDB6C0F6C34706B722A7236723B72477259725B72AC738B4E190000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E164E154E144E184E3B4E4D4E4F4E4E4EE54ED84ED44ED54ED64ED74EE34EE4 -4ED94EDE514551445189518A51AC51F951FA51F8520A52A0529F530553065317 -531D4EDF534A534953615360536F536E53BB53EF53E453F353EC53EE53E953E8 -53FC53F853F553EB53E653EA53F253F153F053E553ED53FB56DB56DA59160000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000592E5931597459765B555B835C3C5DE85DE75DE65E025E035E735E7C5F01 -5F185F175FC5620A625362546252625165A565E6672E672C672A672B672D6B63 -6BCD6C116C106C386C416C406C3E72AF7384738974DC74E67518751F75287529 -7530753175327533758B767D76AE76BF76EE77DB77E277F3793A79BE7A747ACB -4E1E4E1F4E524E534E694E994EA44EA64EA54EFF4F094F194F0A4F154F0D4F10 -4F114F0F4EF24EF64EFB4EF04EF34EFD4F014F0B514951475146514851680000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5171518D51B0521752115212520E521652A3530853215320537053715409540F -540C540A54105401540B54045411540D54085403540E5406541256E056DE56DD -573357305728572D572C572F57295919591A59375938598459785983597D5979 -598259815B575B585B875B885B855B895BFA5C165C795DDE5E065E765E740000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F0F5F1B5FD95FD6620E620C620D62106263625B6258653665E965E865EC -65ED66F266F36709673D6734673167356B216B646B7B6C166C5D6C576C596C5F -6C606C506C556C616C5B6C4D6C4E7070725F725D767E7AF97C737CF87F367F8A -7FBD80018003800C80128033807F8089808B808C81E381EA81F381FC820C821B -821F826E8272827E866B8840884C8863897F96214E324EA84F4D4F4F4F474F57 -4F5E4F344F5B4F554F304F504F514F3D4F3A4F384F434F544F3C4F464F630000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F5C4F604F2F4F4E4F364F594F5D4F484F5A514C514B514D517551B651B75225 -52245229522A522852AB52A952AA52AC532353735375541D542D541E543E5426 -544E542754465443543354485442541B5429544A5439543B5438542E54355436 -5420543C54405431542B541F542C56EA56F056E456EB574A57515740574D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005747574E573E5750574F573B58EF593E599D599259A8599E59A359995996 -598D59A45993598A59A55B5D5B5C5B5A5B5B5B8C5B8B5B8F5C2C5C405C415C3F -5C3E5C905C915C945C8C5DEB5E0C5E8F5E875E8A5EF75F045F1F5F645F625F77 -5F795FD85FCC5FD75FCD5FF15FEB5FF85FEA6212621162846297629662806276 -6289626D628A627C627E627962736292626F6298626E62956293629162866539 -653B653865F166F4675F674E674F67506751675C6756675E6749674667600000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -675367576B656BCF6C426C5E6C996C816C886C896C856C9B6C6A6C7A6C906C70 -6C8C6C686C966C926C7D6C836C726C7E6C746C866C766C8D6C946C986C827076 -707C707D707872627261726072C472C27396752C752B75377538768276EF77E3 -79C179C079BF7A767CFB7F5580968093809D8098809B809A80B2826F82920000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000828B828D898B89D28A008C378C468C558C9D8D648D708DB38EAB8ECA8F9B -8FB08FC28FC68FC58FC45DE1909190A290AA90A690A3914991C691CC9632962E -9631962A962C4E264E564E734E8B4E9B4E9E4EAB4EAC4F6F4F9D4F8D4F734F7F -4F6C4F9B4F8B4F864F834F704F754F884F694F7B4F964F7E4F8F4F914F7A5154 -51525155516951775176517851BD51FD523B52385237523A5230522E52365241 -52BE52BB5352535453535351536653775378537953D653D453D7547354750000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5496547854955480547B5477548454925486547C549054715476548C549A5462 -5468548B547D548E56FA57835777576A5769576157665764577C591C59495947 -59485944595459BE59BB59D459B959AE59D159C659D059CD59CB59D359CA59AF -59B359D259C55B5F5B645B635B975B9A5B985B9C5B995B9B5C1A5C485C450000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C465CB75CA15CB85CA95CAB5CB15CB35E185E1A5E165E155E1B5E115E78 -5E9A5E975E9C5E955E965EF65F265F275F295F805F815F7F5F7C5FDD5FE05FFD -5FF55FFF600F6014602F60356016602A6015602160276029602B601B62166215 -623F623E6240627F62C962CC62C462BF62C262B962D262DB62AB62D362D462CB -62C862A862BD62BC62D062D962C762CD62B562DA62B162D862D662D762C662AC -62CE653E65A765BC65FA66146613660C66066602660E6600660F6615660A0000 -AA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6607670D670B676D678B67956771679C677367776787679D6797676F6770677F -6789677E67906775679A6793677C676A67726B236B666B676B7F6C136C1B6CE3 -6CE86CF36CB16CCC6CE56CB36CBD6CBE6CBC6CE26CAB6CD56CD36CB86CC46CB9 -6CC16CAE6CD76CC56CF16CBF6CBB6CE16CDB6CCA6CAC6CEF6CDC6CD66CE00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007095708E7092708A7099722C722D723872487267726972C072CE72D972D7 -72D073A973A8739F73AB73A5753D759D7599759A768476C276F276F477E577FD -793E7940794179C979C87A7A7A797AFA7CFE7F547F8C7F8B800580BA80A580A2 -80B180A180AB80A980B480AA80AF81E581FE820D82B3829D829982AD82BD829F -82B982B182AC82A582AF82B882A382B082BE82B7864E8671521D88688ECB8FCE -8FD48FD190B590B890B190B691C791D195779580961C9640963F963B96440000 -AB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -964296B996E89752975E4E9F4EAD4EAE4FE14FB54FAF4FBF4FE04FD14FCF4FDD -4FC34FB64FD84FDF4FCA4FD74FAE4FD04FC44FC24FDA4FCE4FDE4FB751575192 -519151A0524E5243524A524D524C524B524752C752C952C352C1530D5357537B -539A53DB54AC54C054A854CE54C954B854A654B354C754C254BD54AA54C10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054C454C854AF54AB54B154BB54A954A754BF56FF5782578B57A057A357A2 -57CE57AE579359555951594F594E595059DC59D859FF59E359E85A0359E559EA -59DA59E65A0159FB5B695BA35BA65BA45BA25BA55C015C4E5C4F5C4D5C4B5CD9 -5CD25DF75E1D5E255E1F5E7D5EA05EA65EFA5F085F2D5F655F885F855F8A5F8B -5F875F8C5F896012601D60206025600E6028604D60706068606260466043606C -606B606A6064624162DC6316630962FC62ED630162EE62FD630762F162F70000 -AC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62EF62EC62FE62F463116302653F654565AB65BD65E26625662D66206627662F -661F66286631662466F767FF67D367F167D467D067EC67B667AF67F567E967EF -67C467D167B467DA67E567B867CF67DE67F367B067D967E267DD67D26B6A6B83 -6B866BB56BD26BD76C1F6CC96D0B6D326D2A6D416D256D0C6D316D1E6D170000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D3B6D3D6D3E6D366D1B6CF56D396D276D386D296D2E6D356D0E6D2B70AB -70BA70B370AC70AF70AD70B870AE70A472307272726F727472E972E072E173B7 -73CA73BB73B273CD73C073B3751A752D754F754C754E754B75AB75A475A575A2 -75A3767876867687768876C876C676C376C5770176F976F87709770B76FE76FC -770777DC78027814780C780D794679497948794779B979BA79D179D279CB7A7F -7A817AFF7AFD7C7D7D027D057D007D097D077D047D067F387F8E7FBF80040000 -AD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8010800D8011803680D680E580DA80C380C480CC80E180DB80CE80DE80E480DD -81F4822282E78303830582E382DB82E6830482E58302830982D282D782F18301 -82DC82D482D182DE82D382DF82EF830686508679867B867A884D886B898189D4 -8A088A028A038C9E8CA08D748D738DB48ECD8ECC8FF08FE68FE28FEA8FE50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008FED8FEB8FE48FE890CA90CE90C190C3914B914A91CD95829650964B964C -964D9762976997CB97ED97F3980198A898DB98DF999699994E584EB3500C500D -50234FEF502650254FF8502950165006503C501F501A501250114FFA50005014 -50284FF15021500B501950184FF34FEE502D502A4FFE502B5009517C51A451A5 -51A251CD51CC51C651CB5256525C5254525B525D532A537F539F539D53DF54E8 -55105501553754FC54E554F2550654FA551454E954ED54E1550954EE54EA0000 -AE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54E65527550754FD550F5703570457C257D457CB57C35809590F59575958595A -5A115A185A1C5A1F5A1B5A1359EC5A205A235A295A255A0C5A095B6B5C585BB0 -5BB35BB65BB45BAE5BB55BB95BB85C045C515C555C505CED5CFD5CFB5CEA5CE8 -5CF05CF65D015CF45DEE5E2D5E2B5EAB5EAD5EA75F315F925F915F9060590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006063606560506055606D6069606F6084609F609A608D6094608C60856096 -624762F3630862FF634E633E632F635563426346634F6349633A6350633D632A -632B6328634D634C65486549659965C165C566426649664F66436652664C6645 -664166F867146715671768216838684868466853683968426854682968B36817 -684C6851683D67F468506840683C6843682A68456813681868416B8A6B896BB7 -6C236C276C286C266C246CF06D6A6D956D886D876D666D786D776D596D930000 -AF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D6C6D896D6E6D5A6D746D696D8C6D8A6D796D856D656D9470CA70D870E470D9 -70C870CF7239727972FC72F972FD72F872F7738673ED740973EE73E073EA73DE -7554755D755C755A755975BE75C575C775B275B375BD75BC75B975C275B8768B -76B076CA76CD76CE7729771F7720772877E9783078277838781D783478370000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007825782D7820781F7832795579507960795F7956795E795D7957795A79E4 -79E379E779DF79E679E979D87A847A887AD97B067B117C897D217D177D0B7D0A -7D207D227D147D107D157D1A7D1C7D0D7D197D1B7F3A7F5F7F947FC57FC18006 -8018801580198017803D803F80F1810280F0810580ED80F4810680F880F38108 -80FD810A80FC80EF81ED81EC82008210822A822B8228822C82BB832B83528354 -834A83388350834983358334834F833283398336831783408331832883430000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8654868A86AA869386A486A9868C86A3869C8870887788818882887D88798A18 -8A108A0E8A0C8A158A0A8A178A138A168A0F8A118C488C7A8C798CA18CA28D77 -8EAC8ED28ED48ECF8FB1900190068FF790008FFA8FF490038FFD90058FF89095 -90E190DD90E29152914D914C91D891DD91D791DC91D995839662966396610000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000965B965D96649658965E96BB98E299AC9AA89AD89B259B329B3C4E7E507A -507D505C50475043504C505A504950655076504E5055507550745077504F500F -506F506D515C519551F0526A526F52D252D952D852D55310530F5319533F5340 -533E53C366FC5546556A55665544555E55615543554A55315556554F5555552F -55645538552E555C552C55635533554155575708570B570957DF5805580A5806 -57E057E457FA5802583557F757F9592059625A365A415A495A665A6A5A400000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A3C5A625A5A5A465A4A5B705BC75BC55BC45BC25BBF5BC65C095C085C075C60 -5C5C5C5D5D075D065D0E5D1B5D165D225D115D295D145D195D245D275D175DE2 -5E385E365E335E375EB75EB85EB65EB55EBE5F355F375F575F6C5F695F6B5F97 -5F995F9E5F985FA15FA05F9C607F60A3608960A060A860CB60B460E660BD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060C560BB60B560DC60BC60D860D560C660DF60B860DA60C7621A621B6248 -63A063A76372639663A263A563776367639863AA637163A963896383639B636B -63A863846388639963A163AC6392638F6380637B63696368637A655D65566551 -65596557555F654F655865556554659C659B65AC65CF65CB65CC65CE665D665A -666466686666665E66F952D7671B688168AF68A2689368B5687F687668B168A7 -689768B0688368C468AD688668856894689D68A8689F68A168826B326BBA0000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6BEB6BEC6C2B6D8E6DBC6DF36DD96DB26DE16DCC6DE46DFB6DFA6E056DC76DCB -6DAF6DD16DAE6DDE6DF96DB86DF76DF56DC56DD26E1A6DB56DDA6DEB6DD86DEA -6DF16DEE6DE86DC66DC46DAA6DEC6DBF6DE670F97109710A70FD70EF723D727D -7281731C731B73167313731973877405740A7403740673FE740D74E074F60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000074F7751C75227565756675627570758F75D475D575B575CA75CD768E76D4 -76D276DB7737773E773C77367738773A786B7843784E79657968796D79FB7A92 -7A957B207B287B1B7B2C7B267B197B1E7B2E7C927C977C957D467D437D717D2E -7D397D3C7D407D307D337D447D2F7D427D327D317F3D7F9E7F9A7FCC7FCE7FD2 -801C804A8046812F81168123812B81298130812482028235823782368239838E -839E8398837883A2839683BD83AB8392838A8393838983A08377837B837C0000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -838683A786555F6A86C786C086B686C486B586C686CB86B186AF86C98853889E -888888AB88928896888D888B8993898F8A2A8A1D8A238A258A318A2D8A1F8A1B -8A228C498C5A8CA98CAC8CAB8CA88CAA8CA78D678D668DBE8DBA8EDB8EDF9019 -900D901A90179023901F901D90109015901E9020900F90229016901B90140000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090E890ED90FD915791CE91F591E691E391E791ED91E99589966A96759673 -96789670967496769677966C96C096EA96E97AE07ADF980298039B5A9CE59E75 -9E7F9EA59EBB50A2508D508550995091508050965098509A670051F152725274 -5275526952DE52DD52DB535A53A5557B558055A7557C558A559D55985582559C -55AA55945587558B558355B355AE559F553E55B2559A55BB55AC55B1557E5589 -55AB5599570D582F582A58345824583058315821581D582058F958FA59600000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A775A9A5A7F5A925A9B5AA75B735B715BD25BCC5BD35BD05C0A5C0B5C315D4C -5D505D345D475DFD5E455E3D5E405E435E7E5ECA5EC15EC25EC45F3C5F6D5FA9 -5FAA5FA860D160E160B260B660E0611C612360FA611560F060FB60F4616860F1 -610E60F6610961006112621F624963A3638C63CF63C063E963C963C663CD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000063D263E363D063E163D663ED63EE637663F463EA63DB645263DA63F9655E -6566656265636591659065AF666E667066746676666F6691667A667E667766FE -66FF671F671D68FA68D568E068D868D7690568DF68F568EE68E768F968D268F2 -68E368CB68CD690D6912690E68C968DA696E68FB6B3E6B3A6B3D6B986B966BBC -6BEF6C2E6C2F6C2C6E2F6E386E546E216E326E676E4A6E206E256E236E1B6E5B -6E586E246E566E6E6E2D6E266E6F6E346E4D6E3A6E2C6E436E1D6E3E6ECB0000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E896E196E4E6E636E446E726E696E5F7119711A7126713071217136716E711C -724C728472807336732573347329743A742A743374227425743574367434742F -741B7426742875257526756B756A75E275DB75E375D975D875DE75E0767B767C -7696769376B476DC774F77ED785D786C786F7A0D7A087A0B7A057A007A980000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A977A967AE57AE37B497B567B467B507B527B547B4D7B4B7B4F7B517C9F -7CA57D5E7D507D687D557D2B7D6E7D727D617D667D627D707D7355847FD47FD5 -800B8052808581558154814B8151814E81398146813E814C815381748212821C -83E9840383F8840D83E083C5840B83C183EF83F183F48457840A83F0840C83CC -83FD83F283CA8438840E840483DC840783D483DF865B86DF86D986ED86D486DB -86E486D086DE885788C188C288B1898389968A3B8A608A558A5E8A3C8A410000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8A548A5B8A508A468A348A3A8A368A568C618C828CAF8CBC8CB38CBD8CC18CBB -8CC08CB48CB78CB68CBF8CB88D8A8D858D818DCE8DDD8DCB8DDA8DD18DCC8DDB -8DC68EFB8EF88EFC8F9C902E90359031903890329036910290F5910990FE9163 -916591CF9214921592239209921E920D9210920792119594958F958B95910000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000095939592958E968A968E968B967D96859686968D9672968496C196C596C4 -96C696C796EF96F297CC98059806980898E798EA98EF98E998F298ED99AE99AD -9EC39ECD9ED14E8250AD50B550B250B350C550BE50AC50B750BB50AF50C7527F -5277527D52DF52E652E452E252E3532F55DF55E855D355E655CE55DC55C755D1 -55E355E455EF55DA55E155C555C655E555C957125713585E585158585857585A -5854586B584C586D584A58625852584B59675AC15AC95ACC5ABE5ABD5ABC0000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5AB35AC25AB25D695D6F5E4C5E795EC95EC85F125F595FAC5FAE611A610F6148 -611F60F3611B60F961016108614E614C6144614D613E61346127610D61066137 -622162226413643E641E642A642D643D642C640F641C6414640D643664166417 -6406656C659F65B06697668966876688669666846698668D67036994696D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000695A697769606954697569306982694A6968696B695E695369796986695D -6963695B6B476B726BC06BBF6BD36BFD6EA26EAF6ED36EB66EC26E906E9D6EC7 -6EC56EA56E986EBC6EBA6EAB6ED16E966E9C6EC46ED46EAA6EA76EB4714E7159 -7169716471497167715C716C7166714C7165715E714671687156723A72527337 -7345733F733E746F745A7455745F745E7441743F7459745B745C757675787600 -75F0760175F275F175FA75FF75F475F376DE76DF775B776B7766775E77630000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7779776A776C775C77657768776277EE788E78B078977898788C7889787C7891 -7893787F797A797F7981842C79BD7A1C7A1A7A207A147A1F7A1E7A9F7AA07B77 -7BC07B607B6E7B677CB17CB37CB57D937D797D917D817D8F7D5B7F6E7F697F6A -7F727FA97FA87FA480568058808680848171817081788165816E8173816B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008179817A81668205824784828477843D843184758466846B8449846C845B -843C8435846184638469846D8446865E865C865F86F9871387088707870086FE -86FB870287038706870A885988DF88D488D988DC88D888DD88E188CA88D588D2 -899C89E38A6B8A728A738A668A698A708A878A7C8A638AA08A718A858A6D8A62 -8A6E8A6C8A798A7B8A3E8A688C628C8A8C898CCA8CC78CC88CC48CB28CC38CC2 -8CC58DE18DDF8DE88DEF8DF38DFA8DEA8DE48DE68EB28F038F098EFE8F0A0000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8F9F8FB2904B904A905390429054903C905590509047904F904E904D9051903E -904191129117916C916A916991C9923792579238923D9240923E925B924B9264 -925192349249924D92459239923F925A959896989694969596CD96CB96C996CA -96F796FB96F996F6975697749776981098119813980A9812980C98FC98F40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000098FD98FE99B399B199B49AE19CE99E829F0E9F139F2050E750EE50E550D6 -50ED50DA50D550CF50D150F150CE50E9516251F352835282533153AD55FE5600 -561B561755FD561456065609560D560E55F75616561F5608561055F657185716 -5875587E58835893588A58795885587D58FD592559225924596A59695AE15AE6 -5AE95AD75AD65AD85AE35B755BDE5BE75BE15BE55BE65BE85BE25BE45BDF5C0D -5C625D845D875E5B5E635E555E575E545ED35ED65F0A5F465F705FB961470000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -613F614B617761626163615F615A61586175622A64876458645464A46478645F -647A645164676434646D647B657265A165D765D666A266A8669D699C69A86995 -69C169AE69D369CB699B69B769BB69AB69B469D069CD69AD69CC69A669C369A3 -6B496B4C6C336F336F146EFE6F136EF46F296F3E6F206F2C6F0F6F026F220000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006EFF6EEF6F066F316F386F326F236F156F2B6F2F6F886F2A6EEC6F016EF2 -6ECC6EF771947199717D718A71847192723E729272967344735074647463746A -7470746D750475917627760D760B7609761376E176E37784777D777F776178C1 -789F78A778B378A978A3798E798F798D7A2E7A317AAA7AA97AED7AEF7BA17B95 -7B8B7B757B977B9D7B947B8F7BB87B877B847CB97CBD7CBE7DBB7DB07D9C7DBD -7DBE7DA07DCA7DB47DB27DB17DBA7DA27DBF7DB57DB87DAD7DD27DC77DAC0000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7F707FE07FE17FDF805E805A808781508180818F8188818A817F818281E781FA -82078214821E824B84C984BF84C684C48499849E84B2849C84CB84B884C084D3 -849084BC84D184CA873F871C873B872287258734871887558737872988F38902 -88F488F988F888FD88E8891A88EF8AA68A8C8A9E8AA38A8D8AA18A938AA40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AAA8AA58AA88A988A918A9A8AA78C6A8C8D8C8C8CD38CD18CD28D6B8D99 -8D958DFC8F148F128F158F138FA390609058905C90639059905E9062905D905B -91199118911E917591789177917492789280928592989296927B9293929C92A8 -927C929195A195A895A995A395A595A49699969C969B96CC96D29700977C9785 -97F69817981898AF98B199039905990C990999C19AAF9AB09AE69B419B429CF4 -9CF69CF39EBC9F3B9F4A5104510050FB50F550F9510251085109510551DC0000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -528752885289528D528A52F053B2562E563B56395632563F563456295653564E -565756745636562F56305880589F589E58B3589C58AE58A958A6596D5B095AFB -5B0B5AF55B0C5B085BEE5BEC5BE95BEB5C645C655D9D5D945E625E5F5E615EE2 -5EDA5EDF5EDD5EE35EE05F485F715FB75FB561766167616E615D615561820000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000617C6170616B617E61A7619061AB618E61AC619A61A4619461AE622E6469 -646F6479649E64B26488649064B064A56493649564A9649264AE64AD64AB649A -64AC649964A264B365756577657866AE66AB66B466B16A236A1F69E86A016A1E -6A1969FD6A216A136A0A69F36A026A0569ED6A116B506B4E6BA46BC56BC66F3F -6F7C6F846F516F666F546F866F6D6F5B6F786F6E6F8E6F7A6F706F646F976F58 -6ED56F6F6F606F5F719F71AC71B171A87256729B734E73577469748B74830000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -747E7480757F76207629761F7624762676217622769A76BA76E4778E7787778C -7791778B78CB78C578BA78CA78BE78D578BC78D07A3F7A3C7A407A3D7A377A3B -7AAF7AAE7BAD7BB17BC47BB47BC67BC77BC17BA07BCC7CCA7DE07DF47DEF7DFB -7DD87DEC7DDD7DE87DE37DDA7DDE7DE97D9E7DD97DF27DF97F757F777FAF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007FE98026819B819C819D81A0819A81988517853D851A84EE852C852D8513 -851185238521851484EC852584FF850687828774877687608766877887688759 -8757874C8753885B885D89108907891289138915890A8ABC8AD28AC78AC48A95 -8ACB8AF88AB28AC98AC28ABF8AB08AD68ACD8AB68AB98ADB8C4C8C4E8C6C8CE0 -8CDE8CE68CE48CEC8CED8CE28CE38CDC8CEA8CE18D6D8D9F8DA38E2B8E108E1D -8E228E0F8E298E1F8E218E1E8EBA8F1D8F1B8F1F8F298F268F2A8F1C8F1E0000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8F259069906E9068906D90779130912D9127913191879189918B918392C592BB -92B792EA92AC92E492C192B392BC92D292C792F092B295AD95B1970497069707 -97099760978D978B978F9821982B981C98B3990A99139912991899DD99D099DF -99DB99D199D599D299D99AB79AEE9AEF9B279B459B449B779B6F9D069D090000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D039EA99EBE9ECE58A89F5251125118511451105115518051AA51DD5291 -529352F35659566B5679566956645678566A566856655671566F566C56625676 -58C158BE58C758C5596E5B1D5B345B785BF05C0E5F4A61B2619161A9618A61CD -61B661BE61CA61C8623064C564C164CB64BB64BC64DA64C464C764C264CD64BF -64D264D464BE657466C666C966B966C466C766B86A3D6A386A3A6A596A6B6A58 -6A396A446A626A616A4B6A476A356A5F6A486B596B776C056FC26FB16FA10000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6FC36FA46FC16FA76FB36FC06FB96FB66FA66FA06FB471BE71C971D071D271C8 -71D571B971CE71D971DC71C371C47368749C74A37498749F749E74E2750C750D -76347638763A76E776E577A0779E779F77A578E878DA78EC78E779A67A4D7A4E -7A467A4C7A4B7ABA7BD97C117BC97BE47BDB7BE17BE97BE67CD57CD67E0A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E117E087E1B7E237E1E7E1D7E097E107F797FB27FF07FF17FEE802881B3 -81A981A881FB820882588259854A855985488568856985438549856D856A855E -8783879F879E87A2878D8861892A89328925892B892189AA89A68AE68AFA8AEB -8AF18B008ADC8AE78AEE8AFE8B018B028AF78AED8AF38AF68AFC8C6B8C6D8C93 -8CF48E448E318E348E428E398E358F3B8F2F8F388F338FA88FA6907590749078 -9072907C907A913491929320933692F89333932F932292FC932B9304931A0000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9310932693219315932E931995BB96A796A896AA96D5970E97119716970D9713 -970F975B975C9766979898309838983B9837982D9839982499109928991E991B -9921991A99ED99E299F19AB89ABC9AFB9AED9B289B919D159D239D269D289D12 -9D1B9ED89ED49F8D9F9C512A511F5121513252F5568E56805690568556870000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000568F58D558D358D158CE5B305B2A5B245B7A5C375C685DBC5DBA5DBD5DB8 -5E6B5F4C5FBD61C961C261C761E661CB6232623464CE64CA64D864E064F064E6 -64EC64F164E264ED6582658366D966D66A806A946A846AA26A9C6ADB6AA36A7E -6A976A906AA06B5C6BAE6BDA6C086FD86FF16FDF6FE06FDB6FE46FEB6FEF6F80 -6FEC6FE16FE96FD56FEE6FF071E771DF71EE71E671E571ED71EC71F471E07235 -72467370737274A974B074A674A876467642764C76EA77B377AA77B077AC0000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77A777AD77EF78F778FA78F478EF790179A779AA7A577ABF7C077C0D7BFE7BF7 -7C0C7BE07CE07CDC7CDE7CE27CDF7CD97CDD7E2E7E3E7E467E377E327E437E2B -7E3D7E317E457E417E347E397E487E357E3F7E2F7F447FF37FFC807180728070 -806F807381C681C381BA81C281C081BF81BD81C981BE81E88209827185AA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008584857E859C8591859485AF859B858785A8858A866787C087D187B387D2 -87C687AB87BB87BA87C887CB893B893689448938893D89AC8B0E8B178B198B1B -8B0A8B208B1D8B048B108C418C3F8C738CFA8CFD8CFC8CF88CFB8DA88E498E4B -8E488E4A8F448F3E8F428F458F3F907F907D9084908190829080913991A3919E -919C934D938293289375934A9365934B9318937E936C935B9370935A935495CA -95CB95CC95C895C696B196B896D6971C971E97A097D3984698B699359A010000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -99FF9BAE9BAB9BAA9BAD9D3B9D3F9E8B9ECF9EDE9EDC9EDD9EDB9F3E9F4B53E2 -569556AE58D958D85B385F5D61E3623364F464F264FE650664FA64FB64F765B7 -66DC67266AB36AAC6AC36ABB6AB86AC26AAE6AAF6B5F6B786BAF7009700B6FFE -70066FFA7011700F71FB71FC71FE71F87377737574A774BF7515765676580000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000765277BD77BF77BB77BC790E79AE7A617A627A607AC47AC57C2B7C277C2A -7C1E7C237C217CE77E547E557E5E7E5A7E617E527E597F487FF97FFB80778076 -81CD81CF820A85CF85A985CD85D085C985B085BA85B985A687EF87EC87F287E0 -898689B289F48B288B398B2C8B2B8C508D058E598E638E668E648E5F8E558EC0 -8F498F4D90879083908891AB91AC91D09394938A939693A293B393AE93AC93B0 -9398939A939795D495D695D095D596E296DC96D996DB96DE972497A397A60000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -97AD97F9984D984F984C984E985398BA993E993F993D992E99A59A0E9AC19B03 -9B069B4F9B4E9B4D9BCA9BC99BFD9BC89BC09D519D5D9D609EE09F159F2C5133 -56A558DE58DF58E25BF59F905EEC61F261F761F661F56500650F66E066DD6AE5 -6ADD6ADA6AD3701B701F7028701A701D701570187206720D725872A273780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000737A74BD74CA74E375877586765F766177C7791979B17A6B7A697C3E7C3F -7C387C3D7C377C407E6B7E6D7E797E697E6A7F857E737FB67FB97FB881D885E9 -85DD85EA85D585E485E585F787FB8805880D87F987FE8960895F8956895E8B41 -8B5C8B588B498B5A8B4E8B4F8B468B598D088D0A8E7C8E728E878E768E6C8E7A -8E748F548F4E8FAD908A908B91B191AE93E193D193DF93C393C893DC93DD93D6 -93E293CD93D893E493D793E895DC96B496E3972A9727976197DC97FB985E0000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9858985B98BC994599499A169A199B0D9BE89BE79BD69BDB9D899D619D729D6A -9D6C9E929E979E939EB452F856A856B756B656B456BC58E45B405B435B7D5BF6 -5DC961F861FA65186514651966E667276AEC703E703070327210737B74CF7662 -76657926792A792C792B7AC77AF67C4C7C437C4D7CEF7CF08FAE7E7D7E7C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E827F4C800081DA826685FB85F9861185FA8606860B8607860A88148815 -896489BA89F88B708B6C8B668B6F8B5F8B6B8D0F8D0D8E898E818E858E8291B4 -91CB9418940393FD95E1973098C49952995199A89A2B9A309A379A359C139C0D -9E799EB59EE89F2F9F5F9F639F615137513856C156C056C259145C6C5DCD61FC -61FE651D651C659566E96AFB6B046AFA6BB2704C721B72A774D674D4766977D3 -7C507E8F7E8C7FBC8617862D861A882388228821881F896A896C89BD8B740000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B778B7D8D138E8A8E8D8E8B8F5F8FAF91BA942E94339435943A94389432942B -95E297389739973297FF9867986599579A459A439A409A3E9ACF9B549B519C2D -9C259DAF9DB49DC29DB89E9D9EEF9F199F5C9F669F67513C513B56C856CA56C9 -5B7F5DD45DD25F4E61FF65246B0A6B6170517058738074E4758A766E766C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079B37C607C5F807E807D81DF8972896F89FC8B808D168D178E918E938F61 -9148944494519452973D973E97C397C1986B99559A559A4D9AD29B1A9C499C31 -9C3E9C3B9DD39DD79F349F6C9F6A9F9456CC5DD662006523652B652A66EC6B10 -74DA7ACA7C647C637C657E937E967E9481E28638863F88318B8A9090908F9463 -946094649768986F995C9A5A9A5B9A579AD39AD49AD19C549C579C569DE59E9F -9EF456D158E9652C705E7671767277D77F507F888836883988628B938B920000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B9682778D1B91C0946A97429748974497C698709A5F9B229B589C5F9DF99DFA -9E7C9E7D9F079F779F725EF36B1670637C6C7C6E883B89C08EA191C194729470 -9871995E9AD69B239ECC706477DA8B9A947797C99A629A657E9C8B9C8EAA91C5 -947D947E947C9C779C789EF78C54947F9E1A72289A6A9B319E1B9E1E7C720000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030FE309D309E3005304130423043304430453046304730483049304A304B -304C304D304E304F3050305130523053305430553056305730583059305A305B -305C305D305E305F3060306130623063306430653066306730683069306A306B -306C306D306E306F3070307130723073307430753076307730783079307A307B -307C307D307E307F3080308130823083308430853086308730883089308A308B -308C308D308E308F309030913092309330A130A230A330A430A530A630A70000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30A830A930AA30AB30AC30AD30AE30AF30B030B130B230B330B430B530B630B7 -30B830B930BA30BB30BC30BD30BE30BF30C030C130C230C330C430C530C630C7 -30C830C930CA30CB30CC30CD30CE30CF30D030D130D230D330D430D530D630D7 -30D830D930DA30DB30DC30DD30DE30DF30E030E130E230E330E430E530E60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030E730E830E930EA30EB30EC30ED30EE30EF30F030F130F230F330F430F5 -30F60414041504010416041704180419041A041B041C04230424042504260427 -04280429042A042B042C042D042E042F04300431043204330434043504510436 -043704380439043A043B043C043D043E043F0440044104420443044404450446 -044704480449044A044B044C044D044E044F2460246124622463246424652466 -246724682469247424752476247724782479247A247B247C247D000000000000 -C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E424E5C51F5531A53824E074E0C4E474E8D56D7FA0C5C6E5F734E0F51874E0E -4E2E4E934EC24EC94EC8519852FC536C53B957205903592C5C105DFF65E16BB3 -6BCC6C14723F4E314E3C4EE84EDC4EE94EE14EDD4EDA520C531C534C57225723 -5917592F5B815B845C125C3B5C745C735E045E805E825FC9620962506C150000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C366C436C3F6C3B72AE72B0738A79B8808A961E4F0E4F184F2C4EF54F14 -4EF14F004EF74F084F1D4F024F054F224F134F044EF44F1251B1521352095210 -52A65322531F534D538A540756E156DF572E572A5734593C5980597C5985597B -597E5977597F5B565C155C255C7C5C7A5C7B5C7E5DDF5E755E845F025F1A5F74 -5FD55FD45FCF625C625E626462616266626262596260625A626565EF65EE673E -67396738673B673A673F673C67336C186C466C526C5C6C4F6C4A6C546C4B0000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C4C7071725E72B472B5738E752A767F7A757F518278827C8280827D827F864D -897E909990979098909B909496229624962096234F564F3B4F624F494F534F64 -4F3E4F674F524F5F4F414F584F2D4F334F3F4F61518F51B9521C521E522152AD -52AE530953635372538E538F54305437542A545454455419541C542554180000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000543D544F544154285424544756EE56E756E557415745574C5749574B5752 -5906594059A6599859A05997598E59A25990598F59A759A15B8E5B925C285C2A -5C8D5C8F5C885C8B5C895C925C8A5C865C935C955DE05E0A5E0E5E8B5E895E8C -5E885E8D5F055F1D5F785F765FD25FD15FD05FED5FE85FEE5FF35FE15FE45FE3 -5FFA5FEF5FF75FFB60005FF4623A6283628C628E628F629462876271627B627A -6270628162886277627D62726274653765F065F465F365F265F5674567470000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67596755674C6748675D674D675A674B6BD06C196C1A6C786C676C6B6C846C8B -6C8F6C716C6F6C696C9A6C6D6C876C956C9C6C666C736C656C7B6C8E7074707A -726372BF72BD72C372C672C172BA72C573957397739373947392753A75397594 -75957681793D80348095809980908092809C8290828F8285828E829182930000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000828A828382848C788FC98FBF909F90A190A5909E90A790A096309628962F -962D4E334F984F7C4F854F7D4F804F874F764F744F894F844F774F4C4F974F6A -4F9A4F794F814F784F904F9C4F944F9E4F924F824F954F6B4F6E519E51BC51BE -5235523252335246523152BC530A530B533C539253945487547F548154915482 -5488546B547A547E5465546C54745466548D546F546154605498546354675464 -56F756F9576F5772576D576B57715770577657805775577B5773577457620000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5768577D590C594559B559BA59CF59CE59B259CC59C159B659BC59C359D659B1 -59BD59C059C859B459C75B625B655B935B955C445C475CAE5CA45CA05CB55CAF -5CA85CAC5C9F5CA35CAD5CA25CAA5CA75C9D5CA55CB65CB05CA65E175E145E19 -5F285F225F235F245F545F825F7E5F7D5FDE5FE5602D602660196032600B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006034600A60176033601A601E602C6022600D6010602E60136011600C6009 -601C6214623D62AD62B462D162BE62AA62B662CA62AE62B362AF62BB62A962B0 -62B8653D65A865BB660965FC66046612660865FB6603660B660D660565FD6611 -661066F6670A6785676C678E67926776677B6798678667846774678D678C677A -679F679167996783677D67816778677967946B256B806B7E6BDE6C1D6C936CEC -6CEB6CEE6CD96CB66CD46CAD6CE76CB76CD06CC26CBA6CC36CC66CED6CF20000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6CD26CDD6CB46C8A6C9D6C806CDE6CC06D306CCD6CC76CB06CF96CCF6CE96CD1 -709470987085709370867084709170967082709A7083726A72D672CB72D872C9 -72DC72D272D472DA72CC72D173A473A173AD73A673A273A073AC739D74DD74E8 -753F7540753E758C759876AF76F376F176F076F577F877FC77F977FB77FA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077F77942793F79C57A787A7B7AFB7C757CFD8035808F80AE80A380B880B5 -80AD822082A082C082AB829A8298829B82B582A782AE82BC829E82BA82B482A8 -82A182A982C282A482C382B682A28670866F866D866E8C568FD28FCB8FD38FCD -8FD68FD58FD790B290B490AF90B390B09639963D963C963A96434FCD4FC54FD3 -4FB24FC94FCB4FC14FD44FDC4FD94FBB4FB34FDB4FC74FD64FBA4FC04FB94FEC -5244524952C052C2533D537C539753965399539854BA54A154AD54A554CF0000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54C3830D54B754AE54D654B654C554C654A0547054BC54A254BE547254DE54B0 -57B5579E579F57A4578C5797579D579B57945798578F579957A5579A579558F4 -590D595359E159DE59EE5A0059F159DD59FA59FD59FC59F659E459F259F759DB -59E959F359F559E059FE59F459ED5BA85C4C5CD05CD85CCC5CD75CCB5CDB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005CDE5CDA5CC95CC75CCA5CD65CD35CD45CCF5CC85CC65CCE5CDF5CF85DF9 -5E215E225E235E205E245EB05EA45EA25E9B5EA35EA55F075F2E5F565F866037 -603960546072605E6045605360476049605B604C60406042605F602460446058 -6066606E6242624362CF630D630B62F5630E630362EB62F9630F630C62F862F6 -63006313631462FA631562FB62F06541654365AA65BF6636662166326635661C -662666226633662B663A661D66346639662E670F671067C167F267C867BA0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67DC67BB67F867D867C067B767C567EB67E467DF67B567CD67B367F767F667EE -67E367C267B967CE67E767F067B267FC67C667ED67CC67AE67E667DB67FA67C9 -67CA67C367EA67CB6B286B826B846BB66BD66BD86BE06C206C216D286D346D2D -6D1F6D3C6D3F6D126D0A6CDA6D336D046D196D3A6D1A6D116D006D1D6D420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D016D186D376D036D0F6D406D076D206D2C6D086D226D096D1070B7709F -70BE70B170B070A170B470B570A972417249724A726C72707273726E72CA72E4 -72E872EB72DF72EA72E672E3738573CC73C273C873C573B973B673B573B473EB -73BF73C773BE73C373C673B873CB74EC74EE752E7547754875A775AA767976C4 -7708770377047705770A76F776FB76FA77E777E878067811781278057810780F -780E780978037813794A794C794B7945794479D579CD79CF79D679CE7A800000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A7E7AD17B007B017C7A7C787C797C7F7C807C817D037D087D017F587F917F8D -7FBE8007800E800F8014803780D880C780E080D180C880C280D080C580E380D9 -80DC80CA80D580C980CF80D780E680CD81FF8221829482D982FE82F9830782E8 -830082D5833A82EB82D682F482EC82E182F282F5830C82FB82F682F082EA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000082E482E082FA82F382ED86778674867C86738841884E8867886A886989D3 -8A048A078D728FE38FE18FEE8FE090F190BD90BF90D590C590BE90C790CB90C8 -91D491D39654964F96519653964A964E501E50055007501350225030501B4FF5 -4FF450335037502C4FF64FF75017501C502050275035502F5031500E515A5194 -519351CA51C451C551C851CE5261525A5252525E525F5255526252CD530E539E -552654E25517551254E754F354E4551A54FF5504550854EB5511550554F10000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -550A54FB54F754F854E0550E5503550B5701570257CC583257D557D257BA57C6 -57BD57BC57B857B657BF57C757D057B957C1590E594A5A195A165A2D5A2E5A15 -5A0F5A175A0A5A1E5A335B6C5BA75BAD5BAC5C035C565C545CEC5CFF5CEE5CF1 -5CF75D005CF95E295E285EA85EAE5EAA5EAC5F335F305F67605D605A60670000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000604160A26088608060926081609D60836095609B60976087609C608E6219 -624662F263106356632C634463456336634363E46339634B634A633C63296341 -6334635863546359632D63476333635A63516338635763406348654A654665C6 -65C365C465C2664A665F6647665167126713681F681A684968326833683B684B -684F68166831681C6835682B682D682F684E68446834681D6812681468266828 -682E684D683A682568206B2C6B2F6B2D6B316B346B6D80826B886BE66BE40000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6BE86BE36BE26BE76C256D7A6D636D646D766D0D6D616D926D586D626D6D6D6F -6D916D8D6DEF6D7F6D866D5E6D676D606D976D706D7C6D5F6D826D986D2F6D68 -6D8B6D7E6D806D846D166D836D7B6D7D6D756D9070DC70D370D170DD70CB7F39 -70E270D770D270DE70E070D470CD70C570C670C770DA70CE70E1724272780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072777276730072FA72F472FE72F672F372FB730173D373D973E573D673BC -73E773E373E973DC73D273DB73D473DD73DA73D773D873E874DE74DF74F474F5 -7521755B755F75B075C175BB75C475C075BF75B675BA768A76C9771D771B7710 -771377127723771177157719771A772277277823782C78227835782F7828782E -782B782178297833782A78317954795B794F795C79537952795179EB79EC79E0 -79EE79ED79EA79DC79DE79DD7A867A897A857A8B7A8C7A8A7A877AD87B100000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7B047B137B057B0F7B087B0A7B0E7B097B127C847C917C8A7C8C7C887C8D7C85 -7D1E7D1D7D117D0E7D187D167D137D1F7D127D0F7D0C7F5C7F617F5E7F607F5D -7F5B7F967F927FC37FC27FC08016803E803980FA80F280F980F5810180FB8100 -8201822F82258333832D83448319835183258356833F83418326831C83220000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008342834E831B832A8308833C834D8316832483208337832F832983478345 -834C8353831E832C834B832783488653865286A286A88696868D8691869E8687 -86978686868B869A868586A5869986A186A786958698868E869D869086948843 -8844886D88758876887288808871887F886F8883887E8874887C8A128C478C57 -8C7B8CA48CA38D768D788DB58DB78DB68ED18ED38FFE8FF590028FFF8FFB9004 -8FFC8FF690D690E090D990DA90E390DF90E590D890DB90D790DC90E491500000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -914E914F91D591E291DA965C965F96BC98E39ADF9B2F4E7F5070506A5061505E -50605053504B505D50725048504D5041505B504A506250155045505F5069506B -5063506450465040506E50735057505151D0526B526D526C526E52D652D3532D -539C55755576553C554D55505534552A55515562553655355530555255450000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000550C55325565554E55395548552D553B5540554B570A570757FB581457E2 -57F657DC57F4580057ED57FD580857F8580B57F357CF580757EE57E357F257E5 -57EC57E1580E57FC581057E75801580C57F157E957F0580D5804595C5A605A58 -5A555A675A5E5A385A355A6D5A505A5F5A655A6C5A535A645A575A435A5D5A52 -5A445A5B5A485A8E5A3E5A4D5A395A4C5A705A695A475A515A565A425A5C5B72 -5B6E5BC15BC05C595D1E5D0B5D1D5D1A5D205D0C5D285D0D5D265D255D0F0000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D305D125D235D1F5D2E5E3E5E345EB15EB45EB95EB25EB35F365F385F9B5F96 -5F9F608A6090608660BE60B060BA60D360D460CF60E460D960DD60C860B160DB -60B760CA60BF60C360CD60C063326365638A6382637D63BD639E63AD639D6397 -63AB638E636F63876390636E63AF6375639C636D63AE637C63A4633B639F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006378638563816391638D6370655365CD66656661665B6659665C66626718 -687968876890689C686D686E68AE68AB6956686F68A368AC68A96875687468B2 -688F68776892687C686B687268AA68806871687E689B6896688B68A0688968A4 -6878687B6891688C688A687D6B366B336B376B386B916B8F6B8D6B8E6B8C6C2A -6DC06DAB6DB46DB36E746DAC6DE96DE26DB76DF66DD46E006DC86DE06DDF6DD6 -6DBE6DE56DDC6DDD6DDB6DF46DCA6DBD6DED6DF06DBA6DD56DC26DCF6DC90000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6DD06DF26DD36DFD6DD76DCD6DE36DBB70FA710D70F7711770F4710C70F07104 -70F3711070FC70FF71067113710070F870F6710B7102710E727E727B727C727F -731D7317730773117318730A730872FF730F731E738873F673F873F574047401 -73FD7407740073FA73FC73FF740C740B73F474087564756375CE75D275CF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075CB75CC75D175D0768F768976D37739772F772D7731773277347733773D -7725773B7735784878527849784D784A784C782678457850796479677969796A -7963796B796179BB79FA79F879F679F77A8F7A947A907B357B477B347B257B30 -7B227B247B337B187B2A7B1D7B317B2B7B2D7B2F7B327B387B1A7B237C947C98 -7C967CA37D357D3D7D387D367D3A7D457D2C7D297D417D477D3E7D3F7D4A7D3B -7D287F637F957F9C7F9D7F9B7FCA7FCB7FCD7FD07FD17FC77FCF7FC9801F0000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -801E801B804780438048811881258119811B812D811F812C811E812181158127 -811D8122821182388233823A823482328274839083A383A8838D837A837383A4 -8374838F8381839583998375839483A9837D8383838C839D839B83AA838B837E -83A583AF8388839783B0837F83A6838783AE8376839A8659865686BF86B70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000086C286C186C586BA86B086C886B986B386B886CC86B486BB86BC86C386BD -86BE88528889889588A888A288AA889A889188A1889F889888A78899889B8897 -88A488AC888C8893888E898289D689D989D58A308A278A2C8A1E8C398C3B8C5C -8C5D8C7D8CA58D7D8D7B8D798DBC8DC28DB98DBF8DC18ED88EDE8EDD8EDC8ED7 -8EE08EE19024900B9011901C900C902190EF90EA90F090F490F290F390D490EB -90EC90E991569158915A9153915591EC91F491F191F391F891E491F991EA0000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -91EB91F791E891EE957A95869588967C966D966B9671966F96BF976A980498E5 -9997509B50955094509E508B50A35083508C508E509D5068509C509250825087 -515F51D45312531153A453A7559155A855A555AD5577564555A255935588558F -55B5558155A3559255A4557D558C55A6557F559555A1558E570C582958370000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005819581E58275823582857F558485825581C581B5833583F5836582E5839 -5838582D582C583B59615AAF5A945A9F5A7A5AA25A9E5A785AA65A7C5AA55AAC -5A955AAE5A375A845A8A5A975A835A8B5AA95A7B5A7D5A8C5A9C5A8F5A935A9D -5BEA5BCD5BCB5BD45BD15BCA5BCE5C0C5C305D375D435D6B5D415D4B5D3F5D35 -5D515D4E5D555D335D3A5D525D3D5D315D595D425D395D495D385D3C5D325D36 -5D405D455E445E415F585FA65FA55FAB60C960B960CC60E260CE60C461140000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60F2610A6116610560F5611360F860FC60FE60C161036118611D611060FF6104 -610B624A639463B163B063CE63E563E863EF63C3649D63F363CA63E063F663D5 -63F263F5646163DF63BE63DD63DC63C463D863D363C263C763CC63CB63C863F0 -63D763D965326567656A6564655C65686565658C659D659E65AE65D065D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000667C666C667B668066716679666A66726701690C68D3690468DC692A68EC -68EA68F1690F68D668F768EB68E468F66913691068F368E1690768CC69086970 -68B4691168EF68C6691468F868D068FD68FC68E8690B690A691768CE68C868DD -68DE68E668F468D1690668D468E96915692568C76B396B3B6B3F6B3C6B946B97 -6B996B956BBD6BF06BF26BF36C306DFC6E466E476E1F6E496E886E3C6E3D6E45 -6E626E2B6E3F6E416E5D6E736E1C6E336E4B6E406E516E3B6E036E2E6E5E0000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E686E5C6E616E316E286E606E716E6B6E396E226E306E536E656E276E786E64 -6E776E556E796E526E666E356E366E5A7120711E712F70FB712E713171237125 -71227132711F7128713A711B724B725A7288728972867285728B7312730B7330 -73227331733373277332732D732673237335730C742E742C7430742B74160000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000741A7421742D743174247423741D74297420743274FB752F756F756C75E7 -75DA75E175E675DD75DF75E475D77695769276DA774677477744774D7745774A -774E774B774C77DE77EC786078647865785C786D7871786A786E787078697868 -785E786279747973797279707A027A0A7A037A0C7A047A997AE67AE47B4A7B3B -7B447B487B4C7B4E7B407B587B457CA27C9E7CA87CA17D587D6F7D637D537D56 -7D677D6A7D4F7D6D7D5C7D6B7D527D547D697D517D5F7D4E7F3E7F3F7F650000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7F667FA27FA07FA17FD78051804F805080FE80D48143814A8152814F8147813D -814D813A81E681EE81F781F881F98204823C823D823F8275833B83CF83F98423 -83C083E8841283E783E483FC83F6841083C683C883EB83E383BF840183DD83E5 -83D883FF83E183CB83CE83D683F583C98409840F83DE8411840683C283F30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000083D583FA83C783D183EA841383C383EC83EE83C483FB83D783E2841B83DB -83FE86D886E286E686D386E386DA86EA86DD86EB86DC86EC86E986D786E886D1 -88488856885588BA88D788B988B888C088BE88B688BC88B788BD88B2890188C9 -89958998899789DD89DA89DB8A4E8A4D8A398A598A408A578A588A448A458A52 -8A488A518A4A8A4C8A4F8C5F8C818C808CBA8CBE8CB08CB98CB58D848D808D89 -8DD88DD38DCD8DC78DD68DDC8DCF8DD58DD98DC88DD78DC58EEF8EF78EFA0000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8EF98EE68EEE8EE58EF58EE78EE88EF68EEB8EF18EEC8EF48EE9902D9034902F -9106912C910490FF90FC910890F990FB9101910091079105910391619164915F -916291609201920A92259203921A9226920F920C9200921291FF91FD92069204 -92279202921C92249219921792059216957B958D958C95909687967E96880000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000096899683968096C296C896C396F196F0976C9770976E980798A998EB9CE6 -9EF94E834E844EB650BD50BF50C650AE50C450CA50B450C850C250B050C150BA -50B150CB50C950B650B851D7527A5278527B527C55C355DB55CC55D055CB55CA -55DD55C055D455C455E955BF55D2558D55CF55D555E255D655C855F255CD55D9 -55C25714585358685864584F584D5849586F5855584E585D58595865585B583D -5863587158FC5AC75AC45ACB5ABA5AB85AB15AB55AB05ABF5AC85ABB5AC60000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5AB75AC05ACA5AB45AB65ACD5AB95A905BD65BD85BD95C1F5C335D715D635D4A -5D655D725D6C5D5E5D685D675D625DF05E4F5E4E5E4A5E4D5E4B5EC55ECC5EC6 -5ECB5EC75F405FAF5FAD60F76149614A612B614561366132612E6146612F614F -612961406220916862236225622463C563F163EB641064126409642064240000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064336443641F641564186439643764226423640C64266430642864416435 -642F640A641A644064256427640B63E7641B642E6421640E656F659265D36686 -668C66956690668B668A66996694667867206966695F6938694E69626971693F -6945696A6939694269576959697A694869496935696C6933693D696568F06978 -693469696940696F69446976695869416974694C693B694B6937695C694F6951 -69326952692F697B693C6B466B456B436B426B486B416B9BFA0D6BFB6BFC0000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6BF96BF76BF86E9B6ED66EC86E8F6EC06E9F6E936E946EA06EB16EB96EC66ED2 -6EBD6EC16E9E6EC96EB76EB06ECD6EA66ECF6EB26EBE6EC36EDC6ED86E996E92 -6E8E6E8D6EA46EA16EBF6EB36ED06ECA6E976EAE6EA371477154715271637160 -7141715D716271727178716A7161714271587143714B7170715F715071530000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007144714D715A724F728D728C72917290728E733C7342733B733A7340734A -73497444744A744B7452745174577440744F7450744E74427446744D745474E1 -74FF74FE74FD751D75797577698375EF760F760375F775FE75FC75F975F87610 -75FB75F675ED75F575FD769976B576DD7755775F776077527756775A77697767 -77547759776D77E07887789A7894788F788478957885788678A1788378797899 -78807896787B797C7982797D79797A117A187A197A127A177A157A227A130000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A1B7A107AA37AA27A9E7AEB7B667B647B6D7B747B697B727B657B737B717B70 -7B617B787B767B637CB27CB47CAF7D887D867D807D8D7D7F7D857D7A7D8E7D7B -7D837D7C7D8C7D947D847D7D7D927F6D7F6B7F677F687F6C7FA67FA57FA77FDB -7FDC8021816481608177815C8169815B816281726721815E81768167816F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081448161821D8249824482408242824584F1843F845684768479848F848D -846584518440848684678430844D847D845A845984748473845D8507845E8437 -843A8434847A8443847884328445842983D9844B842F8442842D845F84708439 -844E844C8452846F84C5848E843B8447843684338468847E8444842B84608454 -846E8450870B870486F7870C86FA86D686F5874D86F8870E8709870186F6870D -870588D688CB88CD88CE88DE88DB88DA88CC88D08985899B89DF89E589E40000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89E189E089E289DC89E68A768A868A7F8A618A3F8A778A828A848A758A838A81 -8A748A7A8C3C8C4B8C4A8C658C648C668C868C848C858CCC8D688D698D918D8C -8D8E8D8F8D8D8D938D948D908D928DF08DE08DEC8DF18DEE8DD08DE98DE38DE2 -8DE78DF28DEB8DF48F068EFF8F018F008F058F078F088F028F0B9052903F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090449049903D9110910D910F911191169114910B910E916E916F92489252 -9230923A926692339265925E9283922E924A9246926D926C924F92609267926F -92369261927092319254926392509272924E9253924C92569232959F959C959E -959B969296939691969796CE96FA96FD96F896F59773977797789772980F980D -980E98AC98F698F999AF99B299B099B59AAD9AAB9B5B9CEA9CED9CE79E809EFD -50E650D450D750E850F350DB50EA50DD50E450D350EC50F050EF50E350E00000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51D85280528152E952EB533053AC56275615560C561255FC560F561C56015613 -560255FA561D560455FF55F95889587C5890589858865881587F5874588B587A -58875891588E587658825888587B5894588F58FE596B5ADC5AEE5AE55AD55AEA -5ADA5AED5AEB5AF35AE25AE05ADB5AEC5ADE5ADD5AD95AE85ADF5B775BE00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005BE35C635D825D805D7D5D865D7A5D815D775D8A5D895D885D7E5D7C5D8D -5D795D7F5E585E595E535ED85ED15ED75ECE5EDC5ED55ED95ED25ED45F445F43 -5F6F5FB6612C61286141615E61716173615261536172616C618061746154617A -615B6165613B616A6161615662296227622B642B644D645B645D647464766472 -6473647D6475646664A6644E6482645E645C644B645364606450647F643F646C -646B645964656477657365A066A166A0669F67056704672269B169B669C90000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69A069CE699669B069AC69BC69916999698E69A7698D69A969BE69AF69BF69C4 -69BD69A469D469B969CA699A69CF69B3699369AA69A1699E69D96997699069C2 -69B569A569C66B4A6B4D6B4B6B9E6B9F6BA06BC36BC46BFE6ECE6EF56EF16F03 -6F256EF86F376EFB6F2E6F096F4E6F196F1A6F276F186F3B6F126EED6F0A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F366F736EF96EEE6F2D6F406F306F3C6F356EEB6F076F0E6F436F056EFD -6EF66F396F1C6EFC6F3A6F1F6F0D6F1E6F086F21718771907189718071857182 -718F717B718671817197724472537297729572937343734D7351734C74627473 -7471747574727467746E750075027503757D759076167608760C76157611760A -761476B87781777C77857782776E7780776F777E778378B278AA78B478AD78A8 -787E78AB789E78A578A078AC78A278A47998798A798B79967995799479930000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -79977988799279907A2B7A4A7A307A2F7A287A267AA87AAB7AAC7AEE7B887B9C -7B8A7B917B907B967B8D7B8C7B9B7B8E7B857B9852847B997BA47B827CBB7CBF -7CBC7CBA7DA77DB77DC27DA37DAA7DC17DC07DC57D9D7DCE7DC47DC67DCB7DCC -7DAF7DB97D967DBC7D9F7DA67DAE7DA97DA17DC97F737FE27FE37FE57FDE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008024805D805C8189818681838187818D818C818B8215849784A484A1849F -84BA84CE84C284AC84AE84AB84B984B484C184CD84AA849A84B184D0849D84A7 -84BB84A2849484C784CC849B84A984AF84A884D6849884B684CF84A084D784D4 -84D284DB84B084918661873387238728876B8740872E871E87218719871B8743 -872C8741873E874687208732872A872D873C8712873A87318735874287268727 -87388724871A8730871188F788E788F188F288FA88FE88EE88FC88F688FB0000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -88F088EC88EB899D89A1899F899E89E989EB89E88AAB8A998A8B8A928A8F8A96 -8C3D8C688C698CD58CCF8CD78D968E098E028DFF8E0D8DFD8E0A8E038E078E06 -8E058DFE8E008E048F108F118F0E8F0D9123911C91209122911F911D911A9124 -9121911B917A91729179917392A592A49276929B927A92A0929492AA928D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000092A6929A92AB92799297927F92A392EE928E9282929592A2927D928892A1 -928A9286928C929992A7927E928792A9929D928B922D969E96A196FF9758977D -977A977E978397809782977B97849781977F97CE97CD981698AD98AE99029900 -9907999D999C99C399B999BB99BA99C299BD99C79AB19AE39AE79B3E9B3F9B60 -9B619B5F9CF19CF29CF59EA750FF5103513050F85106510750F650FE510B510C -50FD510A528B528C52F152EF56485642564C56355641564A5649564656580000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -565A56405633563D562C563E5638562A563A571A58AB589D58B158A058A358AF -58AC58A558A158FF5AFF5AF45AFD5AF75AF65B035AF85B025AF95B015B075B05 -5B0F5C675D995D975D9F5D925DA25D935D955DA05D9C5DA15D9A5D9E5E695E5D -5E605E5C7DF35EDB5EDE5EE15F495FB2618B6183617961B161B061A261890000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000619B619361AF61AD619F619261AA61A1618D616661B3622D646E64706496 -64A064856497649C648F648B648A648C64A3649F646864B164986576657A6579 -657B65B265B366B566B066A966B266B766AA66AF6A006A066A1769E569F86A15 -69F169E46A2069FF69EC69E26A1B6A1D69FE6A2769F269EE6A1469F769E76A40 -6A0869E669FB6A0D69FC69EB6A096A046A186A256A0F69F66A266A0769F46A16 -6B516BA56BA36BA26BA66C016C006BFF6C026F416F266F7E6F876FC66F920000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F8D6F896F8C6F626F4F6F856F5A6F966F766F6C6F826F556F726F526F506F57 -6F946F936F5D6F006F616F6B6F7D6F676F906F536F8B6F696F7F6F956F636F77 -6F6A6F7B71B271AF719B71B071A0719A71A971B5719D71A5719E71A471A171AA -719C71A771B37298729A73587352735E735F7360735D735B7361735A73590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000736274877489748A74867481747D74857488747C747975087507757E7625 -761E7619761D761C7623761A7628761B769C769D769E769B778D778F77897788 -78CD78BB78CF78CC78D178CE78D478C878C378C478C9799A79A179A0799C79A2 -799B6B767A397AB27AB47AB37BB77BCB7BBE7BAC7BCE7BAF7BB97BCA7BB57CC5 -7CC87CCC7CCB7DF77DDB7DEA7DE77DD77DE17E037DFA7DE67DF67DF17DF07DEE -7DDF7F767FAC7FB07FAD7FED7FEB7FEA7FEC7FE67FE88064806781A3819F0000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -819E819581A2819981978216824F825382528250824E82518524853B850F8500 -8529850E8509850D851F850A8527851C84FB852B84FA8508850C84F4852A84F2 -851584F784EB84F384FC851284EA84E9851684FE8528851D852E850284FD851E -84F68531852684E784E884F084EF84F9851885208530850B8519852F86620000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000875687638764877787E1877387588754875B87528761875A8751875E876D -876A8750874E875F875D876F876C877A876E875C8765874F877B877587628767 -8769885A8905890C8914890B891789188919890689168911890E890989A289A4 -89A389ED89F089EC8ACF8AC68AB88AD38AD18AD48AD58ABB8AD78ABE8AC08AC5 -8AD88AC38ABA8ABD8AD98C3E8C4D8C8F8CE58CDF8CD98CE88CDA8CDD8CE78DA0 -8D9C8DA18D9B8E208E238E258E248E2E8E158E1B8E168E118E198E268E270000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E148E128E188E138E1C8E178E1A8F2C8F248F188F1A8F208F238F168F179073 -9070906F9067906B912F912B9129912A91329126912E91859186918A91819182 -9184918092D092C392C492C092D992B692CF92F192DF92D892E992D792DD92CC -92EF92C292E892CA92C892CE92E692CD92D592C992E092DE92E792D192D30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000092B592E192C692B4957C95AC95AB95AE95B096A496A296D3970597089702 -975A978A978E978897D097CF981E981D9826982998289820981B982798B29908 -98FA9911991499169917991599DC99CD99CF99D399D499CE99C999D699D899CB -99D799CC9AB39AEC9AEB9AF39AF29AF19B469B439B679B749B719B669B769B75 -9B709B689B649B6C9CFC9CFA9CFD9CFF9CF79D079D009CF99CFB9D089D059D04 -9E839ED39F0F9F10511C51135117511A511151DE533453E156705660566E0000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -567356665663566D5672565E5677571C571B58C858BD58C958BF58BA58C258BC -58C65B175B195B1B5B215B145B135B105B165B285B1A5B205B1E5BEF5DAC5DB1 -5DA95DA75DB55DB05DAE5DAA5DA85DB25DAD5DAF5DB45E675E685E665E6F5EE9 -5EE75EE65EE85EE55F4B5FBC619D61A8619661C561B461C661C161CC61BA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000061BF61B8618C64D764D664D064CF64C964BD648964C364DB64F364D96533 -657F657C65A266C866BE66C066CA66CB66CF66BD66BB66BA66CC67236A346A66 -6A496A676A326A686A3E6A5D6A6D6A766A5B6A516A286A5A6A3B6A3F6A416A6A -6A646A506A4F6A546A6F6A696A606A3C6A5E6A566A556A4D6A4E6A466B556B54 -6B566BA76BAA6BAB6BC86BC76C046C036C066FAD6FCB6FA36FC76FBC6FCE6FC8 -6F5E6FC46FBD6F9E6FCA6FA870046FA56FAE6FBA6FAC6FAA6FCF6FBF6FB80000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6FA26FC96FAB6FCD6FAF6FB26FB071C571C271BF71B871D671C071C171CB71D4 -71CA71C771CF71BD71D871BC71C671DA71DB729D729E736973667367736C7365 -736B736A747F749A74A074947492749574A1750B7580762F762D7631763D7633 -763C76357632763076BB76E6779A779D77A1779C779B77A277A3779577990000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000779778DD78E978E578EA78DE78E378DB78E178E278ED78DF78E079A47A44 -7A487A477AB67AB87AB57AB17AB77BDE7BE37BE77BDD7BD57BE57BDA7BE87BF9 -7BD47BEA7BE27BDC7BEB7BD87BDF7CD27CD47CD77CD07CD17E127E217E177E0C -7E1F7E207E137E0E7E1C7E157E1A7E227E0B7E0F7E167E0D7E147E257E247F43 -7F7B7F7C7F7A7FB17FEF802A8029806C81B181A681AE81B981B581AB81B081AC -81B481B281B781A781F282558256825785568545856B854D8553856185580000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -854085468564854185628544855185478563853E855B8571854E856E85758555 -85678560858C8566855D85548565856C866386658664879B878F879787938792 -87888781879687988779878787A3878587908791879D87848794879C879A8789 -891E89268930892D892E89278931892289298923892F892C891F89F18AE00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AE28AF28AF48AF58ADD8B148AE48ADF8AF08AC88ADE8AE18AE88AFF8AEF -8AFB8C918C928C908CF58CEE8CF18CF08CF38D6C8D6E8DA58DA78E338E3E8E38 -8E408E458E368E3C8E3D8E418E308E3F8EBD8F368F2E8F358F328F398F378F34 -90769079907B908690FA913391359136919391909191918D918F9327931E9308 -931F9306930F937A9338933C931B9323931293019346932D930E930D92CB931D -92FA9325931392F992F793349302932492FF932993399335932A9314930C0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -930B92FE9309930092FB931695BC95CD95BE95B995BA95B695BF95B595BD96A9 -96D4970B9712971097999797979497F097F89835982F98329924991F99279929 -999E99EE99EC99E599E499F099E399EA99E999E79AB99ABF9AB49ABB9AF69AFA -9AF99AF79B339B809B859B879B7C9B7E9B7B9B829B939B929B909B7A9B950000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B7D9B889D259D179D209D1E9D149D299D1D9D189D229D109D199D1F9E88 -9E869E879EAE9EAD9ED59ED69EFA9F129F3D51265125512251245120512952F4 -5693568C568D568656845683567E5682567F568158D658D458CF58D25B2D5B25 -5B325B235B2C5B275B265B2F5B2E5B7B5BF15BF25DB75E6C5E6A5FBE5FBB61C3 -61B561BC61E761E061E561E461E861DE64EF64E964E364EB64E464E865816580 -65B665DA66D26A8D6A966A816AA56A896A9F6A9B6AA16A9E6A876A936A8E0000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A956A836AA86AA46A916A7F6AA66A9A6A856A8C6A926B5B6BAD6C096FCC6FA9 -6FF46FD46FE36FDC6FED6FE76FE66FDE6FF26FDD6FE26FE871E171F171E871F2 -71E471F071E27373736E736F749774B274AB749074AA74AD74B174A574AF7510 -75117512750F7584764376487649764776A476E977B577AB77B277B777B60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077B477B177A877F078F378FD790278FB78FC78F2790578F978FE790479AB -79A87A5C7A5B7A567A587A547A5A7ABE7AC07AC17C057C0F7BF27C007BFF7BFB -7C0E7BF47C0B7BF37C027C097C037C017BF87BFD7C067BF07BF17C107C0A7CE8 -7E2D7E3C7E427E3398487E387E2A7E497E407E477E297E4C7E307E3B7E367E44 -7E3A7F457F7F7F7E7F7D7FF47FF2802C81BB81C481CC81CA81C581C781BC81E9 -825B825A825C85838580858F85A7859585A0858B85A3857B85A4859A859E0000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8577857C858985A1857A85788557858E85968586858D8599859D858185A28582 -858885858579857685988590859F866887BE87AA87AD87C587B087AC87B987B5 -87BC87AE87C987C387C287CC87B787AF87C487CA87B487B687BF87B887BD87DE -87B289358933893C893E894189528937894289AD89AF89AE89F289F38B1E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B188B168B118B058B0B8B228B0F8B128B158B078B0D8B088B068B1C8B13 -8B1A8C4F8C708C728C718C6F8C958C948CF98D6F8E4E8E4D8E538E508E4C8E47 -8F438F409085907E9138919A91A2919B9199919F91A1919D91A093A1938393AF -936493569347937C9358935C93769349935093519360936D938F934C936A9379 -935793559352934F93719377937B9361935E936393679380934E935995C795C0 -95C995C395C595B796AE96B096AC9720971F9718971D9719979A97A1979C0000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -979E979D97D597D497F198419844984A9849984598439925992B992C992A9933 -9932992F992D99319930999899A399A19A0299FA99F499F799F999F899F699FB -99FD99FE99FC9A039ABE9AFE9AFD9B019AFC9B489B9A9BA89B9E9B9B9BA69BA1 -9BA59BA49B869BA29BA09BAF9D339D419D679D369D2E9D2F9D319D389D300000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D459D429D439D3E9D379D409D3D7FF59D2D9E8A9E899E8D9EB09EC89EDA -9EFB9EFF9F249F239F229F549FA05131512D512E5698569C5697569A569D5699 -59705B3C5C695C6A5DC05E6D5E6E61D861DF61ED61EE61F161EA61F061EB61D6 -61E964FF650464FD64F86501650364FC659465DB66DA66DB66D86AC56AB96ABD -6AE16AC66ABA6AB66AB76AC76AB46AAD6B5E6BC96C0B7007700C700D70017005 -7014700E6FFF70006FFB70266FFC6FF7700A720171FF71F9720371FD73760000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74B874C074B574C174BE74B674BB74C275147513765C76647659765076537657 -765A76A676BD76EC77C277BA78FF790C79137914790979107912791179AD79AC -7A5F7C1C7C297C197C207C1F7C2D7C1D7C267C287C227C257C307E5C7E507E56 -7E637E587E627E5F7E517E607E577E537FB57FB37FF77FF8807581D181D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081D0825F825E85B485C685C085C385C285B385B585BD85C785C485BF85CB -85CE85C885C585B185B685D2862485B885B785BE866987E787E687E287DB87EB -87EA87E587DF87F387E487D487DC87D387ED87D887E387A487D787D9880187F4 -87E887DD8953894B894F894C89468950895189498B2A8B278B238B338B308B35 -8B478B2F8B3C8B3E8B318B258B378B268B368B2E8B248B3B8B3D8B3A8C428C75 -8C998C988C978CFE8D048D028D008E5C8E628E608E578E568E5E8E658E670000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E5B8E5A8E618E5D8E698E548F468F478F488F4B9128913A913B913E91A891A5 -91A791AF91AA93B5938C939293B7939B939D938993A7938E93AA939E93A69395 -93889399939F938D93B1939193B293A493A893B493A393A595D295D395D196B3 -96D796DA5DC296DF96D896DD97239722972597AC97AE97A897AB97A497AA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000097A297A597D797D997D697D897FA98509851985298B89941993C993A9A0F -9A0B9A099A0D9A049A119A0A9A059A079A069AC09ADC9B089B049B059B299B35 -9B4A9B4C9B4B9BC79BC69BC39BBF9BC19BB59BB89BD39BB69BC49BB99BBD9D5C -9D539D4F9D4A9D5B9D4B9D599D569D4C9D579D529D549D5F9D589D5A9E8E9E8C -9EDF9F019F009F169F259F2B9F2A9F299F289F4C9F5551345135529652F753B4 -56AB56AD56A656A756AA56AC58DA58DD58DB59125B3D5B3E5B3F5DC35E700000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5FBF61FB65076510650D6509650C650E658465DE65DD66DE6AE76AE06ACC6AD1 -6AD96ACB6ADF6ADC6AD06AEB6ACF6ACD6ADE6B606BB06C0C7019702770207016 -702B702170227023702970177024701C702A720C720A72077202720572A572A6 -72A472A372A174CB74C574B774C37516766077C977CA77C477F1791D791B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007921791C7917791E79B07A677A687C337C3C7C397C2C7C3B7CEC7CEA7E76 -7E757E787E707E777E6F7E7A7E727E747E687F4B7F4A7F837F867FB77FFD7FFE -807881D781D582648261826385EB85F185ED85D985E185E885DA85D785EC85F2 -85F885D885DF85E385DC85D185F085E685EF85DE85E2880087FA880387F687F7 -8809880C880B880687FC880887FF880A88028962895A895B89578961895C8958 -895D8959898889B789B689F68B508B488B4A8B408B538B568B548B4B8B550000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B518B428B528B578C438C778C768C9A8D068D078D098DAC8DAA8DAD8DAB8E6D -8E788E738E6A8E6F8E7B8EC28F528F518F4F8F508F538FB49140913F91B091AD -93DE93C793CF93C293DA93D093F993EC93CC93D993A993E693CA93D493EE93E3 -93D593C493CE93C093D293E7957D95DA95DB96E19729972B972C972897260000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000097B397B797B697DD97DE97DF985C9859985D985798BF98BD98BB98BE9948 -9947994399A699A79A1A9A159A259A1D9A249A1B9A229A209A279A239A1E9A1C -9A149AC29B0B9B0A9B0E9B0C9B379BEA9BEB9BE09BDE9BE49BE69BE29BF09BD4 -9BD79BEC9BDC9BD99BE59BD59BE19BDA9D779D819D8A9D849D889D719D809D78 -9D869D8B9D8C9D7D9D6B9D749D759D709D699D859D739D7B9D829D6F9D799D7F -9D879D689E949E919EC09EFC9F2D9F409F419F4D9F569F579F58533756B20000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56B556B358E35B455DC65DC75EEE5EEF5FC05FC161F9651765166515651365DF -66E866E366E46AF36AF06AEA6AE86AF96AF16AEE6AEF703C7035702F70377034 -703170427038703F703A70397040703B703370417213721472A8737D737C74BA -76AB76AA76BE76ED77CC77CE77CF77CD77F27925792379277928792479290000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079B27A6E7A6C7A6D7AF77C497C487C4A7C477C457CEE7E7B7E7E7E817E80 -7FBA7FFF807981DB81D9820B82688269862285FF860185FE861B860085F68604 -86098605860C85FD8819881088118817881388168963896689B989F78B608B6A -8B5D8B688B638B658B678B6D8DAE8E868E888E848F598F568F578F558F588F5A -908D9143914191B791B591B291B3940B941393FB9420940F941493FE94159410 -94289419940D93F5940093F79407940E9416941293FA940993F8940A93FF0000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -93FC940C93F69411940695DE95E095DF972E972F97B997BB97FD97FE98609862 -9863985F98C198C29950994E9959994C994B99539A329A349A319A2C9A2A9A36 -9A299A2E9A389A2D9AC79ACA9AC69B109B129B119C0B9C089BF79C059C129BF8 -9C409C079C0E9C069C179C149C099D9F9D999DA49D9D9D929D989D909D9B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009DA09D949D9C9DAA9D979DA19D9A9DA29DA89D9E9DA39DBF9DA99D969DA6 -9DA79E999E9B9E9A9EE59EE49EE79EE69F309F2E9F5B9F609F5E9F5D9F599F91 -513A51395298529756C356BD56BE5B485B475DCB5DCF5EF161FD651B6B026AFC -6B036AF86B0070437044704A7048704970457046721D721A7219737E7517766A -77D0792D7931792F7C547C537CF27E8A7E877E887E8B7E867E8D7F4D7FBB8030 -81DD8618862A8626861F8623861C86198627862E862186208629861E86250000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8829881D881B88208824881C882B884A896D8969896E896B89FA8B798B788B45 -8B7A8B7B8D108D148DAF8E8E8E8C8F5E8F5B8F5D91469144914591B9943F943B -94369429943D943C94309439942A9437942C9440943195E595E495E39735973A -97BF97E1986498C998C698C0995899569A399A3D9A469A449A429A419A3A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009A3F9ACD9B159B179B189B169B3A9B529C2B9C1D9C1C9C2C9C239C289C29 -9C249C219DB79DB69DBC9DC19DC79DCA9DCF9DBE9DC59DC39DBB9DB59DCE9DB9 -9DBA9DAC9DC89DB19DAD9DCC9DB39DCD9DB29E7A9E9C9EEB9EEE9EED9F1B9F18 -9F1A9F319F4E9F659F649F924EB956C656C556CB59715B4B5B4C5DD55DD15EF2 -65216520652665226B0B6B086B096C0D7055705670577052721E721F72A9737F -74D874D574D974D7766D76AD793579B47A707A717C577C5C7C597C5B7C5A0000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7CF47CF17E917F4F7F8781DE826B863486358633862C86328636882C88288826 -882A8825897189BF89BE89FB8B7E8B848B828B868B858B7F8D158E958E948E9A -8E928E908E968E978F608F629147944C9450944A944B944F9447944594489449 -9446973F97E3986A986998CB9954995B9A4E9A539A549A4C9A4F9A489A4A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009A499A529A509AD09B199B2B9B3B9B569B559C469C489C3F9C449C399C33 -9C419C3C9C379C349C329C3D9C369DDB9DD29DDE9DDA9DCB9DD09DDC9DD19DDF -9DE99DD99DD89DD69DF59DD59DDD9EB69EF09F359F339F329F429F6B9F959FA2 -513D529958E858E759725B4D5DD8882F5F4F62016203620465296525659666EB -6B116B126B0F6BCA705B705A7222738273817383767077D47C677C667E95826C -863A86408639863C8631863B863E88308832882E883389768974897389FE0000 -F8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B8C8B8E8B8B8B888C458D198E988F648F6391BC94629455945D9457945E97C4 -97C598009A569A599B1E9B1F9B209C529C589C509C4A9C4D9C4B9C559C599C4C -9C4E9DFB9DF79DEF9DE39DEB9DF89DE49DF69DE19DEE9DE69DF29DF09DE29DEC -9DF49DF39DE89DED9EC29ED09EF29EF39F069F1C9F389F379F369F439F4F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009F719F709F6E9F6F56D356CD5B4E5C6D652D66ED66EE6B13705F7061705D -7060722374DB74E577D5793879B779B67C6A7E977F89826D8643883888378835 -884B8B948B958E9E8E9F8EA08E9D91BE91BD91C2946B9468946996E597469743 -974797C797E59A5E9AD59B599C639C679C669C629C5E9C609E029DFE9E079E03 -9E069E059E009E019E099DFF9DFD9E049EA09F1E9F469F749F759F7656D4652E -65B86B186B196B176B1A7062722672AA77D877D979397C697C6B7CF67E9A0000 -F9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E987E9B7E9981E081E18646864786488979897A897C897B89FF8B988B998EA5 -8EA48EA3946E946D946F9471947397499872995F9C689C6E9C6D9E0B9E0D9E10 -9E0F9E129E119EA19EF59F099F479F789F7B9F7A9F79571E70667C6F883C8DB2 -8EA691C394749478947694759A609C749C739C719C759E149E139EF69F0A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009FA4706870657CF7866A883E883D883F8B9E8C9C8EA98EC9974B98739874 -98CC996199AB9A649A669A679B249E159E179F4862076B1E7227864C8EA89482 -948094819A699A689B2E9E197229864B8B9F94839C799EB776759A6B9C7A9E1D -7069706A9EA49F7E9F499F980000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/cns11643.enc b/src/runtime/tcl_library/encoding/cns11643.enc deleted file mode 100644 index 44dd9b7a..00000000 --- a/src/runtime/tcl_library/encoding/cns11643.enc +++ /dev/null @@ -1,1584 +0,0 @@ -# Encoding file: cns11643, double-byte -D -2134 0 93 -21 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E284E364E3F4E854E054E04518251965338536953B64E2A4E874E4951E2 -4E464E8F4EBC4EBE516651E35204529C53B95902590A5B805DDB5E7A5E7F5EF4 -5F505F515F61961D4E3C4E634E624EA351854EC54ECF4ECE4ECC518451865722 -572351E45205529E529D52FD5300533A5C735346535D538653B7620953CC6C15 -53CE57216C3F5E005F0C623762386534653565E04F0E738D4E974EE04F144EF1 -4EE74EF74EE64F1D4F024F054F2256D8518B518C519951E55213520B52A60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -22 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053225304530353075407531E535F536D538953BA53D0598053F653F753F9 -597E53F4597F5B565724590459185932593059345DDF59755E845B825BF95C14 -5FD55FD45FCF625C625E626462615E815E835F0D5F52625A5FCA5FC7623965EE -624F65E7672F6B7A6C39673F673C6C376C446C45738C75927676909390926C4B -6C4C4E214E204E224E684E894E984EF94EEF7F5182784EF84F064F034EFC4EEE -4F1690994F284F1C4F074F1A4EFA4F17514A962351724F3B51B451B351B20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -23 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F6451E84F675214520F5215521852A84F33534B534F518F5350521C538B -522153BE52AE53D2541653FF538E540054305405541354155445541956E35735 -57365731573258EE59054E545447593656E756E55741597A574C5986574B5752 -5B865F535C1859985C3D5C78598E59A25990598F5C8059A15E085B925C285C2A -5C8D5EF55F0E5C8B5C895C925FD35FDA5C935FDB5DE0620F625D625F62676257 -9F505E8D65EB65EA5F7867375FD2673267366B226BCE5FEE6C586C516C770000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -24 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C3C5FFA6C5A5FF76C53706F7072706E6283628C707372B172B26287738F -627B627A6270793C6288808D808E6272827B65F08D718FB99096909A67454E24 -4E7167554E9C4F454F4A4F394F37674B4F324F426C1A4F444F4B6C6B4F404F35 -4F3151516C6F5150514E6C6D6C87519D6C9C51B551B851EC522352275226521F -522B522052B452B372C65325533B537473957397739373947392544D75397594 -543A7681793D5444544C5423541A5432544B5421828F54345449545054220000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -25 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000543F5451545A542F8FC956E956F256F356EF56ED56EC56E6574896285744 -573F573C575357564F85575F5743575857574F744F894F8457464F4C573D4F6A -57425754575558F158F258F0590B9EA656F1593D4F955994598C519E599C51BE -5235599F5233599B52315989599A530B658853925B8D54875BFE5BFF5BFD5C2B -54885C845C8E5C9C5465546C5C855DF55E09546F54615E0B54985E925E905F03 -56F75F1E5F6357725FE75FFE5FE65FDC5FCE57805FFC5FDF5FEC5FF657620000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -26 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005FF25FF05FF95945621359BA59CF623B623C628259C159B659BC6278628B -59B1629E62A5629B629C6299628D6285629D62755C445C475CAE65F65CA05CB5 -5CAF66F5675B5C9F675467525CA267586744674A67615CB66C7F6C916C9E5E14 -6C6E6C7C6C9F6C755F246C566CA26C795F7D6CA15FE56CAA6CA0601970797077 -707E600A7075707B7264601E72BB72BC72C772B972BE72B66011600C7398601C -6214623D62AD7593768062BE768376C076C162AE62B377F477F562A97ACC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -27 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007ACD7CFA809F80918097809466048286828C65FB8295660B866C66058FB5 -8FBE8FC766F68FC190A990A4678E6792677690A896279626962B963396349629 -4E3D679F4E9D4F934F8A677D67814F6D4F8E4FA04FA24FA14F9F4FA36C1D4F72 -6CEC4F8C51566CD96CB651906CAD6CE76CB751ED51FE522F6CC3523C52345239 -52B952B552BF53556C9D5376537A53936D3053C153C253D554856CCF545F5493 -548954799EFE548F5469546D70915494546A548A708356FD56FB56F872D80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -28 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000056FC56F6576557815763576772D1576E5778577F73A673A258F3594B594C -74DD74E8753F59AD753E59C4759859C259B076F176F076F577F859BF77F959C9 -59B859AC7942793F79C559B759D77AFB5B607CFD5B965B9E5B945B9F5B9D80B5 -5C005C1982A082C05C495C4A82985CBB5CC182A782AE82BC5CB95C9E5CB45CBA -5DF65E135E125E7782C35E9882A25E995E9D5EF8866E5EF98FD25F065F218FCD -5F255F558FD790B290B45F845F8360306007963D6036963A96434FCD5FE90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000603D60084FC94FCB62BA62B24FDC62B762E462A74FDB4FC74FD662D562E1 -62DD62A662C162C562C062DF62E062DE53976589539965A665BA54A165FF54A5 -66176618660165FE54AE670C54B6676B67966782678A54BC67A354BE67A2678F -54B067F967806B266B276B686B69579D6B816BB46BD1578F57996C1C579A5795 -58F4590D59536C976C6C6CDF5A006CEA59DD6CE46CD86CB26CCE6CC859F2708B -70887090708F59F570877089708D70815BA8708C5CD05CD872405CD75CCB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007265726672685CC95CC772CD72D372DB5CD472CF73A773A3739E5CDF73AF -5DF95E2173AA739C5E2075427544753B75415E9B759B759E5F0779C479C379C6 -6037603979C7607279CA604560537ACF7C767C747CFF7CFC6042605F7F5980A8 -6058606680B0624280B362CF80A480B680A780AC630380A65367820E82C4833E -829C63006313631462FA631582AA62F082C9654365AA82A682B2662166326635 -8FCC8FD98FCA8FD88FCF90B7661D90AD90B99637670F9641963E96B697510000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000097634E574E794EB24EB04EAF4EB14FD24FD567E44FBE4FB84FB04FB14FC8 -67F667EE4FC64FCC4FE54FE34FB4516A67B2519F67C651C167CC51C251C35245 -524867C967CA524F67EA67CB52C552CA52C453275358537D6BE053DD53DC53DA -53D954B96D1F54D054B454CA6D0A54A354DA54A46D1954B2549E549F54B56D1D -6D4254CD6D1854CC6D03570057AC5791578E578D579257A1579057A657A8709F -579C579657A770A170B470B570A958F572495909590872705952726E72CA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000059DF72E859EB59EF59F059D55A0D5A0459F95A0259F859E259D959E75B6A -73B473EB5BAB73C75C1B5C2F73C6663C73CB74EC74EE5CD15CDC5CE65CE15CCD -76795CE25CDD5CE55DFB5DFA5E1E76F75EA176FA77E75EFC5EFB5F2F78127805 -5F66780F780E7809605C7813604E6051794B794560236031607C605279D66060 -604A60617AD162187B017C7A7C787C797C7F7C807C81631F631762EA63216304 -63057FBE6531654465408014654265BE80C76629661B80C86623662C661A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006630663B661E6637663880C9670E80D780E667E867D6822167C767BC6852 -67BF67D567FE836367FB833A67B168016805680067D782F26B2A6B6B82FB82F6 -82F082EA6BE182E082FA6D236CFF6D146D056D136D066D21884E6D156CAF6CF4 -6D026D458A076D268FE36D448FEE6D2470A590BD70A390D570A270BB70A070AA -90C891D470A870B670B270A79653964A70B9722E5005723C5013726D5030501B -72E772ED503372EC72E572E24FF773C473BD73CF73C973C173D0503173CE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000074ED74EB519374EF754975507546754A5261754D75A6525E525F525575A8 -52CD530E76C776FF54E276FD77E6780A54F37804780B78075504781578085511 -79D379D479D079D77A7C54F854E07A7D7A837A8257017AD47AD57AD37AD07AD2 -7AFE7AFC7C777C7C7C7B57B657BF57C757D057B957C1590E594A7F8F80D35A2D -80CB80D25A0F810980E280DF80C65B6C822482F782D882DD5C565C5482F882FC -5CEE5CF182E95D0082EE5E2982D0830E82E2830B82FD517986765F6786780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000605A60678675867D6088884288666081898C8A0560958A0660978C9F609C -8FF18FE78FE98FEF90C290BC632C90C690C06336634390CD90C9634B90C4633C -958163419CEC50324FF9501D4FFF50044FF05003635150024FFC4FF250245008 -5036502E65C35010503850394FFD50564FFB51A351A651A1681A684951C751C9 -5260526452595265526752575263682B5253682F52CF684452CE52D052D152CC -68266828682E550D54F46825551354EF54F554F9550255006B6D808255180000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054F054F66BE86BE355196BE7570557C96D6357B757CD6D0D6D616D9257BE -57BB6D6D57DB57C857C457C557D157CA57C06D676D605A215A2A6D7C5A1D6D82 -5A0B6D2F6D686D8B6D7E5A226D846D165A246D7B5A145A316D905A2F5A1A5A12 -70DD70CB5A2670E270D75BBC5BBB5BB75C055C065C525C5370C770DA5CFA5CEB -72425CF35CF55CE95CEF72FA5E2A5E305E2E5E2C5E2F5EAF5EA973D95EFD5F32 -5F8E5F935F8F604F609973D2607E73D46074604B6073607573E874DE60560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -31 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060A9608B60A6755B609360AE609E60A7624575C075BF632E75BA63526330 -635B771B6319631B77126331635D6337633563537722635C633F654B78227835 -658B7828659A66506646664E6640782A664B6648795B66606644664D79526837 -682479EC79E0681B683679EA682C681968566847683E681E7A8B681568226827 -685968586855683068236B2E6B2B6B306B6C7B096B8B7C846BE96BEA6BE56D6B -7C8D7C856D736D577D117D0E6D5D6D566D8F6D5B6D1C6D9A6D9B6D997F610000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -32 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D816D717F5D7F5B6D726D5C6D9670C470DB70CC70D070E370DF80F270D6 -70EE70D580FB81008201822F727A833372F573028319835173E273EC73D573F9 -73DF73E683228342834E831B73E473E174F3834D831683248320755675557558 -7557755E75C38353831E75B4834B75B18348865376CB76CC772A86967716770F -869E8687773F772B770E772486857721771877DD86A7869578247836869D7958 -79598843796279DA79D9887679E179E579E879DB886F79E279F08874887C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -33 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008A128C477ADA7ADD8CA47ADB7ADC8D788DB57B0D7B0B7B147C8E7C868FF5 -7C877C837C8B90048FFC8FF690D67D2490D990DA90E37D257F627F937F997F97 -90DC90E47FC47FC6800A91D591E28040803C803B80F680FF80EE810481038107 -506A506180F750605053822D505D82278229831F8357505B504A506250158321 -505F506983188358506450465040506E50738684869F869B868986A68692868F -86A0884F8878887A886E887B88848873555055348A0D8A0B8A19553655350000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -34 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000553055525545550C8FF990099008553990DE9151553B554091DB91DF91DE -91D691E095859660965957F4965657ED57FD96BD57F8580B5042505958075044 -50665052505450715050507B507C505857E758015079506C507851A851D151CF -5268527652D45A5553A053C45A385558554C55685A5F55495A6C5A53555D5529 -5A43555455535A44555A5A48553A553F552B57EA5A4C57EF5A695A4757DD57FE -5A4257DE57E65B6E57E857FF580358F768A6591F5D1A595B595D595E5D0D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -35 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005D265A2B5D0F5A3B5D125D235A615A3A5A6E5A4B5A6B5EB45EB95A455A4E -5A685A3D5A715A3F5A6F5A7560905A735A2C5A595A545A4F5A6360CF60E45BC8 -60DD5BC360B15C5B5C6160CA5D215D0A5D0960C05D2C5D08638A63825D2A5D15 -639E5D105D1363975D2F5D18636F5DE35E395E355E3A5E32639C636D63AE637C -5EBB5EBA5F345F39638563816391638D6098655360D066656661665B60D760AA -666260A160A4688760EE689C60E7686E68AE60DE6956686F637E638B68A90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -36 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000687563796386639368776373636A686B636C68AA637F687163B263BA6896 -688B6366637468A4655A687B654E654D658D658E65AD6B3365C765CA6B9165C9 -6B8D65E366576C2A66636667671A671967166DAC6DE9689E68B6689868736E00 -689A688E68B768DB68A5686C68C168846DDB6DF46895687A68996DF068B868B9 -68706DCF6B356DD06B906BBB6BED6DD76DCD6DE36DC16DC36DCE70F771176DAD -6E0470F06DB970F36DE770FC6E086E0671136E0A6DB070F66DF86E0C710E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -37 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006DB1727B6E026E076E096E016E176DFF6E12730A730871037107710170F5 -70F1710870F2710F740170FE7407740073FA731A7310730E740273F374087564 -73FB75CE75D275CF751B752375617568768F756775D37739772F769077317732 -76D576D776D67730773B7726784877407849771E784A784C782678477850784B -7851784F78427846796B796E796C79F279F879F179F579F379F97A907B357B3B -7A9A7A937A917AE17B247B337B217B1C7B167B177B367B1F7B2F7C937C990000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -38 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007C9A7C9C7C947D497C967D347D377D3D7D2D7D367D4C7D457D2C7D487D41 -7D477F3B7D3F7D4A7D3B7D288008801A7F9C801D7F9B8049804580447C9B7FD1 -7FC7812A812E801F801E81318047811A8134811781258119811B831D83718384 -8380837283A18127837983918211839F83AD823A8234832382748385839C83B7 -8658865A8373865786B2838F86AE8395839983758845889C889488A3888F88A5 -88A988A6888A88A0889089928991899483B08A268A328A2883AE83768A1C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -39 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000086568A2B8A2086C28A2986C586BA86B08A218C3A86B38C5B8C588C7C86BB -8CA68CAE8CAD8D6588528D7E88958D7C8D7F8D7A8DBD889188A18DC08DBB8EAD -8EAF8ED6889788A488AC888C88938ED9898289D69012900E90258A27901390EE -8C3990AB90F78C5D9159915491F291F091E591F68DC28DB995878DC1965A8EDE -8EDD966E8ED78EE08EE19679900B98E198E6900C9EC49ED24E8090F04E81508F -50975088508990EC90E950815160915A91535E4251D391F491F151D251D60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000527391F9527091EB91F791E853A853A653C5559755DE966D966B559655B4 -96BF55859804559B55A0509B555950945586508B50A355AF557A508E509D5068 -559E509255A9570F570E581A5312581F53A4583C5818583E582655AD583A5645 -5822559358FB5963596455815AA85AA35A825A885AA15A855A9855955A99558E -5A895A815A965A80581E58275A91582857F5584858255ACF581B5833583F5836 -582E58395A875AA0582C5A7959615A865AAB5AAA5AA45A8D5A7E5A785BD50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005A7C5AA55AAC5C1E5C5F5C5E5D445D3E5A975D485D1C5AA95D5B5D4D5A8C -5A9C5D575A935D535D4F5BCD5D3B5D465BD15BCA5E465E475C305E485EC05EBD -5EBF5D4B5F115D355F3E5F3B5D555F3A5D3A5D525D3D5FA75D5960EA5D396107 -6122610C5D325D3660B360D660D25E4160E360E560E95FAB60C9611160FD60E2 -60CE611E61206121621E611663E263DE63E660F860FC60FE60C163F8611863FE -63C163BF63F763D1655F6560656163B063CE65D163E863EF667D666B667F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000063CA63E066736681666D6669646163DF671E68ED63DC63C463D863D36903 -63C768FE68E5691E690263D763D9690968CA690065646901691868E268CF659D -692E68C568FF65D2691C68C3667B6B6F66716B6E666A6BBE67016BF46C2D6904 -6DB66E756E1E68EA6E18690F6E4868F76E4F68E46E426E6A6E706DFE68E16907 -6E6D69086E7B6E7E6E5968EF6E5769146E806E5068FD6E296E766E2A6E4C712A -68CE7135712C7137711D68F468D1713868D47134712B7133712771246B3B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000712D7232728372827287730673247338732A732C732B6DFC732F73287417 -6E496E88741974386E45741F7414743C73F7741C74157418743974F975246E51 -6E3B6E03756E756D7571758E6E6175E56E286E606E716E6B769476B36E3076D9 -6E657748774977436E776E55774277DF6E66786378766E5A785F786679667971 -712E713179767984797579FF7A0771287A0E7A09724B725A7288728972867285 -7AE77AE27B55733073227B437B577B6C7B427B5373267B417335730C7CA70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007CA07CA67CA47D74741A7D59742D7D607D577D6C7D7E7D6474207D5A7D5D -752F756F756C7D767D4D7D7575E67FD37FD675E475D78060804E8145813B7747 -814881428149814081148141774C81EF81F68203786483ED785C83DA841883D2 -8408787084007868785E786284178346841483D38405841F8402841683CD83E6 -7AE6865D86D586E17B447B487B4C7B4E86EE884788467CA27C9E88BB7CA188BF -88B47D6388B57D56899A8A437D4F7D6D8A5A7D6B7D527D548A358A388A420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008A498A5D8A4B8A3D7F667FA27FA07FA18C608C5E8C7F8C7E8C8380D48CB1 -8D878152814F8D888D83814D813A8D868D8B8D828DCA8DD28204823C8DD48DC9 -8EB0833B83CF83F98EF28EE48EF38EEA83E78EFD83FC8F9D902B902A83C89028 -9029902C840183DD903A90309037903B83CB910A83D683F583C991FE922083DE -920B84069218922283D5921B920883D1920E9213839A83C3959583EE83C483FB -968C967B967F968183FE968286E286E686D386E386DA96EE96ED86EB96EC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -40 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000975F976F86D7976D86D188488856885588BA88D798F088B888C088BE9AA9 -88BC88B79AE04EB7890188C950CC50BC899750AA50B989DB50AB50C350CD517E -527E52798A588A4452E152E052E7538053AB53AA53A953E055EA8C8055D78CBE -8CB055C157158D84586C8D89585C58505861586A5869585658605866585F5923 -596659688EEF8EF75ACE8EF95AC55AC38EE58EF55AD08EE88EF68EEB8EF18EEC -8EF45B745B765BDC5BD75BDA5BDB91045C205D6D5D6690F95D645D6E91000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -41 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005D605F425F5A5F6E9164915F6130613A612A614361196131921A613D920F -920C92006408643264389206643192276419921C6411921992176429641D957B -958D958C643C96876446644796899683643A640796C8656B96F16570656D9770 -65E4669398A998EB9CE69EF9668F4E844EB6669250BF668E50AE694650CA50B4 -50C850C250B050C150BA693150CB50C9693E50B8697C694352786973527C6955 -55DB55CC6985694D69506947696769366964696155BF697D6B446B406B710000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -42 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B736B9C55C855F255CD6BC155C26BFA6C316C325864584F6EB86EA8586F -6E916EBB585D6E9A5865585B6EA9586358716EB56E6C6EE85ACB6EDD6EDA6EE6 -6EAC5AB05ABF5AC86ED96EE36EE96EDB5ACA716F5AB65ACD71485A90714A716B -5BD9714F715771745D635D4A5D6571457151716D5D6872517250724E5E4F7341 -5E4A732E73465EC574275EC674487453743D5FAF745D74566149741E74477443 -74587449612E744C7445743E61297501751E91686223757A75EE760276970000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -43 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007698641064126409775D77647753775878827890788A6439787A787D6423 -788B787864306428788D788878927881797E798364256427640B7980641B642E -64217A0F656F65927A1D66867AA17AA466907AE97AEA66997B627B6B67207B5E -695F7B79694E69627B6F7B686945696A7CAE6942695769597CB069487D906935 -7D8A69337D8B7D997D9569787D877D787D977D897D986976695869417FA3694C -693B694B7FDD8057694F8163816A816C692F697B693C815D81756B43815F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -44 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B48817D816D6BFB6BFC8241844F84846E9B847F6EC88448842A847B8472 -8464842E845C84536EC6844184C86EC184628480843E848384716EA6844A8455 -84586EC36EDC6ED886FC86FD87156E8D871686FF6EBF6EB36ED0885888CF88E0 -6EA371477154715289E78A6A8A80715D8A6F8A6571788A788A7D8A8871587143 -8A648A7E715F8A678C638C88714D8CCD724F8CC9728C8DED7290728E733C7342 -733B733A73408EB1734974448F048F9E8FA090439046904890459040904C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -45 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000074427446910C9113911574FF916B9167925D9255923569839259922F923C -928F925C926A9262925F926B926E923B92449241959A7699959976DD7755775F -968F77529696775A7769776796F496FC776D9755788797797894788F788497EE -97F57886980B788398F37899788098F798FF98F5798298EC98F17A117A18999A -7A129AE29B3D9B5D9CE87A1B9CEB9CEF9CEE9E819F1450D050D950DC50D87B69 -50E150EB7B737B7150F450E250DE7B767B637CB251F47CAF7D887D8652ED0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -46 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000052EA7D7F53327D7A53AE53B07D8355FB5603560B7D8456077D9255F87F6B -5628561E7F6C5618561156515605571758928164588C817758785884587358AD -58975895587758725896588D59108161596C82495AE782405AE4824584F15AEF -5626847684795AF05D7B84655D83844084865D8B5D8C844D5D785E5284598474 -5ED05ECF85075FB35FB4843A8434847A617B8478616F6181613C614261386133 -844261606169617D6186622C62288452644C84C56457647C8447843664550000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -47 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064626471646A6456643B6481846E644F647E646486F7870C86FA86D686F5 -657186F8870E66A5669A669C870D66A688D666A4698F69C569C8699269B288CC -88D0898569E369C069D669D1699F69A269D289DC89E68A7669E169D5699D8A3F -8A7769988A846B746BA18A816EF06EF38C3C8C4B6F1B6F0C6F1D6F346F286F17 -8C856F446F426F046F116EFA6F4A7191718E8D93718B718D717F718C717E717C -71838DEE71888DE98DE372948DE773557353734F7354746C7465746674610000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -48 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000746B746874768F0B7460903F74747506760E91107607910F911176B99114 -76B776E2916E7774777777767775923A777877719265777A715B777B78A678AE -78B8926C924F926078B178AF923679897987923192547A2992507A2A924E7A2D -7A2C92567A32959F7AEC7AF07B817B9E7B8396917B9296CE7BA37B9F7B9396F5 -7B867CB87CB79772980F980D980E98AC7DC87DB699AF7DD199B07DA87DAB9AAB -7DB37DCD9CED7DCF7DA49EFD50E67F417F6F7F7150F350DB50EA50DD50E40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -49 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000050D38023805B50EF8061805F818152805281818482135330824A824C5615 -560C561284BD8495561C849284C35602849684A584B584B384A384E484D884D5 -589884B784AD84DA84938736587A58875891873D872B87478739587B8745871D -58FE88FF88EA5AEE88F55AD5890088ED890388E95AF35AE289EA5ADB8A9B8A8E -8AA25AD98A9C8A948A908AA98AAC5C638A9F5D805D7D8A9D5D7A8C675D775D8A -8CD08CD68CD48D988D9A8D975D7F5E585E598E0B8E088E018EB48EB35EDC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008FA18FA25ED2905A5F449061905F5FB6612C9125917B9176917C61739289 -92F692B192AD929292819284617A92AE9290929E616A6161615695A295A7622B -642B644D645B645D96A0969D969F96D0647D96D1646664A6975964829764645C -644B64539819645098149815981A646B645964656477990665A098F89901669F -99BE99BC99B799B699C069C999B869CE699669B099C469BC99BF69999ADA9AE4 -9AE99AE89AEA9AE569BF9B2669BD69A49B4069B969CA699A69CF69B369930000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000069AA9EBD699E69D969976990510E69B550F769C650FC510D510151DA51D9 -51DB5286528E52EE533353B16EF15647562D56546F37564B5652563156445656 -5650562B6F18564D5637564F58A258B76F7358B26EEE58AA58B558B06F3C58B4 -58A458A76F0E59265AFE6EFD5B046F395AFC6EFC5B065B0A5AFA5B0D5B005B0E -7187719071895D9171855D8F5D905D985DA45D9B5DA35D965DE45E5A72957293 -5E5E734D5FB86157615C61A661956188747261A3618F75006164750361590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006178761661856187619E7611760A6198619C7781777C622F6480649B648E -648D649464C678B264A8648378AD64B9648664B464AF649178A064AA64A164A7 -66B666B3798B66BC66AC799466AD6A0E79886A1C6A1A7A2B7A4A6A0B7A2F69EF -6A0C69F06A227AAC69D87B886A1269FA7B916A2A7B966A107B8C7B9B6A2969F9 -69EA6A2C6A247BA469E96B526B4F6B537CBA7DA76F106F656F757DAA7DC17DC0 -7DC56FD07DCE6F5C6F3D6F717DCC6F916F0B6F796F816F8F7DA66F596F740000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007DA171AE7F7371A371AD7FE57FDE71AB71A671A2818952F2725772557299 -734B747A8215849784A4748C748484BA84CE74827493747B84AB750984B484C1 -84CD84AA849A84B1778A849D779084BB78C678D378C078D278C778C284AF799F -799D799E84B67A4184A07A387A3A7A4284DB84B07A3E7AB07BAE7BB38728876B -7BBF872E871E7BCD87197BB28743872C8741873E8746872087327CC47CCD7CC2 -7CC67CC37CC97CC787427DF887277DED7DE2871A873087117DDC7E027E010000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000088F27DD688FE7DE47DFE88F67E007DFC7DFD88EB7DF57DFF899F7DEB7DE5 -7F787FAE7FE78A998065806A80668068806B819481A18192819681938D968E09 -85018DFF84F88DFD84F58E0385048E068E058DFE8E00851B85038533853484ED -9123911C853591228505911D911A91249121877D917A91729179877192A5885C -88E6890F891B92A089A989A589EE8AB1929A8ACC8ACE92978AB792A38AB58AE9 -8AB492958AB38AC18AAF8ACA8AD09286928C92998C8E927E92878CE98CDB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000928B8CEB8DA496A18DA28D9D977D977A977E97838E2A8E28977B97848EB8 -8EB68EB98EB78F228F2B8F278F198FA499078FB3999C9071906A99BB99BA9188 -918C92BF92B892BE92DC92E59B3F9B6092D492D69CF192DA92ED92F392DB5103 -92B992E292EB95AF50F695B295B3510C50FD510A96A396A552F152EF56485642 -970A563597879789978C97EF982A98225640981F563D9919563E99CA99DA563A -571A58AB99DE99C899E058A39AB69AB558A59AF458FF9B6B9B699B729B630000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005AF69D0D5AF89D019D0C5B019CF85B055B0F9CFE9D029E845D9F9EAB9EAA -511D51165DA0512B511E511B5290529453145E605E5C56675EDB567B5EE1565F -5661618B6183617961B161B061A2618958C358CA58BB58C058C459015B1F5B18 -5B115B1561B35B125B1C64705B225B795DA664975DB35DAB5EEA648A5F5B64A3 -649F61B761CE61B961BD61CF61C06199619765B361BB61D061C4623166B764D3 -64C06A006A066A1769E564DC64D164C869E464D566C369EC69E266BF66C50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000069FE66CD66C167066A1467246A636A426A5269E66A436A3369FC6A6C6A57 -6A046A4C6A6E6A0F69F66A266A0769F46A376B516A716A4A6A366BA66A536C00 -6A456A706F416F266A5C6B586B576F926F8D6F896F8C6F626F4F6FBB6F5A6F96 -6FBE6F6C6F826F556FB56FD36F9F6F576FB76FF571B76F0071BB6F6B71D16F67 -71BA6F5371B671CC6F7F6F9571D3749B6F6A6F7B749674A2749D750A750E719A -7581762C76377636763B71A476A171AA719C779871B37796729A735873520000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -52 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078D678EB736078DC735B79A579A998347A537A4574897A4F74867ABD7ABB -7AF17488747C7BEC7BED7507757E7CD3761E7CE1761D7E197623761A76287E27 -7E26769D769E806E81AF778F778981AD78CD81AA821878CC78D178CE78D4856F -854C78C48542799A855C8570855F79A2855A854B853F878A7AB4878B87A1878E -7BBE7BAC8799885E885F892489A78AEA8AFD8AF98AE38AE57DDB7DEA8AEC7DD7 -7DE17E037DFA8CF27DF68CEF7DF08DA67DDF7F767FAC8E3B8E437FED8E320000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008F318F307FE68F2D8F3C8FA78FA5819F819E819591379195918E82169196 -82539345930A824E825192FD9317931C930793319332932C9330930393058527 -95C284FB95B884FA95C1850C84F4852A96AB96B784F784EB97159714851284EA -970C971784FE9793851D97D2850284FD983698319833983C982E983A84F0983D -84F998B5992299239920991C991D866299A0876399EF99E899EB877387588754 -99E199E68761875A9AF89AF5876D876A9B839B949B84875D9B8B9B8F877A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B8C875C9B89874F9B8E8775876287679D249D0F89059D139D0A890B8917 -891889199D2A9D1A89119D279D169D2189A49E859EAC9EC69EC59ED79F538AB8 -5128512751DF8AD5533553B38ABE568A567D56898AC358CD58D08AD95B2B5B33 -5B295B355B315B375C365DBE8CDD5DB98DA05DBB8DA161E261DB61DD61DC61DA -8E2E61D98E1B8E1664DF8E198E2664E18E1464EE8E1865B566D466D58E1A66D0 -66D166CE66D78F208F236A7D6A8A90736AA7906F6A996A826A88912B91290000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -55 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006A8691326A986A9D918591866A8F91816AAA91846B5D92D06C0A92C46FD7 -6FD66FE592CF92F192DF6FD96FDA6FEA92DD6FF692EF92C271E392CA71E992CE -71EB71EF71F371EA92E092DE92E792D192D3737192E174AE92C674B3957C74AC -95AB95AE75837645764E764476A376A577A677A4978A77A977AF97D097CF981E -78F078F878F198287A49981B982798B27AC27AF27AF37BFA99167BF67BFC7C18 -7C087C1299D399D47CDB7CDA99D699D899CB7E2C7E4D9AB39AEC7F467FF60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000802B807481B881C89B679B749B71859285939B75857F85AB85979B6C9CFC -85AC9CFD9CFF9CF787CE9D0087CD9CFB9D0887C187B187C79ED389409F10893F -893951178943511151DE533489AB56708B1F8B098B0C566656638C4056728C96 -56778CF68CF758C88E468E4F58BF58BA58C28F3D8F4193669378935D93699374 -937D936E93729373936293489353935F93685DB1937F936B5DB595C45DAE96AF -96AD96B25DAD5DAF971A971B5E685E665E6F5EE9979B979F5EE85EE55F4B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005FBC5FBB619D61A86196984061B4984761C198B761BA61BF61B8618C64D7 -99A264D064CF9A0099F3648964C399F564F364D99ABD9B009B0265A29B349B49 -9B9F66CA9BA39BCD9B999B9D66BA66CC9D396A349D446A496A679D356A686A3E -9EAF6A6D512F6A5B6A519F8E6A5A569F569B569E5696569456A06A4F5B3B6A6F -6A695B3A5DC15F4D5F5D61F36A4D6A4E6A466B5564F664E564EA64E765056BC8 -64F96C046C036C066AAB6AED6AB26AB06AB56ABE6AC16AC86FC46AC06ABC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006AB16AC46ABF6FA56FAE700870036FFD7010700270136FA271FA720074B9 -74BC6FB2765B7651764F76EB77B871D677B977C177C077BE790B71C77907790A -790871BC790D7906791579AF729E736973667AF5736C73657C2E736A7C1B749A -7C1A7C24749274957CE67CE37580762F7E5D7E4F7E667E5B7F477FB476327630 -76BB7FFA802E779D77A181CE779B77A282197795779985CC85B278E985BB85C1 -78DE78E378DB87E987EE87F087D6880E87DA8948894A894E894D89B189B00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089B37AB78B388B327BE78B2D7BD58B347BDA8B298C747BD47BEA8D037BDC -7BEB8DA98E587CD27CD48EBF8EC18F4A8FAC7E219089913D913C91A993A07E0E -93907E159393938B93AD93BB93B87E0D7E14939C95D895D77F7B7F7C7F7A975D -97A997DA8029806C81B181A6985481B99855984B81B0983F98B981B281B781A7 -81F29938993699408556993B993999A4855385619A089A0C85469A1085419B07 -85449BD285479BC29BBB9BCC9BCB854E856E9D4D9D639D4E85609D509D550000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000855D9D5E85659E909EB29EB186649ECA9F029F279F26879356AF58E058DC -87965B39877987875B7C5BF3879087915C6B5DC4650B6508650A8789891E65DC -8930892D66E166DF6ACE6AD46AE36AD76AE2892C891F89F18AE06AD86AD56AD2 -8AF58ADD701E702C70256FF37204720872158AE874C474C974C774C876A977C6 -77C57918791A79208CF37A667A647A6A8DA78E338E3E8E388E408E457C357C34 -8E3D8E417E6C8E3F7E6E7E718F2E81D481D6821A82628265827685DB85D60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000908685E79133913585F4919387FD87D58807918F880F87F89308931F8987 -930F89B589F5933C8B3F8B438B4C93018D0B8E6B8E688E708E758E7792FA8EC3 -92F993E993EA93CB93C593C6932993ED93D3932A93E5930C930B93DB93EB93E0 -93C1931695BC95DD95BE95B995BA95B695BF95B595BD96A996D497B297B497B1 -97B597F2979497F097F89856982F98329924994499279A269A1F9A189A219A17 -99E49B0999E399EA9BC59BDF9AB99BE39AB49BE99BEE9AFA9AF99D669D7A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B809D6E9D919D839D769D7E9D6D9B939E959EE39B7A9B959F039F049D25 -9F179D2051369D1453369D1D5B429D229D105B445B465B7E5DCA5DC85DCC5EF0 -9ED5658566E566E79F3D512651256AF451246AE9512952F45693568C568D703D -56847036567E7216567F7212720F72177211720B5B2D5B2574CD74D074CC74CE -74D15B2F75895B7B7A6F7C4B7C445E6C5E6A5FBE61C361B57E7F8B7161E0802F -807A807B807C64EF64E964E385FC861086026581658085EE860366D2860D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000086138608860F881888126A9B6AA18967896589BB8B698B626A838B6E6AA4 -8B616A7F8B648B4D8C516A8C6A928E838EC66C09941F6FA99404941794089405 -6FED93F3941E9402941A941B9427941C71E196B571E871F2973371F097349731 -97B897BA749797FC74AB749098C374AD994D74A59A2F7510751175129AC97584 -9AC89AC49B2A9B389B5076E99C0A9BFB9C049BFC9BFE77B477B177A89C029BF6 -9C1B9BF99C159C109BFF9C009C0C78F978FE9D959DA579A87A5C7A5B7A560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009E989EC17A5A9F5A516456BB7C0558E65B495BF77BFF7BFB5DD07BF45FC2 -7BF365117C096AFF6AFE6AFD7BFD6B017BF07BF1704B704D704774D376687667 -7E33984877D179307932792E7E479F9D7AC97AC87E3B7C567C517E3A7F457F7F -7E857E897E8E7E84802C826A862B862F862881C586168615861D881A825A825C -858389BC8B758B7C85958D118D128F5C91BB85A493F4859E8577942D858985A1 -96E497379736976797BE97BD97E29868986698C898CA98C798DC8585994F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000099A99A3C85909A3B9ACE87BE9B149B5387C59C2E87AC9C1F87B587BC87AE -87C99DB09DBD87CC87B79DAE9DC49E7B87B487B69E9E87B89F0587DE9F699FA1 -56C7571D5B4A5DD389525F72620289AD62356527651E651F8B1E8B186B076B06 -8B058B0B7054721C72207AF88B077C5D7C588B067E927F4E8B1A8C4F8C708827 -8C718B818B838C948C448D6F8E4E8E4D8E539442944D9454944E8F409443907E -9138973C974097C09199919F91A1919D995A9A5193839ADD936493569C380000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000937C9C459C3A93769C359350935193609EF1938F9F93529A937993578641 -5DD7934F65289377937B936170537059936772219359766F793779B57C627C5E -7CF596AE96B0863D9720882D89898B8D8B878B908D1A8E99979E979D97D5945F -97F1984194569461945B945A945C9465992B9741992A9933986E986C986D9931 -99AA9A5C9A589ADE9A029C4F9C5199F79C5399F899F699FB9DFC9F3999FC513E -9ABE56D29AFD5B4F6B149B487A727A739B9E9B9B9BA68B919BA59BA491BF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009BA2946C9BAF9D3396E697459D3697C897E4995D9D389B219D459B2C9B57 -9D3E9D379C5D9C619C659E089E8A9E899E8D9EB09EC89F459EFB9EFF620566EF -6B1B6B1D722572247C6D512E8642864956978978898A8B9759708C9B8D1C5C6A -8EA25E6D5E6E61D861DF61ED61EE61F161EA9C6C61EB9C6F61E99E0E65049F08 -9F1D9FA3650364FC5F606B1C66DA66DB66D87CF36AB98B9B8EA791C46ABA947A -6AB76AC79A619A639AD79C766C0B9FA5700C7067700172AB864A897D8B9D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008C538F65947B6FFC98CD98DD72019B309E16720371FD737674B874C096E7 -9E189EA274B69F7C74C27E9E9484765C9E1C76597C7197CA7657765A76A69EA3 -76EC9C7B9F97790C7913975079097910791257275C1379AC7A5F7C1C7C297C19 -7C205FC87C2D7C1D7C267C287C2267657C307E5C52BD7E565B667E5865F96788 -6CE66CCB7E574FBD5F8D7FB36018604880756B2970A681D07706825E85B485C6 -5A105CFC5CFE85B385B585BD85C785C485BF70C985CE85C885C585B185B60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000085D28624957985B796BA866987E787E687E287DB87EB87EA7B29812887F3 -8A2E87D487DC87D39AD987D8582B584587D963FA87F487E887DD6E86894B894F -894C89468950586789495BDD656E8B238B338B308C878B4750D250DF8B3E8B31 -8B258B3769BA8B366B9D8B2480598B3D8B3A8C428C758C998C988C978CFE8D04 -8D028D008E5C6F8A8E608E577BC37BC28E658E678E5B8E5A90F68E5D98238E54 -8F468F478F488F4B71CD7499913B913E91A891A591A7984291AA93B5938C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093927F84939B939D938993A7938E8D0E939E9861939593888B73939F9C27 -938D945877D69B2D93A493A893B493A395D295D395D196B396D796DA5DC296DF -96D896DD97239722972597AC97AE97A84F664F684FE7503F97A550A6510F523E -53245365539B517F54CB55735571556B55F456225620569256BA569156B05759 -578A580F581258135847589B5900594D5AD15AD35B675C575C775CD55D755D8E -5DA55DB65DBF5E655ECD5EED5F945F9A5FBA6125615062A36360636463B60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000640364B6651A7A255C2166E2670267A467AC68106806685E685A692C6929 -6A2D6A776A7A6ACA6AE66AF56B0D6B0E6BDC6BDD6BF66C1E6C636DA56E0F6E8A -6E846E8B6E7C6F4C6F486F496F9D6F996FF8702E702D705C79CC70BF70EA70E5 -71117112713F7139713B713D71777175717671717196719371B471DD71DE720E -591172187347734873EF7412743B74A4748D74B47673767776BC7819781B783D -78537854785878B778D878EE7922794D7986799979A379BC7AA77B377B590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007BD07C2F7C327C427C4E7C687CA97CED7DD07E077DD37E647F40791E8041 -806380BB6711672582488310836283128421841E84E284DE84E1857385D485F5 -863786458672874A87A987A587F5883488508887895489848B038C528CD88D0C -8D188DB08EBC8ED58FAA909C85E8915C922B9221927392F492F5933F93429386 -93BE93BC93BD93F193F293EF94229423942494679466959795CE95E7973B974D -98E499429B1D9B9889629D4964495E715E8561D3990E8002781E898889B70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005528557255BA55F055EE56B856B956C4805392B08B558B518B428B528B57 -8C438C778C768C9A8D068D078D098DAC8DAA8DAD8DAB8E6D8E788E738E6A8E6F -8E7B8EC28F528F518F4F8F508F538FB49140913F91B091AD93DE93C793CF93C2 -93DA93D093F993EC93CC93D993A993E693CA93D493EE93E393D593C493CE93C0 -93D293A593E7957D95DA95DB96E19729972B972C9728972697B397B797B697DD -97DE97DF985C9859985D985798BF98BD98BB98BE99489947994399A699A70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -68 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009A1A9A159A259A1D9A249A1B9A229A209A279A239A1E9A1C9A149AC29B0B -9B0A9B0E9B0C9B379BEA9BEB9BE09BDE9BE49BE69BE29BF09BD49BD79BEC9BDC -9BD99BE59BD59BE19BDA9D779D819D8A9D849D889D719D809D789D869D8B9D8C -9D7D9D6B9D749D759D709D699D859D739D7B9D829D6F9D799D7F9D879D689E94 -9E919EC09EFC9F2D9F409F419F4D9F569F579F58533756B256B556B358E35B45 -5DC65DC75EEE5EEF5FC05FC161F9651765166515651365DF66E866E366E40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006AF36AF06AEA6AE86AF96AF16AEE6AEF703C7035702F7037703470317042 -7038703F703A7039702A7040703B703370417213721472A8737D737C74BA76AB -76AA76BE76ED77CC77CE77CF77CD77F279257923792779287924792979B27A6E -7A6C7A6D7AF77C497C487C4A7C477C457CEE7E7B7E7E7E817E807FBA7FFF8079 -81DB81D982688269862285FF860185FE861B860085F6860486098605860C85FD -8819881088118817881388168963896689B989F78B608B6A8B5D8B688B630000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B658B678B6D8DAE8E868E888E848F598F568F578F558F588F5A908D9143 -914191B791B591B291B3940B941393FB9420940F941493FE9415941094289419 -940D93F5940093F79407940E9416941293FA940993F8943C940A93FF93FC940C -93F69411940695DE95E095DF972E972F97B997BB97FD97FE986098629863985F -98C198C29950994E9959994C994B99539A329A349A319A2C9A2A9A369A299A2E -9A389A2D9AC79ACA9AC69B109B129B119C0B9C089BF79C059C129BF89C400000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009C079C0E9C069C179C149C099D9F9D999DA49D9D9D929D989D909D9B9DA0 -9D949D9C9DAA9D979DA19D9A9DA29DA89D9E9DA39DBF9DA99D969DA69DA79E99 -9E9B9E9A9EE59EE49EE79EE69F309F2E9F5B9F609F5E9F5D9F599F91513A5139 -5298529756C356BD56BE5B485B475DCB5DCF5EF161FD651B6B026AFC6B036AF8 -6B0070437044704A7048704970457046721D721A7219737E7517766A77D0792D -7931792F7C547C537CF27E8A7E877E887E8B7E867E8D7F4D7FBB803081DD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008618862A8626861F8623861C86198627862E862186208629861E86258829 -881D881B88208824881C882B884A896D8969896E896B89FA8B798B788B458B7A -8B7B8D108D148DAF8E8E8E8C8F5E8F5B8F5D91469144914591B9943F943B9436 -9429943D94309439942A9437942C9440943195E595E495E39735973A97BF97E1 -986498C998C698C0995899569A399A3D9A469A449A429A419A3A9A3F9ACD9B15 -9B179B189B169B3A9B529C2B9C1D9C1C9C2C9C239C289C299C249C219DB70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009DB69DBC9DC19DC79DCA9DCF9DBE9DC59DC39DBB9DB59DCE9DB99DBA9DAC -9DC89DB19DAD9DCC9DB39DCD9DB29E7A9E9C9EEB9EEE9EED9F1B9F189F1A9F31 -9F4E9F659F649F924EB956C656C556CB59715B4B5B4C5DD55DD15EF265216520 -652665226B0B6B086B096C0D7055705670577052721E721F72A9737F74D874D5 -74D974D7766D76AD793579B47A707A717C577C5C7C597C5B7C5A7CF47CF17E91 -7F4F7F8781DE826B863486358633862C86328636882C88288826882A88250000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000897189BF89BE89FB8B7E8B848B828B868B858B7F8D158E958E948E9A8E92 -8E908E968E978F608F629147944C9450944A944B944F94479445944894499446 -973F97E3986A986998CB9954995B9A4E9A539A549A4C9A4F9A489A4A9A499A52 -9A509AD09B199B2B9B3B9B569B559C469C489C3F9C449C399C339C419C3C9C37 -9C349C329C3D9C369DDB9DD29DDE9DDA9DCB9DD09DDC9DD19DDF9DE99DD99DD8 -9DD69DF59DD59DDD9EB69EF09F359F339F329F429F6B9F959FA2513D52990000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000058E858E759725B4D5DD8882F5F4F62016203620465296525659666EB6B11 -6B126B0F6BCA705B705A7222738273817383767077D47C677C667E95826C863A -86408639863C8631863B863E88308832882E883389768974897389FE8B8C8B8E -8B8B8B888C458D198E988F648F6391BC94629455945D9457945E97C497C59800 -9A569A599B1E9B1F9B209C529C589C509C4A9C4D9C4B9C559C599C4C9C4E9DFB -9DF79DEF9DE39DEB9DF89DE49DF69DE19DEE9DE69DF29DF09DE29DEC9DF40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -70 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009DF39DE89DED9EC29ED09EF29EF39F069F1C9F389F379F369F439F4F9F71 -9F709F6E9F6F56D356CD5B4E5C6D652D66ED66EE6B13705F7061705D70607223 -74DB74E577D5793879B779B67C6A7E977F89826D8643883888378835884B8B94 -8B958E9E8E9F8EA08E9D91BE91BD91C2946B9468946996E597469743974797C7 -97E59A5E9AD59B599C639C679C669C629C5E9C609E029DFE9E079E039E069E05 -9E009E019E099DFF9DFD9E049EA09F1E9F469F749F759F7656D4652E65B80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -71 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B186B196B176B1A7062722672AA77D877D979397C697C6B7CF67E9A7E98 -7E9B7E9981E081E18646864786488979897A897C897B89FF8B988B998EA58EA4 -8EA3946E946D946F9471947397499872995F9C689C6E9C6D9E0B9E0D9E109E0F -9E129E119EA19EF59F099F479F789F7B9F7A9F79571E70667C6F883C8DB28EA6 -91C394749478947694759A609B2E9C749C739C719C759E149E139EF69F0A9FA4 -706870657CF7866A883E883D883F8B9E8C9C8EA98EC9974B9873987498CC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000996199AB9A649A669A679B249E159E179F4862076B1E7227864C8EA89482 -948094819A699A689E19864B8B9F94839C799EB776759A6B9C7A9E1D7069706A -72299EA49F7E9F499F988AF68AFC8C6B8C6D8C938CF48E448E318E348E428E39 -8E358F3B8F2F8F388F338FA88FA69075907490789072907C907A913491929320 -933692F89333932F932292FC932B9304931A9310932693219315932E931995BB -96A796A896AA96D5970E97119716970D9713970F975B975C9766979898300000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009838983B9837982D9839982499109928991E991B9921991A99ED99E299F1 -9AB89ABC9AFB9AED9B289B919D159D239D269D289D129D1B9ED89ED49F8D9F9C -512A511F5121513252F5568E5680569056855687568F58D558D358D158CE5B30 -5B2A5B245B7A5C375C685DBC5DBA5DBD5DB85E6B5F4C5FBD61C961C261C761E6 -61CB6232623464CE64CA64D864E064F064E664EC64F164E264ED6582658366D9 -66D66A806A946A846AA26A9C6ADB6AA36A7E6A976A906AA06B5C6BAE6BDA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C086FD86FF16FDF6FE06FDB6FE46FEB6FEF6F806FEC6FE16FE96FD56FEE -6FF071E771DF71EE71E671E571ED71EC71F471E0723572467370737274A974B0 -74A674A876467642764C76EA77B377AA77B077AC77A777AD77EF78F778FA78F4 -78EF790179A779AA7A577ABF7C077C0D7BFE7BF77C0C7BE07CE07CDC7CDE7CE2 -7CDF7CD97CDD7E2E7E3E7E467E377E327E437E2B7E3D7E317E457E417E347E39 -7E487E357E3F7E2F7F447FF37FFC807180728070806F807381C681C381BA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -75 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081C281C081BF81BD81C981BE81E88209827185AA8584857E859C85918594 -85AF859B858785A8858A85A6866787C087D187B387D287C687AB87BB87BA87C8 -87CB893B893689448938893D89AC8B0E8B178B198B1B8B0A8B208B1D8B048B10 -8C418C3F8C738CFA8CFD8CFC8CF88CFB8DA88E498E4B8E488E4A8F448F3E8F42 -8F458F3F907F907D9084908190829080913991A3919E919C934D938293289375 -934A9365934B9318937E936C935B9370935A935495CA95CB95CC95C895C60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -76 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000096B196B896D6971C971E97A097D3984698B699359A0199FF9BAE9BAB9BAA -9BAD9D3B9D3F9E8B9ECF9EDE9EDC9EDD9EDB9F3E9F4B53E2569556AE58D958D8 -5B385F5E61E3623364F464F264FE650664FA64FB64F765B766DC67266AB36AAC -6AC36ABB6AB86AC26AAE6AAF6B5F6B786BAF7009700B6FFE70066FFA7011700F -71FB71FC71FE71F87377737574A774BF751576567658765277BD77BF77BB77BC -790E79AE7A617A627A607AC47AC57C2B7C277C2A7C1E7C237C217CE77E540000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E557E5E7E5A7E617E527E597F487FF97FFB8077807681CD81CF820A85CF -85A985CD85D085C985B085BA85B987EF87EC87F287E0898689B289F48B288B39 -8B2C8B2B8C508D058E598E638E668E648E5F8E558EC08F498F4D908790839088 -91AB91AC91D09394938A939693A293B393AE93AC93B09398939A939795D495D6 -95D095D596E296DC96D996DB96DE972497A397A697AD97F9984D984F984C984E -985398BA993E993F993D992E99A59A0E9AC19B039B069B4F9B4E9B4D9BCA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -78 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009BC99BFD9BC89BC09D519D5D9D609EE09F159F2C513356A556A858DE58DF -58E25BF59F905EEC61F261F761F661F56500650F66E066DD6AE56ADD6ADA6AD3 -701B701F7028701A701D701570187206720D725872A27378737A74BD74CA74E3 -75877586765F766177C7791979B17A6B7A697C3E7C3F7C387C3D7C377C407E6B -7E6D7E797E697E6A7E737F857FB67FB97FB881D885E985DD85EA85D585E485E5 -85F787FB8805880D87F987FE8960895F8956895E8B418B5C8B588B498B5A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -79 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B4E8B4F8B468B598D088D0A8E7C8E728E878E768E6C8E7A8E748F548F4E -8FAD908A908B91B191AE93E193D193DF93C393C893DC93DD93D693E293CD93D8 -93E493D793E895DC96B496E3972A9727976197DC97FB985E9858985B98BC9945 -99499A169A199B0D9BE89BE79BD69BDB9D899D619D729D6A9D6C9E929E979E93 -9EB452F856B756B656B456BC58E45B405B435B7D5BF65DC961F861FA65186514 -651966E667276AEC703E703070327210737B74CF766276657926792A792C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000792B7AC77AF67C4C7C437C4D7CEF7CF08FAE7E7D7E7C7E827F4C800081DA -826685FB85F9861185FA8606860B8607860A88148815896489BA89F88B708B6C -8B668B6F8B5F8B6B8D0F8D0D8E898E818E858E8291B491CB9418940393FD95E1 -973098C49952995199A89A2B9A309A379A359C139C0D9E799EB59EE89F2F9F5F -9F639F615137513856C156C056C259145C6C5DCD61FC61FE651D651C659566E9 -6AFB6B046AFA6BB2704C721B72A774D674D4766977D37C507E8F7E8C7FBC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008617862D861A882388228821881F896A896C89BD8B748B778B7D8D138E8A -8E8D8E8B8F5F8FAF91BA942E94339435943A94389432942B95E2973897399732 -97FF9867986599579A459A439A409A3E9ACF9B549B519C2D9C259DAF9DB49DC2 -9DB89E9D9EEF9F199F5C9F669F67513C513B56C856CA56C95B7F5DD45DD25F4E -61FF65246B0A6B6170517058738074E4758A766E766C79B37C607C5F807E807D -81DF8972896F89FC8B808D168D178E918E938F619148944494519452973D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000973E97C397C1986B99559A559A4D9AD29B1A9C499C319C3E9C3B9DD39DD7 -9F349F6C9F6A9F9456CC5DD662006523652B652A66EC6B1074DA7ACA7C647C63 -7C657E937E967E9481E28638863F88318B8A9090908F9463946094649768986F -995C9A5A9A5B9A579AD39AD49AD19C549C579C569DE59E9F9EF456D158E9652C -705E7671767277D77F507F888836883988628B938B928B9682778D1B91C0946A -97429748974497C698709A5F9B229B589C5F9DF99DFA9E7C9E7D9F079F770000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009F725EF36B1670637C6C7C6E883B89C08EA191C1947294709871995E9AD6 -9B239ECC706477DA8B9A947797C99A629A657E9C8B9C8EAA91C5947D947E947C -9C779C789EF78C54947F9E1A72289A6A9B319E1B9E1E7C720000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/cp1250.enc b/src/runtime/tcl_library/encoding/cp1250.enc deleted file mode 100644 index f40b485e..00000000 --- a/src/runtime/tcl_library/encoding/cp1250.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1250, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0000201E2026202020210000203001602039015A0164017D0179 -000020182019201C201D202220132014000021220161203A015B0165017E017A -00A002C702D8014100A4010400A600A700A800A9015E00AB00AC00AD00AE017B -00B000B102DB014200B400B500B600B700B80105015F00BB013D02DD013E017C -015400C100C2010200C40139010600C7010C00C9011800CB011A00CD00CE010E -01100143014700D300D4015000D600D70158016E00DA017000DC00DD016200DF -015500E100E2010300E4013A010700E7010D00E9011900EB011B00ED00EE010F -01110144014800F300F4015100F600F70159016F00FA017100FC00FD016302D9 diff --git a/src/runtime/tcl_library/encoding/cp1251.enc b/src/runtime/tcl_library/encoding/cp1251.enc deleted file mode 100644 index f9513c29..00000000 --- a/src/runtime/tcl_library/encoding/cp1251.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1251, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -04020403201A0453201E20262020202120AC203004092039040A040C040B040F -045220182019201C201D202220132014000021220459203A045A045C045B045F -00A0040E045E040800A4049000A600A7040100A9040400AB00AC00AD00AE0407 -00B000B104060456049100B500B600B704512116045400BB0458040504550457 -0410041104120413041404150416041704180419041A041B041C041D041E041F -0420042104220423042404250426042704280429042A042B042C042D042E042F -0430043104320433043404350436043704380439043A043B043C043D043E043F -0440044104420443044404450446044704480449044A044B044C044D044E044F diff --git a/src/runtime/tcl_library/encoding/cp1252.enc b/src/runtime/tcl_library/encoding/cp1252.enc deleted file mode 100644 index b45a7f86..00000000 --- a/src/runtime/tcl_library/encoding/cp1252.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1252, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0192201E20262020202102C620300160203901520000017D0000 -000020182019201C201D20222013201402DC21220161203A01530000017E0178 -00A000A100A200A300A400A500A600A700A800A900AA00AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900BA00BB00BC00BD00BE00BF -00C000C100C200C300C400C500C600C700C800C900CA00CB00CC00CD00CE00CF -00D000D100D200D300D400D500D600D700D800D900DA00DB00DC00DD00DE00DF -00E000E100E200E300E400E500E600E700E800E900EA00EB00EC00ED00EE00EF -00F000F100F200F300F400F500F600F700F800F900FA00FB00FC00FD00FE00FF diff --git a/src/runtime/tcl_library/encoding/cp1253.enc b/src/runtime/tcl_library/encoding/cp1253.enc deleted file mode 100644 index dcc8084d..00000000 --- a/src/runtime/tcl_library/encoding/cp1253.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1253, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0192201E20262020202100002030000020390000000000000000 -000020182019201C201D202220132014000021220000203A0000000000000000 -00A00385038600A300A400A500A600A700A800A9000000AB00AC00AD00AE2015 -00B000B100B200B3038400B500B600B703880389038A00BB038C00BD038E038F -0390039103920393039403950396039703980399039A039B039C039D039E039F -03A003A1000003A303A403A503A603A703A803A903AA03AB03AC03AD03AE03AF -03B003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C203C303C403C503C603C703C803C903CA03CB03CC03CD03CE0000 diff --git a/src/runtime/tcl_library/encoding/cp1254.enc b/src/runtime/tcl_library/encoding/cp1254.enc deleted file mode 100644 index 4922f3c6..00000000 --- a/src/runtime/tcl_library/encoding/cp1254.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1254, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0192201E20262020202102C62030016020390152000000000000 -000020182019201C201D20222013201402DC21220161203A0153000000000178 -00A000A100A200A300A400A500A600A700A800A900AA00AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900BA00BB00BC00BD00BE00BF -00C000C100C200C300C400C500C600C700C800C900CA00CB00CC00CD00CE00CF -011E00D100D200D300D400D500D600D700D800D900DA00DB00DC0130015E00DF -00E000E100E200E300E400E500E600E700E800E900EA00EB00EC00ED00EE00EF -011F00F100F200F300F400F500F600F700F800F900FA00FB00FC0131015F00FF diff --git a/src/runtime/tcl_library/encoding/cp1255.enc b/src/runtime/tcl_library/encoding/cp1255.enc deleted file mode 100644 index 74ef0c1f..00000000 --- a/src/runtime/tcl_library/encoding/cp1255.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1255, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0192201E20262020202102C62030000020390000000000000000 -000020182019201C201D20222013201402DC21220000203A0000000000000000 -00A000A100A200A320AA00A500A600A700A800A900D700AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900F700BB00BC00BD00BE00BF -05B005B105B205B305B405B505B605B705B805B9000005BB05BC05BD05BE05BF -05C005C105C205C305F005F105F205F305F40000000000000000000000000000 -05D005D105D205D305D405D505D605D705D805D905DA05DB05DC05DD05DE05DF -05E005E105E205E305E405E505E605E705E805E905EA00000000200E200F0000 diff --git a/src/runtime/tcl_library/encoding/cp1256.enc b/src/runtime/tcl_library/encoding/cp1256.enc deleted file mode 100644 index a98762a0..00000000 --- a/src/runtime/tcl_library/encoding/cp1256.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1256, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC067E201A0192201E20262020202102C62030067920390152068606980688 -06AF20182019201C201D20222013201406A921220691203A0153200C200D06BA -00A0060C00A200A300A400A500A600A700A800A906BE00AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B9061B00BB00BC00BD00BE061F -06C1062106220623062406250626062706280629062A062B062C062D062E062F -063006310632063306340635063600D7063706380639063A0640064106420643 -00E0064400E2064506460647064800E700E800E900EA00EB0649064A00EE00EF -064B064C064D064E00F4064F065000F7065100F9065200FB00FC200E200F06D2 diff --git a/src/runtime/tcl_library/encoding/cp1257.enc b/src/runtime/tcl_library/encoding/cp1257.enc deleted file mode 100644 index 42c69053..00000000 --- a/src/runtime/tcl_library/encoding/cp1257.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1257, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0000201E2026202020210000203000002039000000A802C700B8 -000020182019201C201D202220132014000021220000203A000000AF02DB0000 -00A0000000A200A300A4000000A600A700D800A9015600AB00AC00AD00AE00C6 -00B000B100B200B300B400B500B600B700F800B9015700BB00BC00BD00BE00E6 -0104012E0100010600C400C501180112010C00C90179011601220136012A013B -01600143014500D3014C00D500D600D701720141015A016A00DC017B017D00DF -0105012F0101010700E400E501190113010D00E9017A011701230137012B013C -01610144014600F3014D00F500F600F701730142015B016B00FC017C017E02D9 diff --git a/src/runtime/tcl_library/encoding/cp1258.enc b/src/runtime/tcl_library/encoding/cp1258.enc deleted file mode 100644 index bbe2b12b..00000000 --- a/src/runtime/tcl_library/encoding/cp1258.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp1258, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC0000201A0192201E20262020202102C62030000020390152000000000000 -000020182019201C201D20222013201402DC21220000203A0153000000000178 -00A000A100A200A300A400A500A600A700A800A900AA00AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900BA00BB00BC00BD00BE00BF -00C000C100C2010200C400C500C600C700C800C900CA00CB030000CD00CE00CF -011000D1030900D300D401A000D600D700D800D900DA00DB00DC01AF030300DF -00E000E100E2010300E400E500E600E700E800E900EA00EB030100ED00EE00EF -011100F1032300F300F401A100F600F700F800F900FA00FB00FC01B020AB00FF diff --git a/src/runtime/tcl_library/encoding/cp437.enc b/src/runtime/tcl_library/encoding/cp437.enc deleted file mode 100644 index ecae4e65..00000000 --- a/src/runtime/tcl_library/encoding/cp437.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp437, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C5 -00C900E600C600F400F600F200FB00F900FF00D600DC00A200A300A520A70192 -00E100ED00F300FA00F100D100AA00BA00BF231000AC00BD00BC00A100AB00BB -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03B100DF039303C003A303C300B503C403A6039803A903B4221E03C603B52229 -226100B1226522642320232100F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp737.enc b/src/runtime/tcl_library/encoding/cp737.enc deleted file mode 100644 index 5b59661e..00000000 --- a/src/runtime/tcl_library/encoding/cp737.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp737, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -039103920393039403950396039703980399039A039B039C039D039E039F03A0 -03A103A303A403A503A603A703A803A903B103B203B303B403B503B603B703B8 -03B903BA03BB03BC03BD03BE03BF03C003C103C303C203C403C503C603C703C8 -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03C903AC03AD03AE03CA03AF03CC03CD03CB03CE038603880389038A038C038E -038F00B12265226403AA03AB00F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp775.enc b/src/runtime/tcl_library/encoding/cp775.enc deleted file mode 100644 index 71b65c32..00000000 --- a/src/runtime/tcl_library/encoding/cp775.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp775, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -010600FC00E9010100E4012300E501070142011301560157012B017900C400C5 -00C900E600C6014D00F6012200A2015A015B00D600DC00F800A300D800D700A4 -0100012A00F3017B017C017A201D00A600A900AE00AC00BD00BC014100AB00BB -259125922593250225240104010C01180116256325512557255D012E01602510 -25142534252C251C2500253C0172016A255A25542569256625602550256C017D -0105010D01190117012F01610173016B017E2518250C25882584258C25902580 -00D300DF014C014300F500D500B5014401360137013B013C0146011201452019 -00AD00B1201C00BE00B600A700F7201E00B0221900B700B900B300B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp850.enc b/src/runtime/tcl_library/encoding/cp850.enc deleted file mode 100644 index 4e7a90d7..00000000 --- a/src/runtime/tcl_library/encoding/cp850.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp850, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C5 -00C900E600C600F400F600F200FB00F900FF00D600DC00F800A300D800D70192 -00E100ED00F300FA00F100D100AA00BA00BF00AE00AC00BD00BC00A100AB00BB -2591259225932502252400C100C200C000A9256325512557255D00A200A52510 -25142534252C251C2500253C00E300C3255A25542569256625602550256C00A4 -00F000D000CA00CB00C8013100CD00CE00CF2518250C2588258400A600CC2580 -00D300DF00D400D200F500D500B500FE00DE00DA00DB00D900FD00DD00AF00B4 -00AD00B1201700BE00B600A700F700B800B000A800B700B900B300B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp852.enc b/src/runtime/tcl_library/encoding/cp852.enc deleted file mode 100644 index f34899ee..00000000 --- a/src/runtime/tcl_library/encoding/cp852.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp852, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E4016F010700E7014200EB0150015100EE017900C40106 -00C90139013A00F400F6013D013E015A015B00D600DC01640165014100D7010D -00E100ED00F300FA01040105017D017E0118011900AC017A010C015F00AB00BB -2591259225932502252400C100C2011A015E256325512557255D017B017C2510 -25142534252C251C2500253C01020103255A25542569256625602550256C00A4 -01110110010E00CB010F014700CD00CE011B2518250C258825840162016E2580 -00D300DF00D401430144014801600161015400DA0155017000FD00DD016300B4 -00AD02DD02DB02C702D800A700F700B800B000A802D901710158015925A000A0 diff --git a/src/runtime/tcl_library/encoding/cp855.enc b/src/runtime/tcl_library/encoding/cp855.enc deleted file mode 100644 index 4d58b86c..00000000 --- a/src/runtime/tcl_library/encoding/cp855.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp855, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0452040204530403045104010454040404550405045604060457040704580408 -04590409045A040A045B040B045C040C045E040E045F040F044E042E044A042A -0430041004310411044604260434041404350415044404240433041300AB00BB -259125922593250225240445042504380418256325512557255D043904192510 -25142534252C251C2500253C043A041A255A25542569256625602550256C00A4 -043B041B043C041C043D041D043E041E043F2518250C25882584041F044F2580 -042F044004200441042104420422044304230436041604320412044C042C2116 -00AD044B042B0437041704480428044D042D044904290447042700A725A000A0 diff --git a/src/runtime/tcl_library/encoding/cp857.enc b/src/runtime/tcl_library/encoding/cp857.enc deleted file mode 100644 index b42ed557..00000000 --- a/src/runtime/tcl_library/encoding/cp857.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp857, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE013100C400C5 -00C900E600C600F400F600F200FB00F9013000D600DC00F800A300D8015E015F -00E100ED00F300FA00F100D1011E011F00BF00AE00AC00BD00BC00A100AB00BB -2591259225932502252400C100C200C000A9256325512557255D00A200A52510 -25142534252C251C2500253C00E300C3255A25542569256625602550256C00A4 -00BA00AA00CA00CB00C8000000CD00CE00CF2518250C2588258400A600CC2580 -00D300DF00D400D200F500D500B5000000D700DA00DB00D900EC00FF00AF00B4 -00AD00B1000000BE00B600A700F700B800B000A800B700B900B300B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp860.enc b/src/runtime/tcl_library/encoding/cp860.enc deleted file mode 100644 index 871943b3..00000000 --- a/src/runtime/tcl_library/encoding/cp860.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp860, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E300E000C100E700EA00CA00E800CD00D400EC00C300C2 -00C900C000C800F400F500F200DA00F900CC00D500DC00A200A300D920A700D3 -00E100ED00F300FA00F100D100AA00BA00BF00D200AC00BD00BC00A100AB00BB -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03B100DF039303C003A303C300B503C403A6039803A903B4221E03C603B52229 -226100B1226522642320232100F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp861.enc b/src/runtime/tcl_library/encoding/cp861.enc deleted file mode 100644 index 3f8f605e..00000000 --- a/src/runtime/tcl_library/encoding/cp861.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp861, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E400E000E500E700EA00EB00E800D000F000DE00C400C5 -00C900E600C600F400F600FE00FB00DD00FD00D600DC00F800A300D820A70192 -00E100ED00F300FA00C100CD00D300DA00BF231000AC00BD00BC00A100AB00BB -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03B100DF039303C003A303C300B503C403A6039803A903B4221E03C603B52229 -226100B1226522642320232100F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp862.enc b/src/runtime/tcl_library/encoding/cp862.enc deleted file mode 100644 index 5f9d16cc..00000000 --- a/src/runtime/tcl_library/encoding/cp862.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp862, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -05D005D105D205D305D405D505D605D705D805D905DA05DB05DC05DD05DE05DF -05E005E105E205E305E405E505E605E705E805E905EA00A200A300A520A70192 -00E100ED00F300FA00F100D100AA00BA00BF231000AC00BD00BC00A100AB00BB -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03B100DF039303C003A303C300B503C403A6039803A903B4221E03C603B52229 -226100B1226522642320232100F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp863.enc b/src/runtime/tcl_library/encoding/cp863.enc deleted file mode 100644 index c8b8686f..00000000 --- a/src/runtime/tcl_library/encoding/cp863.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp863, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200C200E000B600E700EA00EB00E800EF00EE201700C000A7 -00C900C800CA00F400CB00CF00FB00F900A400D400DC00A200A300D900DB0192 -00A600B400F300FA00A800B800B300AF00CE231000AC00BD00BC00BE00AB00BB -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03B100DF039303C003A303C300B503C403A6039803A903B4221E03C603B52229 -226100B1226522642320232100F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp864.enc b/src/runtime/tcl_library/encoding/cp864.enc deleted file mode 100644 index dad7c206..00000000 --- a/src/runtime/tcl_library/encoding/cp864.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp864, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -00200021002200230024066A0026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00B000B72219221A259225002502253C2524252C251C25342510250C25142518 -03B2221E03C600B100BD00BC224800AB00BBFEF7FEF800000000FEFBFEFC0000 -00A000ADFE8200A300A4FE8400000000FE8EFE8FFE95FE99060CFE9DFEA1FEA5 -0660066106620663066406650666066706680669FED1061BFEB1FEB5FEB9061F -00A2FE80FE81FE83FE85FECAFE8BFE8DFE91FE93FE97FE9BFE9FFEA3FEA7FEA9 -FEABFEADFEAFFEB3FEB7FEBBFEBFFEC1FEC5FECBFECF00A600AC00F700D7FEC9 -0640FED3FED7FEDBFEDFFEE3FEE7FEEBFEEDFEEFFEF3FEBDFECCFECEFECDFEE1 -FE7D0651FEE5FEE9FEECFEF0FEF2FED0FED5FEF5FEF6FEDDFED9FEF125A00000 diff --git a/src/runtime/tcl_library/encoding/cp865.enc b/src/runtime/tcl_library/encoding/cp865.enc deleted file mode 100644 index 543da9c5..00000000 --- a/src/runtime/tcl_library/encoding/cp865.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp865, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C5 -00C900E600C600F400F600F200FB00F900FF00D600DC00F800A300D820A70192 -00E100ED00F300FA00F100D100AA00BA00BF231000AC00BD00BC00A100AB00A4 -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -03B100DF039303C003A303C300B503C403A6039803A903B4221E03C603B52229 -226100B1226522642320232100F7224800B0221900B7221A207F00B225A000A0 diff --git a/src/runtime/tcl_library/encoding/cp866.enc b/src/runtime/tcl_library/encoding/cp866.enc deleted file mode 100644 index b851cf5b..00000000 --- a/src/runtime/tcl_library/encoding/cp866.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp866, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0410041104120413041404150416041704180419041A041B041C041D041E041F -0420042104220423042404250426042704280429042A042B042C042D042E042F -0430043104320433043404350436043704380439043A043B043C043D043E043F -259125922593250225242561256225562555256325512557255D255C255B2510 -25142534252C251C2500253C255E255F255A25542569256625602550256C2567 -2568256425652559255825522553256B256A2518250C25882584258C25902580 -0440044104420443044404450446044704480449044A044B044C044D044E044F -040104510404045404070457040E045E00B0221900B7221A211600A425A000A0 diff --git a/src/runtime/tcl_library/encoding/cp869.enc b/src/runtime/tcl_library/encoding/cp869.enc deleted file mode 100644 index 4670826a..00000000 --- a/src/runtime/tcl_library/encoding/cp869.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp869, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000386000000B700AC00A620182019038820150389 -038A03AA038C00000000038E03AB00A9038F00B200B303AC00A303AD03AE03AF -03CA039003CC03CD039103920393039403950396039700BD0398039900AB00BB -25912592259325022524039A039B039C039D256325512557255D039E039F2510 -25142534252C251C2500253C03A003A1255A25542569256625602550256C03A3 -03A403A503A603A703A803A903B103B203B32518250C2588258403B403B52580 -03B603B703B803B903BA03BB03BC03BD03BE03BF03C003C103C303C203C40384 -00AD00B103C503C603C700A703C8038500B000A803C903CB03B003CE25A000A0 diff --git a/src/runtime/tcl_library/encoding/cp874.enc b/src/runtime/tcl_library/encoding/cp874.enc deleted file mode 100644 index e2e84338..00000000 --- a/src/runtime/tcl_library/encoding/cp874.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: cp874, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC000000000000000020260000000000000000000000000000000000000000 -000020182019201C201D20222013201400000000000000000000000000000000 -00A00E010E020E030E040E050E060E070E080E090E0A0E0B0E0C0E0D0E0E0E0F -0E100E110E120E130E140E150E160E170E180E190E1A0E1B0E1C0E1D0E1E0E1F -0E200E210E220E230E240E250E260E270E280E290E2A0E2B0E2C0E2D0E2E0E2F -0E300E310E320E330E340E350E360E370E380E390E3A00000000000000000E3F -0E400E410E420E430E440E450E460E470E480E490E4A0E4B0E4C0E4D0E4E0E4F -0E500E510E520E530E540E550E560E570E580E590E5A0E5B0000000000000000 diff --git a/src/runtime/tcl_library/encoding/cp932.enc b/src/runtime/tcl_library/encoding/cp932.enc deleted file mode 100644 index 0699000c..00000000 --- a/src/runtime/tcl_library/encoding/cp932.enc +++ /dev/null @@ -1,801 +0,0 @@ -# Encoding file: cp932, multi-byte -M -003F 0 46 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF61FF62FF63FF64FF65FF66FF67FF68FF69FF6AFF6BFF6CFF6DFF6EFF6F -FF70FF71FF72FF73FF74FF75FF76FF77FF78FF79FF7AFF7BFF7CFF7DFF7EFF7F -FF80FF81FF82FF83FF84FF85FF86FF87FF88FF89FF8AFF8BFF8CFF8DFF8EFF8F -FF90FF91FF92FF93FF94FF95FF96FF97FF98FF99FF9AFF9BFF9CFF9DFF9EFF9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -81 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -300030013002FF0CFF0E30FBFF1AFF1BFF1FFF01309B309C00B4FF4000A8FF3E -FFE3FF3F30FD30FE309D309E30034EDD30053006300730FC20152010FF0FFF3C -FF5E2225FF5C2026202520182019201C201DFF08FF0930143015FF3BFF3DFF5B -FF5D30083009300A300B300C300D300E300F30103011FF0BFF0D00B100D70000 -00F7FF1D2260FF1CFF1E22662267221E22342642264000B0203220332103FFE5 -FF04FFE0FFE1FF05FF03FF06FF0AFF2000A72606260525CB25CF25CE25C725C6 -25A125A025B325B225BD25BC203B301221922190219121933013000000000000 -000000000000000000000000000000002208220B2286228722822283222A2229 -0000000000000000000000000000000022272228FFE221D221D4220022030000 -0000000000000000000000000000000000000000222022A52312220222072261 -2252226A226B221A223D221D2235222B222C0000000000000000000000000000 -212B2030266F266D266A2020202100B6000000000000000025EF000000000000 -82 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000FF10 -FF11FF12FF13FF14FF15FF16FF17FF18FF190000000000000000000000000000 -FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2FFF30 -FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3A000000000000000000000000 -0000FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5A00000000000000003041 -30423043304430453046304730483049304A304B304C304D304E304F30503051 -30523053305430553056305730583059305A305B305C305D305E305F30603061 -30623063306430653066306730683069306A306B306C306D306E306F30703071 -30723073307430753076307730783079307A307B307C307D307E307F30803081 -30823083308430853086308730883089308A308B308C308D308E308F30903091 -3092309300000000000000000000000000000000000000000000000000000000 -83 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF30B0 -30B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF30C0 -30C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF30D0 -30D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF0000 -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000391 -03920393039403950396039703980399039A039B039C039D039E039F03A003A1 -03A303A403A503A603A703A803A90000000000000000000000000000000003B1 -03B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF03C003C1 -03C303C403C503C603C703C803C9000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -84 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -04100411041204130414041504010416041704180419041A041B041C041D041E -041F0420042104220423042404250426042704280429042A042B042C042D042E -042F000000000000000000000000000000000000000000000000000000000000 -04300431043204330434043504510436043704380439043A043B043C043D0000 -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000002500 -2502250C251025182514251C252C25242534253C25012503250F2513251B2517 -25232533252B253B254B2520252F25282537253F251D25302525253825420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -87 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2460246124622463246424652466246724682469246A246B246C246D246E246F -2470247124722473216021612162216321642165216621672168216900003349 -33143322334D331833273303333633513357330D33263323332B334A333B339C -339D339E338E338F33C433A100000000000000000000000000000000337B0000 -301D301F211633CD212132A432A532A632A732A8323132323239337E337D337C -22522261222B222E2211221A22A52220221F22BF22352229222A000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -88 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000004E9C -55165A03963F54C0611B632859F690228475831C7A5060AA63E16E2565ED8466 -82A69BF56893572765A162715B9B59D0867B98F47D627DBE9B8E62167C9F88B7 -5B895EB563096697684895C7978D674F4EE54F0A4F4D4F9D504956F2593759D4 -5A015C0960DF610F61706613690570BA754F757079FB7DAD7DEF80C3840E8863 -8B029055907A533B4E954EA557DF80B290C178EF4E0058F16EA290387A328328 -828B9C2F5141537054BD54E156E059FB5F1598F26DEB80E4852D000000000000 -89 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9662967096A097FB540B53F35B8770CF7FBD8FC296E8536F9D5C7ABA4E117893 -81FC6E26561855046B1D851A9C3B59E553A96D6674DC958F56424E91904B96F2 -834F990C53E155B65B305F71662066F368046C386CF36D29745B76C87A4E9834 -82F1885B8A6092ED6DB275AB76CA99C560A68B018D8A95B2698E53AD51860000 -5712583059445BB45EF6602863A963F46CBF6F14708E7114715971D5733F7E01 -827682D185979060925B9D1B586965BC6C5A752551F9592E59655F805FDC62BC -65FA6A2A6B276BB4738B7FC189569D2C9D0E9EC45CA16C96837B51045C4B61B6 -81C6687672614E594FFA537860696E297A4F97F34E0B53164EEE4F554F3D4FA1 -4F7352A053EF5609590F5AC15BB65BE179D16687679C67B66B4C6CB3706B73C2 -798D79BE7A3C7B8782B182DB8304837783EF83D387668AB256298CA88FE6904E -971E868A4FC45CE862117259753B81E582BD86FE8CC096C5991399D54ECB4F1A -89E356DE584A58CA5EFB5FEB602A6094606261D0621262D06539000000000000 -8A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9B41666668B06D777070754C76867D7582A587F9958B968E8C9D51F152BE5916 -54B35BB35D16616869826DAF788D84CB88578A7293A79AB86D6C99A886D957A3 -67FF86CE920E5283568754045ED362E164B9683C68386BBB737278BA7A6B899A -89D28D6B8F0390ED95A3969497695B665CB3697D984D984E639B7B206A2B0000 -6A7F68B69C0D6F5F5272559D607062EC6D3B6E076ED1845B89108F444E149C39 -53F6691B6A3A9784682A515C7AC384B291DC938C565B9D286822830584317CA5 -520882C574E64E7E4F8351A05BD2520A52D852E75DFB559A582A59E65B8C5B98 -5BDB5E725E7960A3611F616361BE63DB656267D1685368FA6B3E6B536C576F22 -6F976F4574B0751876E3770B7AFF7BA17C217DE97F367FF0809D8266839E89B3 -8ACC8CAB908494519593959195A2966597D3992882184E38542B5CB85DCC73A9 -764C773C5CA97FEB8D0B96C19811985498584F014F0E5371559C566857FA5947 -5B095BC45C905E0C5E7E5FCC63EE673A65D765E2671F68CB68C4000000000000 -8B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A5F5E306BC56C176C7D757F79485B637A007D005FBD898F8A188CB48D778ECC -8F1D98E29A0E9B3C4E80507D510059935B9C622F628064EC6B3A72A075917947 -7FA987FB8ABC8B7063AC83CA97A05409540355AB68546A588A70782767759ECD -53745BA2811A865090064E184E454EC74F1153CA54385BAE5F13602565510000 -673D6C426C726CE3707874037A767AAE7B087D1A7CFE7D6665E7725B53BB5C45 -5DE862D262E063196E20865A8A318DDD92F86F0179A69B5A4EA84EAB4EAC4F9B -4FA050D151477AF6517151F653545321537F53EB55AC58835CE15F375F4A602F -6050606D631F65596A4B6CC172C272ED77EF80F881058208854E90F793E197FF -99579A5A4EF051DD5C2D6681696D5C4066F26975738968507C8150C552E45747 -5DFE932665A46B236B3D7434798179BD7B4B7DCA82B983CC887F895F8B398FD1 -91D1541F92804E5D503653E5533A72D7739677E982E68EAF99C699C899D25177 -611A865E55B07A7A50765BD3904796854E326ADB91E75C515C48000000000000 -8C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63987A9F6C9397748F617AAA718A96887C8268177E706851936C52F2541B85AB -8A137FA48ECD90E15366888879414FC250BE521151445553572D73EA578B5951 -5F625F8460756176616761A963B2643A656C666F68426E1375667A3D7CFB7D4C -7D997E4B7F6B830E834A86CD8A088A638B668EFD981A9D8F82B88FCE9BE80000 -5287621F64836FC09699684150916B206C7A6F547A747D5088408A2367084EF6 -503950265065517C5238526355A7570F58055ACC5EFA61B261F862F36372691C -6A29727D72AC732E7814786F7D79770C80A9898B8B198CE28ED290639375967A -98559A139E785143539F53B35E7B5F266E1B6E90738473FE7D4382378A008AFA -96504E4E500B53E4547C56FA59D15B645DF15EAB5F276238654567AF6E5672D0 -7CCA88B480A180E183F0864E8A878DE8923796C798679F134E944E924F0D5348 -5449543E5A2F5F8C5FA1609F68A76A8E745A78818A9E8AA48B7791904E5E9BC9 -4EA44F7C4FAF501950165149516C529F52B952FE539A53E35411000000000000 -8D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -540E5589575157A2597D5B545B5D5B8F5DE55DE75DF75E785E835E9A5EB75F18 -6052614C629762D863A7653B6602664366F4676D6821689769CB6C5F6D2A6D69 -6E2F6E9D75327687786C7A3F7CE07D057D187D5E7DB18015800380AF80B18154 -818F822A8352884C88618B1B8CA28CFC90CA91759271783F92FC95A4964D0000 -980599999AD89D3B525B52AB53F7540858D562F76FE08C6A8F5F9EB9514B523B -544A56FD7A4091779D609ED273446F09817075115FFD60DA9AA872DB8FBC6B64 -98034ECA56F0576458BE5A5A606861C7660F6606683968B16DF775D57D3A826E -9B424E9B4F5053C955065D6F5DE65DEE67FB6C99747378028A50939688DF5750 -5EA7632B50B550AC518D670054C9585E59BB5BB05F69624D63A1683D6B736E08 -707D91C7728078157826796D658E7D3083DC88C18F09969B5264572867507F6A -8CA151B45742962A583A698A80B454B25D0E57FC78959DFA4F5C524A548B643E -6628671467F57A847B567D22932F685C9BAD7B395319518A5237000000000000 -8E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5BDF62F664AE64E6672D6BBA85A996D176909BD6634C93069BAB76BF66524E09 -509853C25C7160E864926563685F71E673CA75237B977E8286958B838CDB9178 -991065AC66AB6B8B4ED54ED44F3A4F7F523A53F853F255E356DB58EB59CB59C9 -59FF5B505C4D5E025E2B5FD7601D6307652F5B5C65AF65BD65E8679D6B620000 -6B7B6C0F7345794979C17CF87D197D2B80A2810281F389968A5E8A698A668A8C -8AEE8CC78CDC96CC98FC6B6F4E8B4F3C4F8D51505B575BFA6148630166426B21 -6ECB6CBB723E74BD75D478C1793A800C803381EA84948F9E6C509E7F5F0F8B58 -9D2B7AFA8EF85B8D96EB4E0353F157F759315AC95BA460896E7F6F0675BE8CEA -5B9F85007BE0507267F4829D5C61854A7E1E820E51995C0463688D66659C716E -793E7D1780058B1D8ECA906E86C790AA501F52FA5C3A6753707C7235914C91C8 -932B82E55BC25F3160F94E3B53D65B88624B67316B8A72E973E07A2E816B8DA3 -91529996511253D7546A5BFF63886A397DAC970056DA53CE5468000000000000 -8F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B975C315DDE4FEE610162FE6D3279C079CB7D427E4D7FD281ED821F84908846 -89728B908E748F2F9031914B916C96C6919C4EC04F4F514553415F93620E67D4 -6C416E0B73637E2691CD928353D459195BBF6DD1795D7E2E7C9B587E719F51FA -88538FF04FCA5CFB662577AC7AE3821C99FF51C65FAA65EC696F6B896DF30000 -6E966F6476FE7D145DE190759187980651E6521D6240669166D96E1A5EB67DD2 -7F7266F885AF85F78AF852A953D959735E8F5F90605592E4966450B7511F52DD -5320534753EC54E8554655315617596859BE5A3C5BB55C065C0F5C115C1A5E84 -5E8A5EE05F70627F628462DB638C63776607660C662D6676677E68A26A1F6A35 -6CBC6D886E096E58713C7126716775C77701785D7901796579F07AE07B117CA7 -7D39809683D6848B8549885D88F38A1F8A3C8A548A738C618CDE91A49266937E -9418969C97984E0A4E084E1E4E575197527057CE583458CC5B225E3860C564FE -676167566D4472B675737A6384B88B7291B89320563157F498FE000000000000 -90 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62ED690D6B9671ED7E548077827289E698DF87558FB15C3B4F384FE14FB55507 -5A205BDD5BE95FC3614E632F65B0664B68EE699B6D786DF1753375B9771F795E -79E67D3381E382AF85AA89AA8A3A8EAB8F9B903291DD97074EBA4EC152035875 -58EC5C0B751A5C3D814E8A0A8FC59663976D7B258ACF9808916256F353A80000 -9017543957825E2563A86C34708A77617C8B7FE088709042915493109318968F -745E9AC45D075D69657067A28DA896DB636E6749691983C5981796C088FE6F84 -647A5BF84E16702C755D662F51C4523652E259D35F8160276210653F6574661F -667468F268166B636E057272751F76DB7CBE805658F088FD897F8AA08A938ACB -901D91929752975965897A0E810696BB5E2D60DC621A65A56614679077F37A4D -7C4D7E3E810A8CAC8D648DE18E5F78A9520762D963A5644262988A2D7A837BC0 -8AAC96EA7D76820C87494ED95148534353605BA35C025C165DDD6226624764B0 -681368346CC96D456D1767D36F5C714E717D65CB7A7F7BAD7DDA000000000000 -91 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E4A7FA8817A821B823985A68A6E8CCE8DF59078907792AD929195839BAE524D -55846F387136516879857E5581B37CCE564C58515CA863AA66FE66FD695A72D9 -758F758E790E795679DF7C977D207D4486078A34963B90619F2050E7527553CC -53E2500955AA58EE594F723D5B8B5C64531D60E360F3635C6383633F63BB0000 -64CD65E966F95DE369CD69FD6F1571E54E8975E976F87A937CDF7DCF7D9C8061 -83498358846C84BC85FB88C58D709001906D9397971C9A1250CF5897618E81D3 -85358D0890204FC3507452475373606F6349675F6E2C8DB3901F4FD75C5E8CCA -65CF7D9A53528896517663C35B585B6B5C0A640D6751905C4ED6591A592A6C70 -8A51553E581559A560F0625367C182356955964099C49A284F5358065BFE8010 -5CB15E2F5F856020614B623466FF6CF06EDE80CE817F82D4888B8CB89000902E -968A9EDB9BDB4EE353F059277B2C918D984C9DF96EDD7027535355445B856258 -629E62D36CA26FEF74228A1794386FC18AFE833851E786F853EA000000000000 -92 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53E94F4690548FB0596A81315DFD7AEA8FBF68DA8C3772F89C486A3D8AB04E39 -53585606576662C563A265E66B4E6DE16E5B70AD77ED7AEF7BAA7DBB803D80C6 -86CB8A95935B56E358C75F3E65AD66966A806BB575378AC7502477E557305F1B -6065667A6C6075F47A1A7F6E81F48718904599B37BC9755C7AF97B5184C40000 -901079E97A9283365AE177404E2D4EF25B995FE062BD663C67F16CE8866B8877 -8A3B914E92F399D06A177026732A82E784578CAF4E01514651CB558B5BF55E16 -5E335E815F145F355F6B5FB461F2631166A2671D6F6E7252753A773A80748139 -817887768ABF8ADC8D858DF3929A957798029CE552C5635776F467156C8873CD -8CC393AE96736D25589C690E69CC8FFD939A75DB901A585A680263B469FB4F43 -6F2C67D88FBB85267DB49354693F6F70576A58F75B2C7D2C722A540A91E39DB4 -4EAD4F4E505C507552438C9E544858245B9A5E1D5E955EAD5EF75F1F608C62B5 -633A63D068AF6C407887798E7A0B7DE082478A028AE68E449013000000000000 -93 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -90B8912D91D89F0E6CE5645864E265756EF476847B1B906993D16EBA54F25FB9 -64A48F4D8FED92445178586B59295C555E976DFB7E8F751C8CBC8EE2985B70B9 -4F1D6BBF6FB1753096FB514E54105835585759AC5C605F926597675C6E21767B -83DF8CED901490FD934D7825783A52AA5EA6571F597460125012515A51AC0000 -51CD520055105854585859575B955CF65D8B60BC6295642D6771684368BC68DF -76D76DD86E6F6D9B706F71C85F5375D879777B497B547B527CD67D7152308463 -856985E48A0E8B048C468E0F9003900F94199676982D9A3095D850CD52D5540C -58025C0E61A7649E6D1E77B37AE580F48404905392855CE09D07533F5F975FB3 -6D9C7279776379BF7BE46BD272EC8AAD68036A6151F87A8169345C4A9CF682EB -5BC59149701E56785C6F60C765666C8C8C5A90419813545166C7920D594890A3 -51854E4D51EA85998B0E7058637A934B696299B47E047577535769608EDF96E3 -6C5D4E8C5C3C5F108FE953028CD1808986795EFF65E54E735165000000000000 -94 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59825C3F97EE4EFB598A5FCD8A8D6FE179B079625BE78471732B71B15E745FF5 -637B649A71C37C984E435EFC4E4B57DC56A260A96FC37D0D80FD813381BF8FB2 -899786A45DF4628A64AD898767776CE26D3E743678345A467F7582AD99AC4FF3 -5EC362DD63926557676F76C3724C80CC80BA8F29914D500D57F95A9268850000 -6973716472FD8CB758F28CE0966A9019877F79E477E784294F2F5265535A62CD -67CF6CCA767D7B947C95823685848FEB66DD6F2072067E1B83AB99C19EA651FD -7BB178727BB880877B486AE85E61808C75517560516B92626E8C767A91979AEA -4F107F70629C7B4F95A59CE9567A585986E496BC4F345224534A53CD53DB5E06 -642C6591677F6C3E6C4E724872AF73ED75547E41822C85E98CA97BC491C67169 -981298EF633D6669756A76E478D0854386EE532A5351542659835E875F7C60B2 -6249627962AB65906BD46CCC75B276AE789179D87DCB7F7780A588AB8AB98CBB -907F975E98DB6A0B7C3850995C3E5FAE67876BD8743577097F8E000000000000 -95 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9F3B67CA7A175339758B9AED5F66819D83F180985F3C5FC575627B46903C6867 -59EB5A9B7D10767E8B2C4FF55F6A6A196C376F0274E2796888688A558C795EDF -63CF75C579D282D7932892F2849C86ED9C2D54C15F6C658C6D5C70158CA78CD3 -983B654F74F64E0D4ED857E0592B5A665BCC51A85E035E9C6016627665770000 -65A7666E6D6E72367B268150819A82998B5C8CA08CE68D74961C96444FAE64AB -6B66821E8461856A90E85C01695398A8847A85574F0F526F5FA95E45670D798F -8179890789866DF55F1762556CB84ECF72699B925206543B567458B361A4626E -711A596E7C897CDE7D1B96F06587805E4E194F75517558405E635E735F0A67C4 -4E26853D9589965B7C73980150FB58C1765678A7522577A585117B86504F5909 -72477BC77DE88FBA8FD4904D4FBF52C95A295F0197AD4FDD821792EA57036355 -6B69752B88DC8F147A4252DF58936155620A66AE6BCD7C3F83E950234FF85305 -5446583159495B9D5CF05CEF5D295E9662B16367653E65B9670B000000000000 -96 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6CD56CE170F978327E2B80DE82B3840C84EC870289128A2A8C4A90A692D298FD -9CF39D6C4E4F4EA1508D5256574A59A85E3D5FD85FD9623F66B4671B67D068D2 -51927D2180AA81A88B008C8C8CBF927E96325420982C531750D5535C58A864B2 -6734726777667A4691E652C36CA16B8658005E4C5954672C7FFB51E176C60000 -646978E89B549EBB57CB59B96627679A6BCE54E969D95E55819C67959BAA67FE -9C52685D4EA64FE353C862B9672B6CAB8FC44FAD7E6D9EBF4E0761626E806F2B -85135473672A9B455DF37B955CAC5BC6871C6E4A84D17A14810859997C8D6C11 -772052D959227121725F77DB97279D61690B5A7F5A1851A5540D547D660E76DF -8FF792989CF459EA725D6EC5514D68C97DBF7DEC97629EBA64786A2183025984 -5B5F6BDB731B76F27DB280178499513267289ED976EE676252FF99055C24623B -7C7E8CB0554F60B67D0B958053014E5F51B6591C723A803691CE5F2577E25384 -5F797D0485AC8A338E8D975667F385AE9453610961086CB97652000000000000 -97 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8AED8F38552F4F51512A52C753CB5BA55E7D60A0618263D6670967DA6E676D8C -733673377531795088D58A98904A909190F596C4878D59154E884F594E0E8A89 -8F3F981050AD5E7C59965BB95EB863DA63FA64C166DC694A69D86D0B6EB67194 -75287AAF7F8A8000844984C989818B218E0A9065967D990A617E62916B320000 -6C836D747FCC7FFC6DC07F8587BA88F8676583B1983C96F76D1B7D61843D916A -4E7153755D506B046FEB85CD862D89A75229540F5C65674E68A87406748375E2 -88CF88E191CC96E296785F8B73877ACB844E63A0756552896D416E9C74097559 -786B7C9296867ADC9F8D4FB6616E65C5865C4E864EAE50DA4E2151CC5BEE6599 -68816DBC731F764277AD7A1C7CE7826F8AD2907C91CF96759818529B7DD1502B -539867976DCB71D0743381E88F2A96A39C579E9F746058416D997D2F985E4EE4 -4F364F8B51B752B15DBA601C73B2793C82D3923496B796F6970A9E979F6266A6 -6B74521752A370C888C25EC9604B61906F2371497C3E7DF4806F000000000000 -98 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -84EE9023932C54429B6F6AD370898CC28DEF973252B45A415ECA5F046717697C -69946D6A6F0F726272FC7BED8001807E874B90CE516D9E937984808B93328AD6 -502D548C8A716B6A8CC4810760D167A09DF24E994E989C108A6B85C185686900 -6E7E789781550000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000005F0C -4E104E154E2A4E314E364E3C4E3F4E424E564E584E824E858C6B4E8A82125F0D -4E8E4E9E4E9F4EA04EA24EB04EB34EB64ECE4ECD4EC44EC64EC24ED74EDE4EED -4EDF4EF74F094F5A4F304F5B4F5D4F574F474F764F884F8F4F984F7B4F694F70 -4F914F6F4F864F9651184FD44FDF4FCE4FD84FDB4FD14FDA4FD04FE44FE5501A -50285014502A502550054F1C4FF650215029502C4FFE4FEF5011500650435047 -6703505550505048505A5056506C50785080509A508550B450B2000000000000 -99 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50C950CA50B350C250D650DE50E550ED50E350EE50F950F55109510151025116 -51155114511A5121513A5137513C513B513F51405152514C515451627AF85169 -516A516E5180518256D8518C5189518F519151935195519651A451A651A251A9 -51AA51AB51B351B151B251B051B551BD51C551C951DB51E0865551E951ED0000 -51F051F551FE5204520B5214520E5227522A522E52335239524F5244524B524C -525E5254526A527452695273527F527D528D529452925271528852918FA88FA7 -52AC52AD52BC52B552C152CD52D752DE52E352E698ED52E052F352F552F852F9 -530653087538530D5310530F5315531A5323532F533153335338534053465345 -4E175349534D51D6535E5369536E5918537B53775382539653A053A653A553AE -53B053B653C37C1296D953DF66FC71EE53EE53E853ED53FA5401543D5440542C -542D543C542E54365429541D544E548F5475548E545F5471547754705492547B -5480547654845490548654C754A254B854A554AC54C454C854A8000000000000 -9A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54AB54C254A454BE54BC54D854E554E6550F551454FD54EE54ED54FA54E25539 -55405563554C552E555C55455556555755385533555D5599558054AF558A559F -557B557E5598559E55AE557C558355A9558755A855DA55C555DF55C455DC55E4 -55D4561455F7561655FE55FD561B55F9564E565071DF56345636563256380000 -566B5664562F566C566A56865680568A56A05694568F56A556AE56B656B456C2 -56BC56C156C356C056C856CE56D156D356D756EE56F9570056FF570457095708 -570B570D57135718571655C7571C572657375738574E573B5740574F576957C0 -57885761577F5789579357A057B357A457AA57B057C357C657D457D257D3580A -57D657E3580B5819581D587258215862584B58706BC05852583D5879588558B9 -589F58AB58BA58DE58BB58B858AE58C558D358D158D758D958D858E558DC58E4 -58DF58EF58FA58F958FB58FC58FD5902590A5910591B68A65925592C592D5932 -5938593E7AD259555950594E595A5958596259605967596C5969000000000000 -9B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59785981599D4F5E4FAB59A359B259C659E859DC598D59D959DA5A255A1F5A11 -5A1C5A095A1A5A405A6C5A495A355A365A625A6A5A9A5ABC5ABE5ACB5AC25ABD -5AE35AD75AE65AE95AD65AFA5AFB5B0C5B0B5B165B325AD05B2A5B365B3E5B43 -5B455B405B515B555B5A5B5B5B655B695B705B735B755B7865885B7A5B800000 -5B835BA65BB85BC35BC75BC95BD45BD05BE45BE65BE25BDE5BE55BEB5BF05BF6 -5BF35C055C075C085C0D5C135C205C225C285C385C395C415C465C4E5C535C50 -5C4F5B715C6C5C6E4E625C765C795C8C5C915C94599B5CAB5CBB5CB65CBC5CB7 -5CC55CBE5CC75CD95CE95CFD5CFA5CED5D8C5CEA5D0B5D155D175D5C5D1F5D1B -5D115D145D225D1A5D195D185D4C5D525D4E5D4B5D6C5D735D765D875D845D82 -5DA25D9D5DAC5DAE5DBD5D905DB75DBC5DC95DCD5DD35DD25DD65DDB5DEB5DF2 -5DF55E0B5E1A5E195E115E1B5E365E375E445E435E405E4E5E575E545E5F5E62 -5E645E475E755E765E7A9EBC5E7F5EA05EC15EC25EC85ED05ECF000000000000 -9C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5ED65EE35EDD5EDA5EDB5EE25EE15EE85EE95EEC5EF15EF35EF05EF45EF85EFE -5F035F095F5D5F5C5F0B5F115F165F295F2D5F385F415F485F4C5F4E5F2F5F51 -5F565F575F595F615F6D5F735F775F835F825F7F5F8A5F885F915F875F9E5F99 -5F985FA05FA85FAD5FBC5FD65FFB5FE45FF85FF15FDD60B35FFF602160600000 -601960106029600E6031601B6015602B6026600F603A605A6041606A6077605F -604A6046604D6063604360646042606C606B60596081608D60E76083609A6084 -609B60966097609260A7608B60E160B860E060D360B45FF060BD60C660B560D8 -614D6115610660F660F7610060F460FA6103612160FB60F1610D610E6147613E -61286127614A613F613C612C6134613D614261446173617761586159615A616B -6174616F61656171615F615D6153617561996196618761AC6194619A618A6191 -61AB61AE61CC61CA61C961F761C861C361C661BA61CB7F7961CD61E661E361F6 -61FA61F461FF61FD61FC61FE620062086209620D620C6214621B000000000000 -9D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -621E6221622A622E6230623262336241624E625E6263625B62606268627C6282 -6289627E62926293629662D46283629462D762D162BB62CF62FF62C664D462C8 -62DC62CC62CA62C262C7629B62C9630C62EE62F163276302630862EF62F56350 -633E634D641C634F6396638E638063AB637663A3638F6389639F63B5636B0000 -636963BE63E963C063C663E363C963D263F663C4641664346406641364266436 -651D64176428640F6467646F6476644E652A6495649364A564A9648864BC64DA -64D264C564C764BB64D864C264F164E7820964E064E162AC64E364EF652C64F6 -64F464F264FA650064FD6518651C650565246523652B65346535653765366538 -754B654865566555654D6558655E655D65726578658265838B8A659B659F65AB -65B765C365C665C165C465CC65D265DB65D965E065E165F16772660A660365FB -6773663566366634661C664F664466496641665E665D666466676668665F6662 -667066836688668E668966846698669D66C166B966C966BE66BC000000000000 -9E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66C466B866D666DA66E0663F66E666E966F066F566F7670F6716671E67266727 -9738672E673F67366741673867376746675E67606759676367646789677067A9 -677C676A678C678B67A667A1678567B767EF67B467EC67B367E967B867E467DE -67DD67E267EE67B967CE67C667E76A9C681E684668296840684D6832684E0000 -68B3682B685968636877687F689F688F68AD6894689D689B68836AAE68B96874 -68B568A068BA690F688D687E690168CA690868D86922692668E1690C68CD68D4 -68E768D569366912690468D768E3692568F968E068EF6928692A691A69236921 -68C669796977695C6978696B6954697E696E69396974693D695969306961695E -695D6981696A69B269AE69D069BF69C169D369BE69CE5BE869CA69DD69BB69C3 -69A76A2E699169A0699C699569B469DE69E86A026A1B69FF6B0A69F969F269E7 -6A0569B16A1E69ED6A1469EB6A0A6A126AC16A236A136A446A0C6A726A366A78 -6A476A626A596A666A486A386A226A906A8D6AA06A846AA26AA3000000000000 -9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A9786176ABB6AC36AC26AB86AB36AAC6ADE6AD16ADF6AAA6ADA6AEA6AFB6B05 -86166AFA6B126B169B316B1F6B386B3776DC6B3998EE6B476B436B496B506B59 -6B546B5B6B5F6B616B786B796B7F6B806B846B836B8D6B986B956B9E6BA46BAA -6BAB6BAF6BB26BB16BB36BB76BBC6BC66BCB6BD36BDF6BEC6BEB6BF36BEF0000 -9EBE6C086C136C146C1B6C246C236C5E6C556C626C6A6C826C8D6C9A6C816C9B -6C7E6C686C736C926C906CC46CF16CD36CBD6CD76CC56CDD6CAE6CB16CBE6CBA -6CDB6CEF6CD96CEA6D1F884D6D366D2B6D3D6D386D196D356D336D126D0C6D63 -6D936D646D5A6D796D596D8E6D956FE46D856DF96E156E0A6DB56DC76DE66DB8 -6DC66DEC6DDE6DCC6DE86DD26DC56DFA6DD96DE46DD56DEA6DEE6E2D6E6E6E2E -6E196E726E5F6E3E6E236E6B6E2B6E766E4D6E1F6E436E3A6E4E6E246EFF6E1D -6E386E826EAA6E986EC96EB76ED36EBD6EAF6EC46EB26ED46ED56E8F6EA56EC2 -6E9F6F416F11704C6EEC6EF86EFE6F3F6EF26F316EEF6F326ECC000000000000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F3E6F136EF76F866F7A6F786F816F806F6F6F5B6FF36F6D6F826F7C6F586F8E -6F916FC26F666FB36FA36FA16FA46FB96FC66FAA6FDF6FD56FEC6FD46FD86FF1 -6FEE6FDB7009700B6FFA70117001700F6FFE701B701A6F74701D7018701F7030 -703E7032705170637099709270AF70F170AC70B870B370AE70DF70CB70DD0000 -70D9710970FD711C711971657155718871667162714C7156716C718F71FB7184 -719571A871AC71D771B971BE71D271C971D471CE71E071EC71E771F571FC71F9 -71FF720D7210721B7228722D722C72307232723B723C723F72407246724B7258 -7274727E7282728172877292729672A272A772B972B272C372C672C472CE72D2 -72E272E072E172F972F7500F7317730A731C7316731D7334732F73297325733E -734E734F9ED87357736A7368737073787375737B737A73C873B373CE73BB73C0 -73E573EE73DE74A27405746F742573F87432743A7455743F745F74597441745C -746974707463746A7476747E748B749E74A774CA74CF74D473F1000000000000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74E074E374E774E974EE74F274F074F174F874F7750475037505750C750E750D -75157513751E7526752C753C7544754D754A7549755B7546755A756975647567 -756B756D75787576758675877574758A758975827594759A759D75A575A375C2 -75B375C375B575BD75B875BC75B175CD75CA75D275D975E375DE75FE75FF0000 -75FC760175F075FA75F275F3760B760D7609761F762776207621762276247634 -7630763B764776487646765C76587661766276687669766A7667766C76707672 -76767678767C768076837688768B768E769676937699769A76B076B476B876B9 -76BA76C276CD76D676D276DE76E176E576E776EA862F76FB7708770777047729 -7724771E77257726771B773777387747775A7768776B775B7765777F777E7779 -778E778B779177A0779E77B077B677B977BF77BC77BD77BB77C777CD77D777DA -77DC77E377EE77FC780C781279267820792A7845788E78747886787C789A788C -78A378B578AA78AF78D178C678CB78D478BE78BC78C578CA78EC000000000000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -78E778DA78FD78F47907791279117919792C792B794079607957795F795A7955 -7953797A797F798A799D79A79F4B79AA79AE79B379B979BA79C979D579E779EC -79E179E37A087A0D7A187A197A207A1F79807A317A3B7A3E7A377A437A577A49 -7A617A627A699F9D7A707A797A7D7A887A977A957A987A967AA97AC87AB00000 -7AB67AC57AC47ABF90837AC77ACA7ACD7ACF7AD57AD37AD97ADA7ADD7AE17AE2 -7AE67AED7AF07B027B0F7B0A7B067B337B187B197B1E7B357B287B367B507B7A -7B047B4D7B0B7B4C7B457B757B657B747B677B707B717B6C7B6E7B9D7B987B9F -7B8D7B9C7B9A7B8B7B927B8F7B5D7B997BCB7BC17BCC7BCF7BB47BC67BDD7BE9 -7C117C147BE67BE57C607C007C077C137BF37BF77C177C0D7BF67C237C277C2A -7C1F7C377C2B7C3D7C4C7C437C547C4F7C407C507C587C5F7C647C567C657C6C -7C757C837C907CA47CAD7CA27CAB7CA17CA87CB37CB27CB17CAE7CB97CBD7CC0 -7CC57CC27CD87CD27CDC7CE29B3B7CEF7CF27CF47CF67CFA7D06000000000000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D027D1C7D157D0A7D457D4B7D2E7D327D3F7D357D467D737D567D4E7D727D68 -7D6E7D4F7D637D937D897D5B7D8F7D7D7D9B7DBA7DAE7DA37DB57DC77DBD7DAB -7E3D7DA27DAF7DDC7DB87D9F7DB07DD87DDD7DE47DDE7DFB7DF27DE17E057E0A -7E237E217E127E317E1F7E097E0B7E227E467E667E3B7E357E397E437E370000 -7E327E3A7E677E5D7E567E5E7E597E5A7E797E6A7E697E7C7E7B7E837DD57E7D -8FAE7E7F7E887E897E8C7E927E907E937E947E967E8E7E9B7E9C7F387F3A7F45 -7F4C7F4D7F4E7F507F517F557F547F587F5F7F607F687F697F677F787F827F86 -7F837F887F877F8C7F947F9E7F9D7F9A7FA37FAF7FB27FB97FAE7FB67FB88B71 -7FC57FC67FCA7FD57FD47FE17FE67FE97FF37FF998DC80068004800B80128018 -8019801C80218028803F803B804A804680528058805A805F8062806880738072 -807080768079807D807F808480868085809B8093809A80AD519080AC80DB80E5 -80D980DD80C480DA80D6810980EF80F1811B81298123812F814B000000000000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -968B8146813E8153815180FC8171816E81658166817481838188818A81808182 -81A0819581A481A3815F819381A981B081B581BE81B881BD81C081C281BA81C9 -81CD81D181D981D881C881DA81DF81E081E781FA81FB81FE8201820282058207 -820A820D821082168229822B82388233824082598258825D825A825F82640000 -82628268826A826B822E827182778278827E828D829282AB829F82BB82AC82E1 -82E382DF82D282F482F382FA8393830382FB82F982DE830682DC830982D98335 -83348316833283318340833983508345832F832B831783188385839A83AA839F -83A283968323838E8387838A837C83B58373837583A0838983A883F4841383EB -83CE83FD840383D8840B83C183F7840783E083F2840D8422842083BD84388506 -83FB846D842A843C855A84848477846B84AD846E848284698446842C846F8479 -843584CA846284B984BF849F84D984CD84BB84DA84D084C184C684D684A18521 -84FF84F485178518852C851F8515851484FC8540856385588548000000000000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -85418602854B8555858085A485888591858A85A8856D8594859B85EA8587859C -8577857E859085C985BA85CF85B985D085D585DD85E585DC85F9860A8613860B -85FE85FA86068622861A8630863F864D4E558654865F86678671869386A386A9 -86AA868B868C86B686AF86C486C686B086C9882386AB86D486DE86E986EC0000 -86DF86DB86EF8712870687088700870386FB87118709870D86F9870A8734873F -8737873B87258729871A8760875F8778874C874E877487578768876E87598753 -8763876A880587A2879F878287AF87CB87BD87C087D096D687AB87C487B387C7 -87C687BB87EF87F287E0880F880D87FE87F687F7880E87D28811881688158822 -88218831883688398827883B8844884288528859885E8862886B8881887E889E -8875887D88B5887288828897889288AE889988A2888D88A488B088BF88B188C3 -88C488D488D888D988DD88F9890288FC88F488E888F28904890C890A89138943 -891E8925892A892B89418944893B89368938894C891D8960895E000000000000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89668964896D896A896F89748977897E89838988898A8993899889A189A989A6 -89AC89AF89B289BA89BD89BF89C089DA89DC89DD89E789F489F88A038A168A10 -8A0C8A1B8A1D8A258A368A418A5B8A528A468A488A7C8A6D8A6C8A628A858A82 -8A848AA88AA18A918AA58AA68A9A8AA38AC48ACD8AC28ADA8AEB8AF38AE70000 -8AE48AF18B148AE08AE28AF78ADE8ADB8B0C8B078B1A8AE18B168B108B178B20 -8B3397AB8B268B2B8B3E8B288B418B4C8B4F8B4E8B498B568B5B8B5A8B6B8B5F -8B6C8B6F8B748B7D8B808B8C8B8E8B928B938B968B998B9A8C3A8C418C3F8C48 -8C4C8C4E8C508C558C628C6C8C788C7A8C828C898C858C8A8C8D8C8E8C948C7C -8C98621D8CAD8CAA8CBD8CB28CB38CAE8CB68CC88CC18CE48CE38CDA8CFD8CFA -8CFB8D048D058D0A8D078D0F8D0D8D109F4E8D138CCD8D148D168D678D6D8D71 -8D738D818D998DC28DBE8DBA8DCF8DDA8DD68DCC8DDB8DCB8DEA8DEB8DDF8DE3 -8DFC8E088E098DFF8E1D8E1E8E108E1F8E428E358E308E348E4A000000000000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E478E498E4C8E508E488E598E648E608E2A8E638E558E768E728E7C8E818E87 -8E858E848E8B8E8A8E938E918E948E998EAA8EA18EAC8EB08EC68EB18EBE8EC5 -8EC88ECB8EDB8EE38EFC8EFB8EEB8EFE8F0A8F058F158F128F198F138F1C8F1F -8F1B8F0C8F268F338F3B8F398F458F428F3E8F4C8F498F468F4E8F578F5C0000 -8F628F638F648F9C8F9F8FA38FAD8FAF8FB78FDA8FE58FE28FEA8FEF90878FF4 -90058FF98FFA901190159021900D901E9016900B90279036903590398FF8904F -905090519052900E9049903E90569058905E9068906F907696A890729082907D -90819080908A9089908F90A890AF90B190B590E290E4624890DB910291129119 -91329130914A9156915891639165916991739172918B9189918291A291AB91AF -91AA91B591B491BA91C091C191C991CB91D091D691DF91E191DB91FC91F591F6 -921E91FF9214922C92159211925E925792459249926492489295923F924B9250 -929C92969293929B925A92CF92B992B792E9930F92FA9344932E000000000000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -93199322931A9323933A9335933B935C9360937C936E935693B093AC93AD9394 -93B993D693D793E893E593D893C393DD93D093C893E4941A9414941394039407 -94109436942B94359421943A944194529444945B94609462945E946A92299470 -94759477947D945A947C947E9481947F95829587958A95949596959895990000 -95A095A895A795AD95BC95BB95B995BE95CA6FF695C395CD95CC95D595D495D6 -95DC95E195E595E296219628962E962F9642964C964F964B9677965C965E965D -965F96669672966C968D96989695969796AA96A796B196B296B096B496B696B8 -96B996CE96CB96C996CD894D96DC970D96D596F99704970697089713970E9711 -970F971697199724972A97309739973D973E97449746974897429749975C9760 -97649766976852D2976B977197799785977C9781977A9786978B978F9790979C -97A897A697A397B397B497C397C697C897CB97DC97ED9F4F97F27ADF97F697F5 -980F980C9838982498219837983D9846984F984B986B986F9870000000000000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -98719874987398AA98AF98B198B698C498C398C698E998EB9903990999129914 -99189921991D991E99249920992C992E993D993E9942994999459950994B9951 -9952994C99559997999899A599AD99AE99BC99DF99DB99DD99D899D199ED99EE -99F199F299FB99F89A019A0F9A0599E29A199A2B9A379A459A429A409A430000 -9A3E9A559A4D9A5B9A579A5F9A629A659A649A699A6B9A6A9AAD9AB09ABC9AC0 -9ACF9AD19AD39AD49ADE9ADF9AE29AE39AE69AEF9AEB9AEE9AF49AF19AF79AFB -9B069B189B1A9B1F9B229B239B259B279B289B299B2A9B2E9B2F9B329B449B43 -9B4F9B4D9B4E9B519B589B749B939B839B919B969B979B9F9BA09BA89BB49BC0 -9BCA9BB99BC69BCF9BD19BD29BE39BE29BE49BD49BE19C3A9BF29BF19BF09C15 -9C149C099C139C0C9C069C089C129C0A9C049C2E9C1B9C259C249C219C309C47 -9C329C469C3E9C5A9C609C679C769C789CE79CEC9CF09D099D089CEB9D039D06 -9D2A9D269DAF9D239D1F9D449D159D129D419D3F9D3E9D469D48000000000000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9D5D9D5E9D649D519D509D599D729D899D879DAB9D6F9D7A9D9A9DA49DA99DB2 -9DC49DC19DBB9DB89DBA9DC69DCF9DC29DD99DD39DF89DE69DED9DEF9DFD9E1A -9E1B9E1E9E759E799E7D9E819E889E8B9E8C9E929E959E919E9D9EA59EA99EB8 -9EAA9EAD97619ECC9ECE9ECF9ED09ED49EDC9EDE9EDD9EE09EE59EE89EEF0000 -9EF49EF69EF79EF99EFB9EFC9EFD9F079F0876B79F159F219F2C9F3E9F4A9F52 -9F549F639F5F9F609F619F669F679F6C9F6A9F779F729F769F959F9C9FA0582F -69C79059746451DC719900000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E8A891C9348928884DC4FC970BB663168C892F966FB5F454E284EE14EFC4F00 -4F034F394F564F924F8A4F9A4F944FCD504050224FFF501E5046507050425094 -50F450D8514A5164519D51BE51EC5215529C52A652C052DB5300530753245372 -539353B253DDFA0E549C548A54A954FF55865759576557AC57C857C7FA0F0000 -FA10589E58B2590B5953595B595D596359A459BA5B565BC0752F5BD85BEC5C1E -5CA65CBA5CF55D275D53FA115D425D6D5DB85DB95DD05F215F345F675FB75FDE -605D6085608A60DE60D5612060F26111613761306198621362A663F56460649D -64CE654E66006615663B6609662E661E6624666566576659FA126673669966A0 -66B266BF66FA670EF929676667BB685267C06801684468CFFA136968FA146998 -69E26A306A6B6A466A736A7E6AE26AE46BD66C3F6C5C6C866C6F6CDA6D046D87 -6D6F6D966DAC6DCF6DF86DF26DFC6E396E5C6E276E3C6EBF6F886FB56FF57005 -70077028708570AB710F7104715C71467147FA1571C171FE72B1000000000000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72BE7324FA16737773BD73C973D673E373D2740773F57426742A7429742E7462 -7489749F7501756F7682769C769E769B76A6FA17774652AF7821784E7864787A -7930FA18FA19FA1A7994FA1B799B7AD17AE7FA1C7AEB7B9EFA1D7D487D5C7DB7 -7DA07DD67E527F477FA1FA1E83018362837F83C783F6844884B4855385590000 -856BFA1F85B0FA20FA21880788F58A128A378A798AA78ABE8ADFFA228AF68B53 -8B7F8CF08CF48D128D76FA238ECFFA24FA25906790DEFA269115912791DA91D7 -91DE91ED91EE91E491E592069210920A923A9240923C924E9259925192399267 -92A79277927892E792D792D992D0FA2792D592E092D39325932192FBFA28931E -92FF931D93029370935793A493C693DE93F89431944594489592F9DCFA29969D -96AF9733973B9743974D974F9751975598579865FA2AFA2B9927FA2C999E9A4E -9AD99ADC9B759B729B8F9BB19BBB9C009D709D6BFA2D9E199ED1000000002170 -217121722173217421752176217721782179FFE2FFE4FF07FF02000000000000 -FA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2170217121722173217421752176217721782179216021612162216321642165 -2166216721682169FFE2FFE4FF07FF0232312116212122357E8A891C93489288 -84DC4FC970BB663168C892F966FB5F454E284EE14EFC4F004F034F394F564F92 -4F8A4F9A4F944FCD504050224FFF501E504650705042509450F450D8514A0000 -5164519D51BE51EC5215529C52A652C052DB5300530753245372539353B253DD -FA0E549C548A54A954FF55865759576557AC57C857C7FA0FFA10589E58B2590B -5953595B595D596359A459BA5B565BC0752F5BD85BEC5C1E5CA65CBA5CF55D27 -5D53FA115D425D6D5DB85DB95DD05F215F345F675FB75FDE605D6085608A60DE -60D5612060F26111613761306198621362A663F56460649D64CE654E66006615 -663B6609662E661E6624666566576659FA126673669966A066B266BF66FA670E -F929676667BB685267C06801684468CFFA136968FA14699869E26A306A6B6A46 -6A736A7E6AE26AE46BD66C3F6C5C6C866C6F6CDA6D046D876D6F000000000000 -FB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D966DAC6DCF6DF86DF26DFC6E396E5C6E276E3C6EBF6F886FB56FF570057007 -7028708570AB710F7104715C71467147FA1571C171FE72B172BE7324FA167377 -73BD73C973D673E373D2740773F57426742A7429742E74627489749F7501756F -7682769C769E769B76A6FA17774652AF7821784E7864787A7930FA18FA190000 -FA1A7994FA1B799B7AD17AE7FA1C7AEB7B9EFA1D7D487D5C7DB77DA07DD67E52 -7F477FA1FA1E83018362837F83C783F6844884B485538559856BFA1F85B0FA20 -FA21880788F58A128A378A798AA78ABE8ADFFA228AF68B538B7F8CF08CF48D12 -8D76FA238ECFFA24FA25906790DEFA269115912791DA91D791DE91ED91EE91E4 -91E592069210920A923A9240923C924E925992519239926792A79277927892E7 -92D792D992D0FA2792D592E092D39325932192FBFA28931E92FF931D93029370 -935793A493C693DE93F89431944594489592F9DCFA29969D96AF9733973B9743 -974D974F9751975598579865FA2AFA2B9927FA2C999E9A4E9AD9000000000000 -FC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9ADC9B759B729B8F9BB19BBB9C009D709D6BFA2D9E199ED10000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -R -8160 301C FF5E -8161 2016 2225 -817C 2212 FF0D -8191 00A2 FFE0 -8192 00A3 FFE1 -81CA 00AC FFE2 -81BE 222a -81BF 2229 -81DA 2220 -81DB 22a5 -81DF 2261 -81E0 2252 -81E3 221a -81E6 2235 -81E7 222b diff --git a/src/runtime/tcl_library/encoding/cp936.enc b/src/runtime/tcl_library/encoding/cp936.enc deleted file mode 100644 index 37bcc80d..00000000 --- a/src/runtime/tcl_library/encoding/cp936.enc +++ /dev/null @@ -1,2162 +0,0 @@ -# Encoding file: cp936, multi-byte -M -003F 0 127 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -20AC000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -81 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E024E044E054E064E0F4E124E174E1F4E204E214E234E264E294E2E4E2F4E31 -4E334E354E374E3C4E404E414E424E444E464E4A4E514E554E574E5A4E5B4E62 -4E634E644E654E674E684E6A4E6B4E6C4E6D4E6E4E6F4E724E744E754E764E77 -4E784E794E7A4E7B4E7C4E7D4E7F4E804E814E824E834E844E854E874E8A0000 -4E904E964E974E994E9C4E9D4E9E4EA34EAA4EAF4EB04EB14EB44EB64EB74EB8 -4EB94EBC4EBD4EBE4EC84ECC4ECF4ED04ED24EDA4EDB4EDC4EE04EE24EE64EE7 -4EE94EED4EEE4EEF4EF14EF44EF84EF94EFA4EFC4EFE4F004F024F034F044F05 -4F064F074F084F0B4F0C4F124F134F144F154F164F1C4F1D4F214F234F284F29 -4F2C4F2D4F2E4F314F334F354F374F394F3B4F3E4F3F4F404F414F424F444F45 -4F474F484F494F4A4F4B4F4C4F524F544F564F614F624F664F684F6A4F6B4F6D -4F6E4F714F724F754F774F784F794F7A4F7D4F804F814F824F854F864F874F8A -4F8C4F8E4F904F924F934F954F964F984F994F9A4F9C4F9E4F9F4FA14FA20000 -82 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4FA44FAB4FAD4FB04FB14FB24FB34FB44FB64FB74FB84FB94FBA4FBB4FBC4FBD -4FBE4FC04FC14FC24FC64FC74FC84FC94FCB4FCC4FCD4FD24FD34FD44FD54FD6 -4FD94FDB4FE04FE24FE44FE54FE74FEB4FEC4FF04FF24FF44FF54FF64FF74FF9 -4FFB4FFC4FFD4FFF5000500150025003500450055006500750085009500A0000 -500B500E501050115013501550165017501B501D501E50205022502350245027 -502B502F5030503150325033503450355036503750385039503B503D503F5040 -504150425044504550465049504A504B504D5050505150525053505450565057 -50585059505B505D505E505F506050615062506350645066506750685069506A -506B506D506E506F50705071507250735074507550785079507A507C507D5081 -508250835084508650875089508A508B508C508E508F50905091509250935094 -50955096509750985099509A509B509C509D509E509F50A050A150A250A450A6 -50AA50AB50AD50AE50AF50B050B150B350B450B550B650B750B850B950BC0000 -83 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50BD50BE50BF50C050C150C250C350C450C550C650C750C850C950CA50CB50CC -50CD50CE50D050D150D250D350D450D550D750D850D950DB50DC50DD50DE50DF -50E050E150E250E350E450E550E850E950EA50EB50EF50F050F150F250F450F6 -50F750F850F950FA50FC50FD50FE50FF51005101510251035104510551080000 -5109510A510C510D510E510F511051115113511451155116511751185119511A -511B511C511D511E511F512051225123512451255126512751285129512A512B -512C512D512E512F5130513151325133513451355136513751385139513A513B -513C513D513E51425147514A514C514E514F515051525153515751585159515B -515D515E515F5160516151635164516651675169516A516F5172517A517E517F -5183518451865187518A518B518E518F51905191519351945198519A519D519E -519F51A151A351A651A751A851A951AA51AD51AE51B451B851B951BA51BE51BF -51C151C251C351C551C851CA51CD51CE51D051D251D351D451D551D651D70000 -84 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51D851D951DA51DC51DE51DF51E251E351E551E651E751E851E951EA51EC51EE -51F151F251F451F751FE520452055209520B520C520F5210521352145215521C -521E521F522152225223522552265227522A522C522F5231523252345235523C -523E524452455246524752485249524B524E524F525252535255525752580000 -5259525A525B525D525F526052625263526452665268526B526C526D526E5270 -52715273527452755276527752785279527A527B527C527E5280528352845285 -528652875289528A528B528C528D528E528F5291529252945295529652975298 -5299529A529C52A452A552A652A752AE52AF52B052B452B552B652B752B852B9 -52BA52BB52BC52BD52C052C152C252C452C552C652C852CA52CC52CD52CE52CF -52D152D352D452D552D752D952DA52DB52DC52DD52DE52E052E152E252E352E5 -52E652E752E852E952EA52EB52EC52ED52EE52EF52F152F252F352F452F552F6 -52F752F852FB52FC52FD530153025303530453075309530A530B530C530E0000 -85 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53115312531353145318531B531C531E531F532253245325532753285329532B -532C532D532F533053315332533353345335533653375338533C533D53405342 -53445346534B534C534D5350535453585359535B535D53655368536A536C536D -537253765379537B537C537D537E53805381538353875388538A538E538F0000 -53905391539253935394539653975399539B539C539E53A053A153A453A753AA -53AB53AC53AD53AF53B053B153B253B353B453B553B753B853B953BA53BC53BD -53BE53C053C353C453C553C653C753CE53CF53D053D253D353D553DA53DC53DD -53DE53E153E253E753F453FA53FE53FF5400540254055407540B541454185419 -541A541C542254245425542A5430543354365437543A543D543F544154425444 -544554475449544C544D544E544F5451545A545D545E545F5460546154635465 -54675469546A546B546C546D546E546F547054745479547A547E547F54815483 -5485548754885489548A548D5491549354975498549C549E549F54A054A10000 -86 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54A254A554AE54B054B254B554B654B754B954BA54BC54BE54C354C554CA54CB -54D654D854DB54E054E154E254E354E454EB54EC54EF54F054F154F454F554F6 -54F754F854F954FB54FE550055025503550455055508550A550B550C550D550E -5512551355155516551755185519551A551C551D551E551F5521552555260000 -55285529552B552D553255345535553655385539553A553B553D554055425545 -55475548554B554C554D554E554F5551555255535554555755585559555A555B -555D555E555F55605562556355685569556B556F557055715572557355745579 -557A557D557F55855586558C558D558E559055925593559555965597559A559B -559E55A055A155A255A355A455A555A655A855A955AA55AB55AC55AD55AE55AF -55B055B255B455B655B855BA55BC55BF55C055C155C255C355C655C755C855CA -55CB55CE55CF55D055D555D755D855D955DA55DB55DE55E055E255E755E955ED -55EE55F055F155F455F655F855F955FA55FB55FC55FF56025603560456050000 -87 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56065607560A560B560D561056115612561356145615561656175619561A561C -561D5620562156225625562656285629562A562B562E562F5630563356355637 -5638563A563C563D563E5640564156425643564456455646564756485649564A -564B564F565056515652565356555656565A565B565D565E565F566056610000 -5663566556665667566D566E566F56705672567356745675567756785679567A -567D567E567F56805681568256835684568756885689568A568B568C568D5690 -56915692569456955696569756985699569A569B569C569D569E569F56A056A1 -56A256A456A556A656A756A856A956AA56AB56AC56AD56AE56B056B156B256B3 -56B456B556B656B856B956BA56BB56BD56BE56BF56C056C156C256C356C456C5 -56C656C756C856C956CB56CC56CD56CE56CF56D056D156D256D356D556D656D8 -56D956DC56E356E556E656E756E856E956EA56EC56EE56EF56F256F356F656F7 -56F856FB56FC57005701570257055707570B570C570D570E570F571057110000 -88 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57125713571457155716571757185719571A571B571D571E5720572157225724 -572557265727572B5731573257345735573657375738573C573D573F57415743 -57445745574657485749574B5752575357545755575657585759576257635765 -5767576C576E5770577157725774577557785779577A577D577E577F57800000 -5781578757885789578A578D578E578F57905791579457955796579757985799 -579A579C579D579E579F57A557A857AA57AC57AF57B057B157B357B557B657B7 -57B957BA57BB57BC57BD57BE57BF57C057C157C457C557C657C757C857C957CA -57CC57CD57D057D157D357D657D757DB57DC57DE57E157E257E357E557E657E7 -57E857E957EA57EB57EC57EE57F057F157F257F357F557F657F757FB57FC57FE -57FF580158035804580558085809580A580C580E580F58105812581358145816 -58175818581A581B581C581D581F5822582358255826582758285829582B582C -582D582E582F58315832583358345836583758385839583A583B583C583D0000 -89 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -583E583F584058415842584358455846584758485849584A584B584E584F5850 -585258535855585658575859585A585B585C585D585F58605861586258635864 -5866586758685869586A586D586E586F58705871587258735874587558765877 -58785879587A587B587C587D587F58825884588658875888588A588B588C0000 -588D588E588F5890589158945895589658975898589B589C589D58A058A158A2 -58A358A458A558A658A758AA58AB58AC58AD58AE58AF58B058B158B258B358B4 -58B558B658B758B858B958BA58BB58BD58BE58BF58C058C258C358C458C658C7 -58C858C958CA58CB58CC58CD58CE58CF58D058D258D358D458D658D758D858D9 -58DA58DB58DC58DD58DE58DF58E058E158E258E358E558E658E758E858E958EA -58ED58EF58F158F258F458F558F758F858FA58FB58FC58FD58FE58FF59005901 -59035905590659085909590A590B590C590E591059115912591359175918591B -591D591E592059215922592359265928592C59305932593359355936593B0000 -8A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -593D593E593F5940594359455946594A594C594D5950595259535959595B595C -595D595E595F5961596359645966596759685969596A596B596C596D596E596F -59705971597259755977597A597B597C597E597F598059855989598B598C598E -598F59905991599459955998599A599B599C599D599F59A059A159A259A60000 -59A759AC59AD59B059B159B359B459B559B659B759B859BA59BC59BD59BF59C0 -59C159C259C359C459C559C759C859C959CC59CD59CE59CF59D559D659D959DB -59DE59DF59E059E159E259E459E659E759E959EA59EB59ED59EE59EF59F059F1 -59F259F359F459F559F659F759F859FA59FC59FD59FE5A005A025A0A5A0B5A0D -5A0E5A0F5A105A125A145A155A165A175A195A1A5A1B5A1D5A1E5A215A225A24 -5A265A275A285A2A5A2B5A2C5A2D5A2E5A2F5A305A335A355A375A385A395A3A -5A3B5A3D5A3E5A3F5A415A425A435A445A455A475A485A4B5A4C5A4D5A4E5A4F -5A505A515A525A535A545A565A575A585A595A5B5A5C5A5D5A5E5A5F5A600000 -8B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A615A635A645A655A665A685A695A6B5A6C5A6D5A6E5A6F5A705A715A725A73 -5A785A795A7B5A7C5A7D5A7E5A805A815A825A835A845A855A865A875A885A89 -5A8A5A8B5A8C5A8D5A8E5A8F5A905A915A935A945A955A965A975A985A995A9C -5A9D5A9E5A9F5AA05AA15AA25AA35AA45AA55AA65AA75AA85AA95AAB5AAC0000 -5AAD5AAE5AAF5AB05AB15AB45AB65AB75AB95ABA5ABB5ABC5ABD5ABF5AC05AC3 -5AC45AC55AC65AC75AC85ACA5ACB5ACD5ACE5ACF5AD05AD15AD35AD55AD75AD9 -5ADA5ADB5ADD5ADE5ADF5AE25AE45AE55AE75AE85AEA5AEC5AED5AEE5AEF5AF0 -5AF25AF35AF45AF55AF65AF75AF85AF95AFA5AFB5AFC5AFD5AFE5AFF5B005B01 -5B025B035B045B055B065B075B085B0A5B0B5B0C5B0D5B0E5B0F5B105B115B12 -5B135B145B155B185B195B1A5B1B5B1C5B1D5B1E5B1F5B205B215B225B235B24 -5B255B265B275B285B295B2A5B2B5B2C5B2D5B2E5B2F5B305B315B335B355B36 -5B385B395B3A5B3B5B3C5B3D5B3E5B3F5B415B425B435B445B455B465B470000 -8C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B485B495B4A5B4B5B4C5B4D5B4E5B4F5B525B565B5E5B605B615B675B685B6B -5B6D5B6E5B6F5B725B745B765B775B785B795B7B5B7C5B7E5B7F5B825B865B8A -5B8D5B8E5B905B915B925B945B965B9F5BA75BA85BA95BAC5BAD5BAE5BAF5BB1 -5BB25BB75BBA5BBB5BBC5BC05BC15BC35BC85BC95BCA5BCB5BCD5BCE5BCF0000 -5BD15BD45BD55BD65BD75BD85BD95BDA5BDB5BDC5BE05BE25BE35BE65BE75BE9 -5BEA5BEB5BEC5BED5BEF5BF15BF25BF35BF45BF55BF65BF75BFD5BFE5C005C02 -5C035C055C075C085C0B5C0C5C0D5C0E5C105C125C135C175C195C1B5C1E5C1F -5C205C215C235C265C285C295C2A5C2B5C2D5C2E5C2F5C305C325C335C355C36 -5C375C435C445C465C475C4C5C4D5C525C535C545C565C575C585C5A5C5B5C5C -5C5D5C5F5C625C645C675C685C695C6A5C6B5C6C5C6D5C705C725C735C745C75 -5C765C775C785C7B5C7C5C7D5C7E5C805C835C845C855C865C875C895C8A5C8B -5C8E5C8F5C925C935C955C9D5C9E5C9F5CA05CA15CA45CA55CA65CA75CA80000 -8D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5CAA5CAE5CAF5CB05CB25CB45CB65CB95CBA5CBB5CBC5CBE5CC05CC25CC35CC5 -5CC65CC75CC85CC95CCA5CCC5CCD5CCE5CCF5CD05CD15CD35CD45CD55CD65CD7 -5CD85CDA5CDB5CDC5CDD5CDE5CDF5CE05CE25CE35CE75CE95CEB5CEC5CEE5CEF -5CF15CF25CF35CF45CF55CF65CF75CF85CF95CFA5CFC5CFD5CFE5CFF5D000000 -5D015D045D055D085D095D0A5D0B5D0C5D0D5D0F5D105D115D125D135D155D17 -5D185D195D1A5D1C5D1D5D1F5D205D215D225D235D255D285D2A5D2B5D2C5D2F -5D305D315D325D335D355D365D375D385D395D3A5D3B5D3C5D3F5D405D415D42 -5D435D445D455D465D485D495D4D5D4E5D4F5D505D515D525D535D545D555D56 -5D575D595D5A5D5C5D5E5D5F5D605D615D625D635D645D655D665D675D685D6A -5D6D5D6E5D705D715D725D735D755D765D775D785D795D7A5D7B5D7C5D7D5D7E -5D7F5D805D815D835D845D855D865D875D885D895D8A5D8B5D8C5D8D5D8E5D8F -5D905D915D925D935D945D955D965D975D985D9A5D9B5D9C5D9E5D9F5DA00000 -8E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5DA15DA25DA35DA45DA55DA65DA75DA85DA95DAA5DAB5DAC5DAD5DAE5DAF5DB0 -5DB15DB25DB35DB45DB55DB65DB85DB95DBA5DBB5DBC5DBD5DBE5DBF5DC05DC1 -5DC25DC35DC45DC65DC75DC85DC95DCA5DCB5DCC5DCE5DCF5DD05DD15DD25DD3 -5DD45DD55DD65DD75DD85DD95DDA5DDC5DDF5DE05DE35DE45DEA5DEC5DED0000 -5DF05DF55DF65DF85DF95DFA5DFB5DFC5DFF5E005E045E075E095E0A5E0B5E0D -5E0E5E125E135E175E1E5E1F5E205E215E225E235E245E255E285E295E2A5E2B -5E2C5E2F5E305E325E335E345E355E365E395E3A5E3E5E3F5E405E415E435E46 -5E475E485E495E4A5E4B5E4D5E4E5E4F5E505E515E525E535E565E575E585E59 -5E5A5E5C5E5D5E5F5E605E635E645E655E665E675E685E695E6A5E6B5E6C5E6D -5E6E5E6F5E705E715E755E775E795E7E5E815E825E835E855E885E895E8C5E8D -5E8E5E925E985E9B5E9D5EA15EA25EA35EA45EA85EA95EAA5EAB5EAC5EAE5EAF -5EB05EB15EB25EB45EBA5EBB5EBC5EBD5EBF5EC05EC15EC25EC35EC45EC50000 -8F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5EC65EC75EC85ECB5ECC5ECD5ECE5ECF5ED05ED45ED55ED75ED85ED95EDA5EDC -5EDD5EDE5EDF5EE05EE15EE25EE35EE45EE55EE65EE75EE95EEB5EEC5EED5EEE -5EEF5EF05EF15EF25EF35EF55EF85EF95EFB5EFC5EFD5F055F065F075F095F0C -5F0D5F0E5F105F125F145F165F195F1A5F1C5F1D5F1E5F215F225F235F240000 -5F285F2B5F2C5F2E5F305F325F335F345F355F365F375F385F3B5F3D5F3E5F3F -5F415F425F435F445F455F465F475F485F495F4A5F4B5F4C5F4D5F4E5F4F5F51 -5F545F595F5A5F5B5F5C5F5E5F5F5F605F635F655F675F685F6B5F6E5F6F5F72 -5F745F755F765F785F7A5F7D5F7E5F7F5F835F865F8D5F8E5F8F5F915F935F94 -5F965F9A5F9B5F9D5F9E5F9F5FA05FA25FA35FA45FA55FA65FA75FA95FAB5FAC -5FAF5FB05FB15FB25FB35FB45FB65FB85FB95FBA5FBB5FBE5FBF5FC05FC15FC2 -5FC75FC85FCA5FCB5FCE5FD35FD45FD55FDA5FDB5FDC5FDE5FDF5FE25FE35FE5 -5FE65FE85FE95FEC5FEF5FF05FF25FF35FF45FF65FF75FF95FFA5FFC60070000 -90 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60086009600B600C60106011601360176018601A601E601F602260236024602C -602D602E603060316032603360346036603760386039603A603D603E60406044 -60456046604760486049604A604C604E604F605160536054605660576058605B -605C605E605F6060606160656066606E60716072607460756077607E60800000 -608160826085608660876088608A608B608E608F609060916093609560976098 -6099609C609E60A160A260A460A560A760A960AA60AE60B060B360B560B660B7 -60B960BA60BD60BE60BF60C060C160C260C360C460C760C860C960CC60CD60CE -60CF60D060D260D360D460D660D760D960DB60DE60E160E260E360E460E560EA -60F160F260F560F760F860FB60FC60FD60FE60FF61026103610461056107610A -610B610C611061116112611361146116611761186119611B611C611D611E6121 -6122612561286129612A612C612D612E612F6130613161326133613461356136 -613761386139613A613B613C613D613E61406141614261436144614561460000 -91 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61476149614B614D614F61506152615361546156615761586159615A615B615C -615E615F6160616161636164616561666169616A616B616C616D616E616F6171 -617261736174617661786179617A617B617C617D617E617F6180618161826183 -618461856186618761886189618A618C618D618F619061916192619361950000 -6196619761986199619A619B619C619E619F61A061A161A261A361A461A561A6 -61AA61AB61AD61AE61AF61B061B161B261B361B461B561B661B861B961BA61BB -61BC61BD61BF61C061C161C361C461C561C661C761C961CC61CD61CE61CF61D0 -61D361D561D661D761D861D961DA61DB61DC61DD61DE61DF61E061E161E261E3 -61E461E561E761E861E961EA61EB61EC61ED61EE61EF61F061F161F261F361F4 -61F661F761F861F961FA61FB61FC61FD61FE6200620162026203620462056207 -6209621362146219621C621D621E622062236226622762286229622B622D622F -6230623162326235623662386239623A623B623C6242624462456246624A0000 -92 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -624F62506255625662576259625A625C625D625E625F62606261626262646265 -6268627162726274627562776278627A627B627D628162826283628562866287 -6288628B628C628D628E628F629062946299629C629D629E62A362A662A762A9 -62AA62AD62AE62AF62B062B262B362B462B662B762B862BA62BE62C062C10000 -62C362CB62CF62D162D562DD62DE62E062E162E462EA62EB62F062F262F562F8 -62F962FA62FB63006303630463056306630A630B630C630D630F631063126313 -63146315631763186319631C632663276329632C632D632E6330633163336334 -6335633663376338633B633C633E633F63406341634463476348634A63516352 -635363546356635763586359635A635B635C635D63606364636563666368636A -636B636C636F6370637263736374637563786379637C637D637E637F63816383 -638463856386638B638D639163936394639563976399639A639B639C639D639E -639F63A163A463A663AB63AF63B163B263B563B663B963BB63BD63BF63C00000 -93 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63C163C263C363C563C763C863CA63CB63CC63D163D363D463D563D763D863D9 -63DA63DB63DC63DD63DF63E263E463E563E663E763E863EB63EC63EE63EF63F0 -63F163F363F563F763F963FA63FB63FC63FE640364046406640764086409640A -640D640E6411641264156416641764186419641A641D641F6422642364240000 -6425642764286429642B642E642F643064316432643364356436643764386439 -643B643C643E6440644264436449644B644C644D644E644F6450645164536455 -645664576459645A645B645C645D645F64606461646264636464646564666468 -646A646B646C646E646F64706471647264736474647564766477647B647C647D -647E647F648064816483648664886489648A648B648C648D648E648F64906493 -649464976498649A649B649C649D649F64A064A164A264A364A564A664A764A8 -64AA64AB64AF64B164B264B364B464B664B964BB64BD64BE64BF64C164C364C4 -64C664C764C864C964CA64CB64CC64CF64D164D364D464D564D664D964DA0000 -94 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64DB64DC64DD64DF64E064E164E364E564E764E864E964EA64EB64EC64ED64EE -64EF64F064F164F264F364F464F564F664F764F864F964FA64FB64FC64FD64FE -64FF65016502650365046505650665076508650A650B650C650D650E650F6510 -6511651365146515651665176519651A651B651C651D651E651F652065210000 -6522652365246526652765286529652A652C652D65306531653265336537653A -653C653D6540654165426543654465466547654A654B654D654E655065526553 -655465576558655A655C655F6560656165646565656765686569656A656D656E -656F657165736575657665786579657A657B657C657D657E657F658065816582 -658365846585658665886589658A658D658E658F65926594659565966598659A -659D659E65A065A265A365A665A865AA65AC65AE65B165B265B365B465B565B6 -65B765B865BA65BB65BE65BF65C065C265C765C865C965CA65CD65D065D165D3 -65D465D565D865D965DA65DB65DC65DD65DE65DF65E165E365E465EA65EB0000 -95 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65F265F365F465F565F865F965FB65FC65FD65FE65FF66016604660566076608 -6609660B660D661066116612661666176618661A661B661C661E662166226623 -662466266629662A662B662C662E663066326633663766386639663A663B663D -663F66406642664466456646664766486649664A664D664E6650665166580000 -6659665B665C665D665E666066626663666566676669666A666B666C666D6671 -66726673667566786679667B667C667D667F6680668166836685668666886689 -668A668B668D668E668F6690669266936694669566986699669A669B669C669E -669F66A066A166A266A366A466A566A666A966AA66AB66AC66AD66AF66B066B1 -66B266B366B566B666B766B866BA66BB66BC66BD66BF66C066C166C266C366C4 -66C566C666C766C866C966CA66CB66CC66CD66CE66CF66D066D166D266D366D4 -66D566D666D766D866DA66DE66DF66E066E166E266E366E466E566E766E866EA -66EB66EC66ED66EE66EF66F166F566F666F866FA66FB66FD6701670267030000 -96 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6704670567066707670C670E670F671167126713671667186719671A671C671E -67206721672267236724672567276729672E6730673267336736673767386739 -673B673C673E673F6741674467456747674A674B674D67526754675567576758 -6759675A675B675D67626763676467666767676B676C676E6771677467760000 -67786779677A677B677D678067826783678567866788678A678C678D678E678F -679167926793679467966799679B679F67A067A167A467A667A967AC67AE67B1 -67B267B467B967BA67BB67BC67BD67BE67BF67C067C267C567C667C767C867C9 -67CA67CB67CC67CD67CE67D567D667D767DB67DF67E167E367E467E667E767E8 -67EA67EB67ED67EE67F267F567F667F767F867F967FA67FB67FC67FE68016802 -680368046806680D681068126814681568186819681A681B681C681E681F6820 -6822682368246825682668276828682B682C682D682E682F6830683168346835 -6836683A683B683F6847684B684D684F68526856685768586859685A685B0000 -97 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -685C685D685E685F686A686C686D686E686F6870687168726873687568786879 -687A687B687C687D687E687F688068826884688768886889688A688B688C688D -688E68906891689268946895689668986899689A689B689C689D689E689F68A0 -68A168A368A468A568A968AA68AB68AC68AE68B168B268B468B668B768B80000 -68B968BA68BB68BC68BD68BE68BF68C168C368C468C568C668C768C868CA68CC -68CE68CF68D068D168D368D468D668D768D968DB68DC68DD68DE68DF68E168E2 -68E468E568E668E768E868E968EA68EB68EC68ED68EF68F268F368F468F668F7 -68F868FB68FD68FE68FF69006902690369046906690769086909690A690C690F -69116913691469156916691769186919691A691B691C691D691E692169226923 -69256926692769286929692A692B692C692E692F693169326933693569366937 -6938693A693B693C693E694069416943694469456946694769486949694A694B -694C694D694E694F69506951695269536955695669586959695B695C695F0000 -98 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6961696269646965696769686969696A696C696D696F69706972697369746975 -6976697A697B697D697E697F698169836985698A698B698C698E698F69906991 -69926993699669976999699A699D699E699F69A069A169A269A369A469A569A6 -69A969AA69AC69AE69AF69B069B269B369B569B669B869B969BA69BC69BD0000 -69BE69BF69C069C269C369C469C569C669C769C869C969CB69CD69CF69D169D2 -69D369D569D669D769D869D969DA69DC69DD69DE69E169E269E369E469E569E6 -69E769E869E969EA69EB69EC69EE69EF69F069F169F369F469F569F669F769F8 -69F969FA69FB69FC69FE6A006A016A026A036A046A056A066A076A086A096A0B -6A0C6A0D6A0E6A0F6A106A116A126A136A146A156A166A196A1A6A1B6A1C6A1D -6A1E6A206A226A236A246A256A266A276A296A2B6A2C6A2D6A2E6A306A326A33 -6A346A366A376A386A396A3A6A3B6A3C6A3F6A406A416A426A436A456A466A48 -6A496A4A6A4B6A4C6A4D6A4E6A4F6A516A526A536A546A556A566A576A5A0000 -99 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A5C6A5D6A5E6A5F6A606A626A636A646A666A676A686A696A6A6A6B6A6C6A6D -6A6E6A6F6A706A726A736A746A756A766A776A786A7A6A7B6A7D6A7E6A7F6A81 -6A826A836A856A866A876A886A896A8A6A8B6A8C6A8D6A8F6A926A936A946A95 -6A966A986A996A9A6A9B6A9C6A9D6A9E6A9F6AA16AA26AA36AA46AA56AA60000 -6AA76AA86AAA6AAD6AAE6AAF6AB06AB16AB26AB36AB46AB56AB66AB76AB86AB9 -6ABA6ABB6ABC6ABD6ABE6ABF6AC06AC16AC26AC36AC46AC56AC66AC76AC86AC9 -6ACA6ACB6ACC6ACD6ACE6ACF6AD06AD16AD26AD36AD46AD56AD66AD76AD86AD9 -6ADA6ADB6ADC6ADD6ADE6ADF6AE06AE16AE26AE36AE46AE56AE66AE76AE86AE9 -6AEA6AEB6AEC6AED6AEE6AEF6AF06AF16AF26AF36AF46AF56AF66AF76AF86AF9 -6AFA6AFB6AFC6AFD6AFE6AFF6B006B016B026B036B046B056B066B076B086B09 -6B0A6B0B6B0C6B0D6B0E6B0F6B106B116B126B136B146B156B166B176B186B19 -6B1A6B1B6B1C6B1D6B1E6B1F6B256B266B286B296B2A6B2B6B2C6B2D6B2E0000 -9A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B2F6B306B316B336B346B356B366B386B3B6B3C6B3D6B3F6B406B416B426B44 -6B456B486B4A6B4B6B4D6B4E6B4F6B506B516B526B536B546B556B566B576B58 -6B5A6B5B6B5C6B5D6B5E6B5F6B606B616B686B696B6B6B6C6B6D6B6E6B6F6B70 -6B716B726B736B746B756B766B776B786B7A6B7D6B7E6B7F6B806B856B880000 -6B8C6B8E6B8F6B906B916B946B956B976B986B996B9C6B9D6B9E6B9F6BA06BA2 -6BA36BA46BA56BA66BA76BA86BA96BAB6BAC6BAD6BAE6BAF6BB06BB16BB26BB6 -6BB86BB96BBA6BBB6BBC6BBD6BBE6BC06BC36BC46BC66BC76BC86BC96BCA6BCC -6BCE6BD06BD16BD86BDA6BDC6BDD6BDE6BDF6BE06BE26BE36BE46BE56BE66BE7 -6BE86BE96BEC6BED6BEE6BF06BF16BF26BF46BF66BF76BF86BFA6BFB6BFC6BFE -6BFF6C006C016C026C036C046C086C096C0A6C0B6C0C6C0E6C126C176C1C6C1D -6C1E6C206C236C256C2B6C2C6C2D6C316C336C366C376C396C3A6C3B6C3C6C3E -6C3F6C436C446C456C486C4B6C4C6C4D6C4E6C4F6C516C526C536C566C580000 -9B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C596C5A6C626C636C656C666C676C6B6C6C6C6D6C6E6C6F6C716C736C756C77 -6C786C7A6C7B6C7C6C7F6C806C846C876C8A6C8B6C8D6C8E6C916C926C956C96 -6C976C986C9A6C9C6C9D6C9E6CA06CA26CA86CAC6CAF6CB06CB46CB56CB66CB7 -6CBA6CC06CC16CC26CC36CC66CC76CC86CCB6CCD6CCE6CCF6CD16CD26CD80000 -6CD96CDA6CDC6CDD6CDF6CE46CE66CE76CE96CEC6CED6CF26CF46CF96CFF6D00 -6D026D036D056D066D086D096D0A6D0D6D0F6D106D116D136D146D156D166D18 -6D1C6D1D6D1F6D206D216D226D236D246D266D286D296D2C6D2D6D2F6D306D34 -6D366D376D386D3A6D3F6D406D426D446D496D4C6D506D556D566D576D586D5B -6D5D6D5F6D616D626D646D656D676D686D6B6D6C6D6D6D706D716D726D736D75 -6D766D796D7A6D7B6D7D6D7E6D7F6D806D816D836D846D866D876D8A6D8B6D8D -6D8F6D906D926D966D976D986D996D9A6D9C6DA26DA56DAC6DAD6DB06DB16DB3 -6DB46DB66DB76DB96DBA6DBB6DBC6DBD6DBE6DC16DC26DC36DC86DC96DCA0000 -9C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6DCD6DCE6DCF6DD06DD26DD36DD46DD56DD76DDA6DDB6DDC6DDF6DE26DE36DE5 -6DE76DE86DE96DEA6DED6DEF6DF06DF26DF46DF56DF66DF86DFA6DFD6DFE6DFF -6E006E016E026E036E046E066E076E086E096E0B6E0F6E126E136E156E186E19 -6E1B6E1C6E1E6E1F6E226E266E276E286E2A6E2C6E2E6E306E316E336E350000 -6E366E376E396E3B6E3C6E3D6E3E6E3F6E406E416E426E456E466E476E486E49 -6E4A6E4B6E4C6E4F6E506E516E526E556E576E596E5A6E5C6E5D6E5E6E606E61 -6E626E636E646E656E666E676E686E696E6A6E6C6E6D6E6F6E706E716E726E73 -6E746E756E766E776E786E796E7A6E7B6E7C6E7D6E806E816E826E846E876E88 -6E8A6E8B6E8C6E8D6E8E6E916E926E936E946E956E966E976E996E9A6E9B6E9D -6E9E6EA06EA16EA36EA46EA66EA86EA96EAB6EAC6EAD6EAE6EB06EB36EB56EB8 -6EB96EBC6EBE6EBF6EC06EC36EC46EC56EC66EC86EC96ECA6ECC6ECD6ECE6ED0 -6ED26ED66ED86ED96EDB6EDC6EDD6EE36EE76EEA6EEB6EEC6EED6EEE6EEF0000 -9D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6EF06EF16EF26EF36EF56EF66EF76EF86EFA6EFB6EFC6EFD6EFE6EFF6F006F01 -6F036F046F056F076F086F0A6F0B6F0C6F0D6F0E6F106F116F126F166F176F18 -6F196F1A6F1B6F1C6F1D6F1E6F1F6F216F226F236F256F266F276F286F2C6F2E -6F306F326F346F356F376F386F396F3A6F3B6F3C6F3D6F3F6F406F416F420000 -6F436F446F456F486F496F4A6F4C6F4E6F4F6F506F516F526F536F546F556F56 -6F576F596F5A6F5B6F5D6F5F6F606F616F636F646F656F676F686F696F6A6F6B -6F6C6F6F6F706F716F736F756F766F776F796F7B6F7D6F7E6F7F6F806F816F82 -6F836F856F866F876F8A6F8B6F8F6F906F916F926F936F946F956F966F976F98 -6F996F9A6F9B6F9D6F9E6F9F6FA06FA26FA36FA46FA56FA66FA86FA96FAA6FAB -6FAC6FAD6FAE6FAF6FB06FB16FB26FB46FB56FB76FB86FBA6FBB6FBC6FBD6FBE -6FBF6FC16FC36FC46FC56FC66FC76FC86FCA6FCB6FCC6FCD6FCE6FCF6FD06FD3 -6FD46FD56FD66FD76FD86FD96FDA6FDB6FDC6FDD6FDF6FE26FE36FE46FE50000 -9E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6FE66FE76FE86FE96FEA6FEB6FEC6FED6FF06FF16FF26FF36FF46FF56FF66FF7 -6FF86FF96FFA6FFB6FFC6FFD6FFE6FFF70007001700270037004700570067007 -70087009700A700B700C700D700E700F70107012701370147015701670177018 -7019701C701D701E701F702070217022702470257026702770287029702A0000 -702B702C702D702E702F70307031703270337034703670377038703A703B703C -703D703E703F7040704170427043704470457046704770487049704A704B704D -704E7050705170527053705470557056705770587059705A705B705C705D705F -7060706170627063706470657066706770687069706A706E7071707270737074 -70777079707A707B707D7081708270837084708670877088708B708C708D708F -70907091709370977098709A709B709E709F70A070A170A270A370A470A570A6 -70A770A870A970AA70B070B270B470B570B670BA70BE70BF70C470C570C670C7 -70C970CB70CC70CD70CE70CF70D070D170D270D370D470D570D670D770DA0000 -9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -70DC70DD70DE70E070E170E270E370E570EA70EE70F070F170F270F370F470F5 -70F670F870FA70FB70FC70FE70FF710071017102710371047105710671077108 -710B710C710D710E710F7111711271147117711B711C711D711E711F71207121 -7122712371247125712771287129712A712B712C712D712E7132713371340000 -7135713771387139713A713B713C713D713E713F714071417142714371447146 -714771487149714B714D714F7150715171527153715471557156715771587159 -715A715B715D715F716071617162716371657169716A716B716C716D716F7170 -717171747175717671777179717B717C717E717F718071817182718371857186 -718771887189718B718C718D718E7190719171927193719571967197719A719B -719C719D719E71A171A271A371A471A571A671A771A971AA71AB71AD71AE71AF -71B071B171B271B471B671B771B871BA71BB71BC71BD71BE71BF71C071C171C2 -71C471C571C671C771C871C971CA71CB71CC71CD71CF71D071D171D271D30000 -A0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -71D671D771D871D971DA71DB71DC71DD71DE71DF71E171E271E371E471E671E8 -71E971EA71EB71EC71ED71EF71F071F171F271F371F471F571F671F771F871FA -71FB71FC71FD71FE71FF720072017202720372047205720772087209720A720B -720C720D720E720F7210721172127213721472157216721772187219721A0000 -721B721C721E721F722072217222722372247225722672277229722B722D722E -722F723272337234723A723C723E72407241724272437244724572467249724A -724B724E724F7250725172537254725572577258725A725C725E726072637264 -72657268726A726B726C726D7270727172737274727672777278727B727C727D -7282728372857286728772887289728C728E7290729172937294729572967297 -72987299729A729B729C729D729E72A072A172A272A372A472A572A672A772A8 -72A972AA72AB72AE72B172B272B372B572BA72BB72BC72BD72BE72BF72C072C5 -72C672C772C972CA72CB72CC72CF72D172D372D472D572D672D872DA72DB0000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300200B702C902C700A8300330052014FF5E2016202620182019 -201C201D3014301530083009300A300B300C300D300E300F3016301730103011 -00B100D700F72236222722282211220F222A222922082237221A22A522252220 -23122299222B222E2261224C2248223D221D2260226E226F22642265221E2235 -22342642264000B0203220332103FF0400A4FFE0FFE1203000A7211626062605 -25CB25CF25CE25C725C625A125A025B325B2203B219221902191219330130000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000217021712172217321742175217621772178217900000000000000000000 -000024882489248A248B248C248D248E248F2490249124922493249424952496 -249724982499249A249B247424752476247724782479247A247B247C247D247E -247F248024812482248324842485248624872460246124622463246424652466 -2467246824690000000032203221322232233224322532263227322832290000 -00002160216121622163216421652166216721682169216A216B000000000000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FFE5FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFF3CFF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -FE35FE36FE39FE3AFE3FFE40FE3DFE3EFE41FE42FE43FE4400000000FE3BFE3C -FE37FE38FE310000FE33FE340000000000000000000000000000000000000000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -02CA02CB02D920132015202520352105210921962197219821992215221F2223 -22522266226722BF2550255125522553255425552556255725582559255A255B -255C255D255E255F2560256125622563256425652566256725682569256A256B -256C256D256E256F257025712572257325812582258325842585258625870000 -25882589258A258B258C258D258E258F25932594259525BC25BD25E225E325E4 -25E5260922953012301D301E0000000000000000000000000000000000000000 -0000010100E101CE00E0011300E9011B00E8012B00ED01D000EC014D00F301D2 -00F2016B00FA01D400F901D601D801DA01DC00FC00EA02510000014401480000 -0261000000000000000031053106310731083109310A310B310C310D310E310F -3110311131123113311431153116311731183119311A311B311C311D311E311F -3120312131223123312431253126312731283129000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30213022302330243025302630273028302932A3338E338F339C339D339E33A1 -33C433CE33D133D233D5FE30FFE2FFE400002121323100002010000000000000 -30FC309B309C30FD30FE3006309D309EFE49FE4AFE4BFE4CFE4DFE4EFE4FFE50 -FE51FE52FE54FE55FE56FE57FE59FE5AFE5BFE5CFE5DFE5EFE5FFE60FE610000 -FE62FE63FE64FE65FE66FE68FE69FE6AFE6B0000000000000000000000000000 -0000000000000000000000003007000000000000000000000000000000000000 -00000000000000002500250125022503250425052506250725082509250A250B -250C250D250E250F2510251125122513251425152516251725182519251A251B -251C251D251E251F2520252125222523252425252526252725282529252A252B -252C252D252E252F2530253125322533253425352536253725382539253A253B -253C253D253E253F2540254125422543254425452546254725482549254A254B -0000000000000000000000000000000000000000000000000000000000000000 -AA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72DC72DD72DF72E272E372E472E572E672E772EA72EB72F572F672F972FD72FE -72FF73007302730473057306730773087309730B730C730D730F731073117312 -731473187319731A731F732073237324732673277328732D732F733073327333 -73357336733A733B733C733D7340734173427343734473457346734773480000 -7349734A734B734C734E734F7351735373547355735673587359735A735B735C -735D735E735F736173627363736473657366736773687369736A736B736E7370 -7371000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73727373737473757376737773787379737A737B737C737D737F738073817382 -7383738573867388738A738C738D738F73907392739373947395739773987399 -739A739C739D739E73A073A173A373A473A573A673A773A873AA73AC73AD73B1 -73B473B573B673B873B973BC73BD73BE73BF73C173C373C473C573C673C70000 -73CB73CC73CE73D273D373D473D573D673D773D873DA73DB73DC73DD73DF73E1 -73E273E373E473E673E873EA73EB73EC73EE73EF73F073F173F373F473F573F6 -73F7000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73F873F973FA73FB73FC73FD73FE73FF740074017402740474077408740B740C -740D740E741174127413741474157416741774187419741C741D741E741F7420 -74217423742474277429742B742D742F74317432743774387439743A743B743D -743E743F744074427443744474457446744774487449744A744B744C744D0000 -744E744F7450745174527453745474567458745D746074617462746374647465 -7466746774687469746A746B746C746E746F7471747274737474747574787479 -747A000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -747B747C747D747F748274847485748674887489748A748C748D748F74917492 -7493749474957496749774987499749A749B749D749F74A074A174A274A374A4 -74A574A674AA74AB74AC74AD74AE74AF74B074B174B274B374B474B574B674B7 -74B874B974BB74BC74BD74BE74BF74C074C174C274C374C474C574C674C70000 -74C874C974CA74CB74CC74CD74CE74CF74D074D174D374D474D574D674D774D8 -74D974DA74DB74DD74DF74E174E574E774E874E974EA74EB74EC74ED74F074F1 -74F2000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74F374F574F874F974FA74FB74FC74FD74FE7500750175027503750575067507 -75087509750A750B750C750E751075127514751575167517751B751D751E7520 -752175227523752475267527752A752E753475367539753C753D753F75417542 -75437544754675477549754A754D755075517552755375557556755775580000 -755D755E755F75607561756275637564756775687569756B756C756D756E756F -757075717573757575767577757A757B757C757D757E75807581758275847585 -7587000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -75887589758A758C758D758E7590759375957598759B759C759E75A275A675A7 -75A875A975AA75AD75B675B775BA75BB75BF75C075C175C675CB75CC75CE75CF -75D075D175D375D775D975DA75DC75DD75DF75E075E175E575E975EC75ED75EE -75EF75F275F375F575F675F775F875FA75FB75FD75FE76027604760676070000 -76087609760B760D760E760F76117612761376147616761A761C761D761E7621 -762376277628762C762E762F76317632763676377639763A763B763D76417642 -7644000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -76457646764776487649764A764B764E764F7650765176527653765576577658 -7659765A765B765D765F766076617662766476657666766776687669766A766C -766D766E767076717672767376747675767676777679767A767C767F76807681 -768376857689768A768C768D768F769076927694769576977698769A769B0000 -769C769D769E769F76A076A176A276A376A576A676A776A876A976AA76AB76AC -76AD76AF76B076B376B576B676B776B876B976BA76BB76BC76BD76BE76C076C1 -76C3554A963F57C3632854CE550954C07691764C853C77EE827E788D72319698 -978D6C285B894FFA630966975CB880FA684880AE660276CE51F9655671AC7FF1 -888450B2596561CA6FB382AD634C625253ED54277B06516B75A45DF462D48DCB -9776628A8019575D97387F627238767D67CF767E64464F708D2562DC7A176591 -73ED642C6273822C9881677F7248626E62CC4F3474E3534A529E7ECA90A65E2E -6886699C81807ED168D278C5868C9551508D8C2482DE80DE5305891252650000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -76C476C776C976CB76CC76D376D576D976DA76DC76DD76DE76E076E176E276E3 -76E476E676E776E876E976EA76EB76EC76ED76F076F376F576F676F776FA76FB -76FD76FF77007702770377057706770A770C770E770F77107711771277137714 -7715771677177718771B771C771D771E77217723772477257727772A772B0000 -772C772E773077317732773377347739773B773D773E773F7742774477457746 -77487749774A774B774C774D774E774F77527753775477557756775777587759 -775C858496F94FDD582199715B9D62B162A566B48C799C8D7206676F789160B2 -535153178F8880CC8D1D94A1500D72C8590760EB711988AB595482EF672C7B28 -5D297EF7752D6CF58E668FF8903C9F3B6BD491197B145F7C78A784D6853D6BD5 -6BD96BD65E015E8775F995ED655D5F0A5FC58F9F58C181C2907F965B97AD8FB9 -7F168D2C62414FBF53D8535E8FA88FA98FAB904D68075F6A819888689CD6618B -522B762A5F6C658C6FD26EE85BBE6448517551B067C44E1979C9997C70B30000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -775D775E775F7760776477677769776A776D776E776F77707771777277737774 -7775777677777778777A777B777C7781778277837786778777887789778A778B -778F77907793779477957796779777987799779A779B779C779D779E77A177A3 -77A477A677A877AB77AD77AE77AF77B177B277B477B677B777B877B977BA0000 -77BC77BE77C077C177C277C377C477C577C677C777C877C977CA77CB77CC77CE -77CF77D077D177D277D377D477D577D677D877D977DA77DD77DE77DF77E077E1 -77E475C55E7673BB83E064AD62E894B56CE2535A52C3640F94C27B944F2F5E1B -82368116818A6E246CCA9A736355535C54FA886557E04E0D5E036B657C3F90E8 -601664E6731C88C16750624D8D22776C8E2991C75F6983DC8521991053C28695 -6B8B60ED60E8707F82CD82314ED36CA785CF64CD7CD969FD66F9834953957B56 -4FA7518C6D4B5C428E6D63D253C9832C833667E578B4643D5BDF5C945DEE8BE7 -62C667F48C7A640063BA8749998B8C177F2094F24EA7961098A4660C73160000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77E677E877EA77EF77F077F177F277F477F577F777F977FA77FB77FC78037804 -7805780678077808780A780B780E780F7810781378157819781B781E78207821 -782278247828782A782B782E782F78317832783378357836783D783F78417842 -78437844784678487849784A784B784D784F78517853785478587859785A0000 -785B785C785E785F7860786178627863786478657866786778687869786F7870 -78717872787378747875787678787879787A787B787D787E787F788078817882 -7883573A5C1D5E38957F507F80A05382655E7545553150218D856284949E671D -56326F6E5DE2543570928F66626F64A463A35F7B6F8890F481E38FB05C186668 -5FF16C8996488D81886C649179F057CE6A59621054484E587A0B60E96F848BDA -627F901E9A8B79E4540375F4630153196C608FDF5F1B9A70803B9F7F4F885C3A -8D647FC565A570BD514551B2866B5D075BA062BD916C75748E0C7A2061017B79 -4EC77EF877854E1181ED521D51FA6A7153A88E87950496CF6EC19664695A0000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7884788578867888788A788B788F789078927894789578967899789D789E78A0 -78A278A478A678A878A978AA78AB78AC78AD78AE78AF78B578B678B778B878BA -78BB78BC78BD78BF78C078C278C378C478C678C778C878CC78CD78CE78CF78D1 -78D278D378D678D778D878DA78DB78DC78DD78DE78DF78E078E178E278E30000 -78E478E578E678E778E978EA78EB78ED78EE78EF78F078F178F378F578F678F8 -78F978FB78FC78FD78FE78FF79007902790379047906790779087909790A790B -790C784050A877D7641089E6590463E35DDD7A7F693D4F20823955984E3275AE -7A975E625E8A95EF521B5439708A6376952457826625693F918755076DF37EAF -882262337EF075B5832878C196CC8F9E614874F78BCD6B64523A8D506B21806A -847156F153064ECE4E1B51D17C97918B7C074FC38E7F7BE17A9C64675D1450AC -810676017CB96DEC7FE067515B585BF878CB64AE641363AA632B9519642D8FBE -7B5476296253592754466B7950A362345E266B864EE38D37888B5F85902E0000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -790D790E790F791079117912791479157916791779187919791A791B791C791D -791F792079217922792379257926792779287929792A792B792C792D792E792F -793079317932793379357936793779387939793D793F79427943794479457947 -794A794B794C794D794E794F7950795179527954795579587959796179630000 -796479667969796A796B796C796E79707971797279737974797579767979797B -797C797D797E797F798279837986798779887989798B798C798D798E79907991 -79926020803D62C54E39535590F863B880C665E66C2E4F4660EE6DE18BDE5F39 -86CB5F536321515A83616863520063638E4850125C9B79775BFC52307A3B60BC -905376D75FB75F9776848E6C706F767B7B4977AA51F3909358244F4E6EF48FEA -654C7B1B72C46DA47FDF5AE162B55E95573084827B2C5E1D5F1F90127F1498A0 -63826EC7789870B95178975B57AB75354F4375385E9760E659606DC06BBF7889 -53FC96D551CB52016389540A94938C038DCC7239789F87768FED8C0D53E00000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7993799479957996799779987999799B799C799D799E799F79A079A179A279A3 -79A479A579A679A879A979AA79AB79AC79AD79AE79AF79B079B179B279B479B5 -79B679B779B879BC79BF79C279C479C579C779C879CA79CC79CE79CF79D079D3 -79D479D679D779D979DA79DB79DC79DD79DE79E079E179E279E579E879EA0000 -79EC79EE79F179F279F379F479F579F679F779F979FA79FC79FE79FF7A017A04 -7A057A077A087A097A0A7A0C7A0F7A107A117A127A137A157A167A187A197A1B -7A1C4E0176EF53EE948998769F0E952D5B9A8BA24E224E1C51AC846361C252A8 -680B4F97606B51BB6D1E515C6296659796618C46901775D890FD77636BD2728A -72EC8BFB583577798D4C675C9540809A5EA66E2159927AEF77ED953B6BB565AD -7F0E58065151961F5BF958A954288E726566987F56E4949D76FE9041638754C6 -591A593A579B8EB267358DFA8235524160F0581586FE5CE89E454FC4989D8BB9 -5A2560765384627C904F9102997F6069800C513F80335C1499756D314E8C0000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A1D7A1F7A217A227A247A257A267A277A287A297A2A7A2B7A2C7A2D7A2E7A2F -7A307A317A327A347A357A367A387A3A7A3E7A407A417A427A437A447A457A47 -7A487A497A4A7A4B7A4C7A4D7A4E7A4F7A507A527A537A547A557A567A587A59 -7A5A7A5B7A5C7A5D7A5E7A5F7A607A617A627A637A647A657A667A677A680000 -7A697A6A7A6B7A6C7A6D7A6E7A6F7A717A727A737A757A7B7A7C7A7D7A7E7A82 -7A857A877A897A8A7A8B7A8C7A8E7A8F7A907A937A947A997A9A7A9B7A9E7AA1 -7AA28D3053D17F5A7B4F4F104E4F96006CD573D085E95E06756A7FFB6A0A77FE -94927E4151E170E653CD8FD483038D2972AF996D6CDB574A82B365B980AA623F -963259A84EFF8BBF7EBA653E83F2975E556198DE80A5532A8BFD542080BA5E9F -6CB88D3982AC915A54296C1B52067EB7575F711A6C7E7C89594B4EFD5FFF6124 -7CAA4E305C0167AB87025CF0950B98CE75AF70FD902251AF7F1D8BBD594951E4 -4F5B5426592B657780A45B75627662C28F905E456C1F7B264F0F4FD8670D0000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7AA37AA47AA77AA97AAA7AAB7AAE7AAF7AB07AB17AB27AB47AB57AB67AB77AB8 -7AB97ABA7ABB7ABC7ABD7ABE7AC07AC17AC27AC37AC47AC57AC67AC77AC87AC9 -7ACA7ACC7ACD7ACE7ACF7AD07AD17AD27AD37AD47AD57AD77AD87ADA7ADB7ADC -7ADD7AE17AE27AE47AE77AE87AE97AEA7AEB7AEC7AEE7AF07AF17AF27AF30000 -7AF47AF57AF67AF77AF87AFB7AFC7AFE7B007B017B027B057B077B097B0C7B0D -7B0E7B107B127B137B167B177B187B1A7B1C7B1D7B1F7B217B227B237B277B29 -7B2D6D6E6DAA798F88B15F17752B629A8F854FEF91DC65A7812F81515E9C8150 -8D74526F89868D4B590D50854ED8961C723681798D1F5BCC8BA3964459877F1A -54905676560E8BE565396982949976D66E895E727518674667D17AFF809D8D76 -611F79C665628D635188521A94A27F38809B7EB25C976E2F67607BD9768B9AD8 -818F7F947CD5641E95507A3F544A54E56B4C640162089E3D80F3759952729769 -845B683C86E49601969494EC4E2A54047ED968398DDF801566F45E9A7FB90000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7B2F7B307B327B347B357B367B377B397B3B7B3D7B3F7B407B417B427B437B44 -7B467B487B4A7B4D7B4E7B537B557B577B597B5C7B5E7B5F7B617B637B647B65 -7B667B677B687B697B6A7B6B7B6C7B6D7B6F7B707B737B747B767B787B7A7B7C -7B7D7B7F7B817B827B837B847B867B877B887B897B8A7B8B7B8C7B8E7B8F0000 -7B917B927B937B967B987B997B9A7B9B7B9E7B9F7BA07BA37BA47BA57BAE7BAF -7BB07BB27BB37BB57BB67BB77BB97BBA7BBB7BBC7BBD7BBE7BBF7BC07BC27BC3 -7BC457C2803F68975DE5653B529F606D9F9A4F9B8EAC516C5BAB5F135DE96C5E -62F18D21517194A952FE6C9F82DF72D757A267848D2D591F8F9C83C754957B8D -4F306CBD5B6459D19F1353E486CA9AA88C3780A16545987E56FA96C7522E74DC -52505BE1630289024E5662D0602A68FA51735B9851A089C27BA199867F5060EF -704C8D2F51495E7F901B747089C4572D78455F529F9F95FA8F689B3C8BE17678 -684267DC8DEA8D35523D8F8A6EDA68CD950590ED56FD679C88F98FC754C80000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7BC57BC87BC97BCA7BCB7BCD7BCE7BCF7BD07BD27BD47BD57BD67BD77BD87BDB -7BDC7BDE7BDF7BE07BE27BE37BE47BE77BE87BE97BEB7BEC7BED7BEF7BF07BF2 -7BF37BF47BF57BF67BF87BF97BFA7BFB7BFD7BFF7C007C017C027C037C047C05 -7C067C087C097C0A7C0D7C0E7C107C117C127C137C147C157C177C187C190000 -7C1A7C1B7C1C7C1D7C1E7C207C217C227C237C247C257C287C297C2B7C2C7C2D -7C2E7C2F7C307C317C327C337C347C357C367C377C397C3A7C3B7C3C7C3D7C3E -7C429AB85B696D776C264EA55BB39A87916361A890AF97E9542B6DB55BD251FD -558A7F557FF064BC634D65F161BE608D710A6C576C49592F676D822A58D5568E -8C6A6BEB90DD597D801753F76D695475559D837783CF683879BE548C4F555408 -76D28C8996026CB36DB88D6B89109E648D3A563F9ED175D55F8872E0606854FC -4EA86A2A886160528F7054C470D886799E3F6D2A5B8F5F187EA255894FAF7334 -543C539A5019540E547C4E4E5FFD745A58F6846B80E1877472D07CCA6E560000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7C437C447C457C467C477C487C497C4A7C4B7C4C7C4E7C4F7C507C517C527C53 -7C547C557C567C577C587C597C5A7C5B7C5C7C5D7C5E7C5F7C607C617C627C63 -7C647C657C667C677C687C697C6A7C6B7C6C7C6D7C6E7C6F7C707C717C727C75 -7C767C777C787C797C7A7C7E7C7F7C807C817C827C837C847C857C867C870000 -7C887C8A7C8B7C8C7C8D7C8E7C8F7C907C937C947C967C997C9A7C9B7CA07CA1 -7CA37CA67CA77CA87CA97CAB7CAC7CAD7CAF7CB07CB47CB57CB67CB77CB87CBA -7CBB5F27864E552C62A44E926CAA623782B154D7534E733E6ED1753B52125316 -8BDD69D05F8A60006DEE574F6B2273AF68538FD87F13636260A3552475EA8C62 -71156DA35BA65E7B8352614C9EC478FA87577C27768751F060F6714C66435E4C -604D8C0E707063258F895FBD606286D456DE6BC160946167534960E066668D3F -79FD4F1A70E96C478BB38BF27ED88364660F5A5A9B426D516DF78C416D3B4F19 -706B83B7621660D1970D8D27797851FB573E57FA673A75787A3D79EF7B950000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7CBF7CC07CC27CC37CC47CC67CC97CCB7CCE7CCF7CD07CD17CD27CD37CD47CD8 -7CDA7CDB7CDD7CDE7CE17CE27CE37CE47CE57CE67CE77CE97CEA7CEB7CEC7CED -7CEE7CF07CF17CF27CF37CF47CF57CF67CF77CF97CFA7CFC7CFD7CFE7CFF7D00 -7D017D027D037D047D057D067D077D087D097D0B7D0C7D0D7D0E7D0F7D100000 -7D117D127D137D147D157D167D177D187D197D1A7D1B7D1C7D1D7D1E7D1F7D21 -7D237D247D257D267D287D297D2A7D2C7D2D7D2E7D307D317D327D337D347D35 -7D36808C99658FF96FC08BA59E2159EC7EE97F095409678168D88F917C4D96C6 -53CA602575BE6C7253735AC97EA7632451E0810A5DF184DF628051805B634F0E -796D524260B86D4E5BC45BC28BA18BB065E25FCC964559937EE77EAA560967B7 -59394F735BB652A0835A988A8D3E753294BE50477A3C4EF767B69A7E5AC16B7C -76D1575A5C167B3A95F4714E517C80A9827059787F04832768C067EC78B17877 -62E363617B804FED526A51CF835069DB92748DF58D3189C1952E7BAD4EF60000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D377D387D397D3A7D3B7D3C7D3D7D3E7D3F7D407D417D427D437D447D457D46 -7D477D487D497D4A7D4B7D4C7D4D7D4E7D4F7D507D517D527D537D547D557D56 -7D577D587D597D5A7D5B7D5C7D5D7D5E7D5F7D607D617D627D637D647D657D66 -7D677D687D697D6A7D6B7D6C7D6D7D6F7D707D717D727D737D747D757D760000 -7D787D797D7A7D7B7D7C7D7D7D7E7D7F7D807D817D827D837D847D857D867D87 -7D887D897D8A7D8B7D8C7D8D7D8E7D8F7D907D917D927D937D947D957D967D97 -7D98506582305251996F6E106E856DA75EFA50F559DC5C066D466C5F7586848B -686859568BB253209171964D854969127901712680F64EA490CA6D479A845A07 -56BC640594F077EB4FA5811A72E189D2997A7F347EDE527F655991758F7F8F83 -53EB7A9663ED63A5768679F888579636622A52AB8282685467706377776B7AED -6D017ED389E359D0621285C982A5754C501F4ECB75A58BEB5C4A5DFE7B4B65A4 -91D14ECA6D25895F7D2795264EC58C288FDB9773664B79818FD170EC6D780000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D997D9A7D9B7D9C7D9D7D9E7D9F7DA07DA17DA27DA37DA47DA57DA77DA87DA9 -7DAA7DAB7DAC7DAD7DAF7DB07DB17DB27DB37DB47DB57DB67DB77DB87DB97DBA -7DBB7DBC7DBD7DBE7DBF7DC07DC17DC27DC37DC47DC57DC67DC77DC87DC97DCA -7DCB7DCC7DCD7DCE7DCF7DD07DD17DD27DD37DD47DD57DD67DD77DD87DD90000 -7DDA7DDB7DDC7DDD7DDE7DDF7DE07DE17DE27DE37DE47DE57DE67DE77DE87DE9 -7DEA7DEB7DEC7DED7DEE7DEF7DF07DF17DF27DF37DF47DF57DF67DF77DF87DF9 -7DFA5C3D52B283465162830E775B66769CB84EAC60CA7CBE7CB37ECF4E958B66 -666F988897595883656C955C5F8475C997567ADF7ADE51C070AF7A9863EA7A76 -7EA0739697ED4E4570784E5D915253A9655165E781FC8205548E5C31759A97A0 -62D872D975BD5C459A7983CA5C40548077E94E3E6CAE805A62D2636E5DE85177 -8DDD8E1E952F4FF153E560E770AC526763509E435A1F5026773753777EE26485 -652B628963985014723589C951B38BC07EDD574783CC94A7519B541B5CFB0000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7DFB7DFC7DFD7DFE7DFF7E007E017E027E037E047E057E067E077E087E097E0A -7E0B7E0C7E0D7E0E7E0F7E107E117E127E137E147E157E167E177E187E197E1A -7E1B7E1C7E1D7E1E7E1F7E207E217E227E237E247E257E267E277E287E297E2A -7E2B7E2C7E2D7E2E7E2F7E307E317E327E337E347E357E367E377E387E390000 -7E3A7E3C7E3D7E3E7E3F7E407E427E437E447E457E467E487E497E4A7E4B7E4C -7E4D7E4E7E4F7E507E517E527E537E547E557E567E577E587E597E5A7E5B7E5C -7E5D4FCA7AE36D5A90E19A8F55805496536154AF5F0063E9697751EF6168520A -582A52D8574E780D770B5EB761777CE0625B62974EA27095800362F770E49760 -577782DB67EF68F578D5989779D158F354B353EF6E34514B523B5BA28BFE80AF -554357A660735751542D7A7A60505B5463A762A053E362635BC767AF54ED7A9F -82E691775E9388E4593857AE630E8DE880EF57577B774FA95FEB5BBD6B3E5321 -7B5072C2684677FF773665F751B54E8F76D45CBF7AA58475594E9B4150800000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E5E7E5F7E607E617E627E637E647E657E667E677E687E697E6A7E6B7E6C7E6D -7E6E7E6F7E707E717E727E737E747E757E767E777E787E797E7A7E7B7E7C7E7D -7E7E7E7F7E807E817E837E847E857E867E877E887E897E8A7E8B7E8C7E8D7E8E -7E8F7E907E917E927E937E947E957E967E977E987E997E9A7E9C7E9D7E9E0000 -7EAE7EB47EBB7EBC7ED67EE47EEC7EF97F0A7F107F1E7F377F397F3B7F3C7F3D -7F3E7F3F7F407F417F437F467F477F487F497F4A7F4B7F4C7F4D7F4E7F4F7F52 -7F53998861276E8357646606634656F062EC62695ED39614578362C955878721 -814A8FA3556683B167658D5684DD5A6A680F62E67BEE961151706F9C8C3063FD -89C861D27F0670C26EE57405699472FC5ECA90CE67176D6A635E52B372628001 -4F6C59E5916A70D96D9D52D24E5096F7956D857E78CA7D2F5121579264C2808B -7C7B6CEA68F1695E51B7539868A872819ECE7BF172F879BB6F137406674E91CC -9CA4793C83898354540F68174E3D538952B1783E5386522950884F8B4FD00000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7F567F597F5B7F5C7F5D7F5E7F607F637F647F657F667F677F6B7F6C7F6D7F6F -7F707F737F757F767F777F787F7A7F7B7F7C7F7D7F7F7F807F827F837F847F85 -7F867F877F887F897F8B7F8D7F8F7F907F917F927F937F957F967F977F987F99 -7F9B7F9C7FA07FA27FA37FA57FA67FA87FA97FAA7FAB7FAC7FAD7FAE7FB10000 -7FB37FB47FB57FB67FB77FBA7FBB7FBE7FC07FC27FC37FC47FC67FC77FC87FC9 -7FCB7FCD7FCF7FD07FD17FD27FD37FD67FD77FD97FDA7FDB7FDC7FDD7FDE7FE2 -7FE375E27ACB7C926CA596B6529B748354E94FE9805483B28FDE95705EC9601C -6D9F5E18655B813894FE604B70BC7EC37CAE51C968817CB1826F4E248F8691CF -667E4EAE8C0564A9804A50DA759771CE5BE58FBD6F664E86648295635ED66599 -521788C270C852A3730E7433679778F797164E3490BB9CDE6DCB51DB8D41541D -62CE73B283F196F69F8494C34F367F9A51CC707596755CAD988653E64EE46E9C -740969B4786B998F7559521876246D4167F3516D9F99804B54997B3C7ABF0000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7FE47FE77FE87FEA7FEB7FEC7FED7FEF7FF27FF47FF57FF67FF77FF87FF97FFA -7FFD7FFE7FFF8002800780088009800A800E800F80118013801A801B801D801E -801F802180238024802B802C802D802E802F8030803280348039803A803C803E -8040804180448045804780488049804E804F8050805180538055805680570000 -8059805B805C805D805E805F806080618062806380648065806680678068806B -806C806D806E806F807080728073807480758076807780788079807A807B807C -807D9686578462E29647697C5A0464027BD36F0F964B82A6536298855E907089 -63B35364864F9C819E93788C97328DEF8D429E7F6F5E79845F559646622E9A74 -541594DD4FA365C55C655C617F1586516C2F5F8B73876EE47EFF5CE6631B5B6A -6EE653754E7163A0756562A18F6E4F264ED16CA67EB68BBA841D87BA7F57903B -95237BA99AA188F8843D6D1B9A867EDC59889EBB739B780186829A6C9A82561B -541757CB4E709EA653568FC881097792999286EE6EE1851366FC61626F2B0000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -807E8081808280858088808A808D808E808F8090809180928094809580978099 -809E80A380A680A780A880AC80B080B380B580B680B880B980BB80C580C780C8 -80C980CA80CB80CF80D080D180D280D380D480D580D880DF80E080E280E380E6 -80EE80F580F780F980FB80FE80FF8100810181038104810581078108810B0000 -810C811581178119811B811C811D811F81208121812281238124812581268127 -81288129812A812B812D812E813081338134813581378139813A813B813C813D -813F8C298292832B76F26C135FD983BD732B8305951A6BDB77DB94C6536F8302 -51925E3D8C8C8D384E4873AB679A68859176970971646CA177095A9295416BCF -7F8E66275BD059B95A9A95E895F74EEC840C84996AAC76DF9530731B68A65B5F -772F919A97617CDC8FF78C1C5F257C7379D889C56CCC871C5BC65E4268C97720 -7EF55195514D52C95A297F05976282D763CF778485D079D26E3A5E9959998511 -706D6C1162BF76BF654F60AF95FD660E879F9E2394ED540D547D8C2C64780000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -81408141814281438144814581478149814D814E814F8152815681578158815B -815C815D815E815F816181628163816481668168816A816B816C816F81728173 -81758176817781788181818381848185818681878189818B818C818D818E8190 -8192819381948195819681978199819A819E819F81A081A181A281A481A50000 -81A781A981AB81AC81AD81AE81AF81B081B181B281B481B581B681B781B881B9 -81BC81BD81BE81BF81C481C581C781C881C981CB81CD81CE81CF81D081D181D2 -81D3647986116A21819C78E864699B5462B9672B83AB58A89ED86CAB6F205BDE -964C8C0B725F67D062C772614EA959C66BCD589366AE5E5552DF6155672876EE -776672677A4662FF54EA545094A090A35A1C7EB36C164E435976801059485357 -753796BE56CA63208111607C95F96DD65462998151855AE980FD59AE9713502A -6CE55C3C62DF4F60533F817B90066EBA852B62C85E7478BE64B5637B5FF55A18 -917F9E1F5C3F634F80425B7D556E954A954D6D8560A867E072DE51DD5B810000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -81D481D581D681D781D881D981DA81DB81DC81DD81DE81DF81E081E181E281E4 -81E581E681E881E981EB81EE81EF81F081F181F281F581F681F781F881F981FA -81FD81FF8203820782088209820A820B820E820F821182138215821682178218 -8219821A821D822082248225822682278229822E8232823A823C823D823F0000 -8240824182428243824582468248824A824C824D824E82508251825282538254 -8255825682578259825B825C825D825E82608261826282638264826582668267 -826962E76CDE725B626D94AE7EBD81136D53519C5F04597452AA601259736696 -8650759F632A61E67CEF8BFA54E66B279E256BB485D5545550766CA4556A8DB4 -722C5E156015743662CD6392724C5F986E436D3E65006F5876D878D076FC7554 -522453DB4E535E9E65C1802A80D6629B5486522870AE888D8DD16CE1547880DA -57F988F48D54966A914D4F696C9B55B776C6783062A870F96F8E5F6D84EC68DA -787C7BF781A8670B9E4F636778B0576F78129739627962AB528874356BD70000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -826A826B826C826D82718275827682778278827B827C82808281828382858286 -82878289828C82908293829482958296829A829B829E82A082A282A382A782B2 -82B582B682BA82BB82BC82BF82C082C282C382C582C682C982D082D682D982DA -82DD82E282E782E882E982EA82EC82ED82EE82F082F282F382F582F682F80000 -82FA82FC82FD82FE82FF8300830A830B830D831083128313831683188319831D -831E831F83208321832283238324832583268329832A832E833083328337833B -833D5564813E75B276AE533975DE50FB5C418B6C7BC7504F72479A9798D86F02 -74E27968648777A562FC98918D2B54C180584E52576A82F9840D5E7351ED74F6 -8BC45C4F57616CFC98875A4678349B448FEB7C955256625194FA4EC683868461 -83E984B257D467345703666E6D668C3166DD7011671F6B3A6816621A59BB4E03 -51C46F0667D26C8F517668CB59476B6775665D0E81109F5065D7794879419A91 -8D775C824E5E4F01542F5951780C56686C148FC45F036C7D6CE38BAB63900000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -833E833F83418342834483458348834A834B834C834D834E8353835583568357 -83588359835D836283708371837283738374837583768379837A837E837F8380 -838183828383838483878388838A838B838C838D838F83908391839483958396 -83978399839A839D839F83A183A283A383A483A583A683A783AC83AD83AE0000 -83AF83B583BB83BE83BF83C283C383C483C683C883C983CB83CD83CE83D083D1 -83D283D383D583D783D983DA83DB83DE83E283E383E483E683E783E883EB83EC -83ED60706D3D72756266948E94C553438FC17B7E4EDF8C264E7E9ED494B194B3 -524D6F5C90636D458C3458115D4C6B206B4967AA545B81547F8C589985375F3A -62A26A47953965726084686577A74E544FA85DE7979864AC7FD85CED4FCF7A8D -520783044E14602F7A8394A64FB54EB279E6743452E482B964D279BD5BDD6C81 -97528F7B6C22503E537F6E0564CE66746C3060C598778BF75E86743C7A7779CB -4E1890B174036C4256DA914B6CC58D8B533A86C666F28EAF5C489A716E200000 -C8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -83EE83EF83F383F483F583F683F783FA83FB83FC83FE83FF8400840284058407 -84088409840A84108412841384148415841684178419841A841B841E841F8420 -8421842284238429842A842B842C842D842E842F843084328433843484358436 -84378439843A843B843E843F8440844184428443844484458447844884490000 -844A844B844C844D844E844F8450845284538454845584568458845D845E845F -8460846284648465846684678468846A846E846F84708472847484778479847B -847C53D65A369F8B8DA353BB570898A76743919B6CC9516875CA62F372AC5238 -529D7F3A7094763853749E4A69B7786E96C088D97FA4713671C3518967D374E4 -58E4651856B78BA9997662707ED560F970ED58EC4EC14EBA5FCD97E74EFB8BA4 -5203598A7EAB62544ECD65E5620E833884C98363878D71946EB65BB97ED25197 -63C967D480898339881551125B7A59828FB14E736C5D516589258F6F962E854A -745E951095F06DA682E55F3164926D128428816E9CC3585E8D5B4E0953C10000 -C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -847D847E847F848084818483848484858486848A848D848F8490849184928493 -8494849584968498849A849B849D849E849F84A084A284A384A484A584A684A7 -84A884A984AA84AB84AC84AD84AE84B084B184B384B584B684B784BB84BC84BE -84C084C284C384C584C684C784C884CB84CC84CE84CF84D284D484D584D70000 -84D884D984DA84DB84DC84DE84E184E284E484E784E884E984EA84EB84ED84EE -84EF84F184F284F384F484F584F684F784F884F984FA84FB84FD84FE85008501 -85024F1E6563685155D34E2764149A9A626B5AC2745F82726DA968EE50E7838E -7802674052396C997EB150BB5565715E7B5B665273CA82EB67495C715220717D -886B95EA965564C58D6181B355846C5562477F2E58924F2455468D4F664C4E0A -5C1A88F368A2634E7A0D70E7828D52FA97F65C1154E890B57ECD59628D4A86C7 -820C820D8D6664445C0461516D89793E8BBE78377533547B4F388EAB6DF15A20 -7EC5795E6C885BA15A76751A80BE614E6E1758F0751F7525727253477EF30000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8503850485058506850785088509850A850B850D850E850F8510851285148515 -851685188519851B851C851D851E852085228523852485258526852785288529 -852A852D852E852F8530853185328533853485358536853E853F854085418542 -8544854585468547854B854C854D854E854F8550855185528553855485550000 -85578558855A855B855C855D855F85608561856285638565856685678569856A -856B856C856D856E856F8570857185738575857685778578857C857D857F8580 -8581770176DB526980DC57235E08593172EE65BD6E7F8BD75C388671534177F3 -62FE65F64EC098DF86805B9E8BC653F277E24F7F5C4E9A7659CB5F0F793A58EB -4E1667FF4E8B62ED8A93901D52BF662F55DC566C90024ED54F8D91CA99706C0F -5E0260435BA489C68BD56536624B99965B885BFF6388552E53D77626517D852C -67A268B36B8A62928F9353D482126DD1758F4E668D4E5B70719F85AF669166D9 -7F7287009ECD9F205C5E672F8FF06811675F620D7AD658855EB665706F310000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -85828583858685888589858A858B858C858D858E859085918592859385948595 -8596859785988599859A859D859E859F85A085A185A285A385A585A685A785A9 -85AB85AC85AD85B185B285B385B485B585B685B885BA85BB85BC85BD85BE85BF -85C085C285C385C485C585C685C785C885CA85CB85CC85CD85CE85D185D20000 -85D485D685D785D885D985DA85DB85DD85DE85DF85E085E185E285E385E585E6 -85E785E885EA85EB85EC85ED85EE85EF85F085F185F285F385F485F585F685F7 -85F860555237800D6454887075295E05681362F4971C53CC723D8C016C347761 -7A0E542E77AC987A821C8BF47855671470C165AF64955636601D79C153F84E1D -6B7B80865BFA55E356DB4F3A4F3C99725DF3677E80386002988290015B8B8BBC -8BF5641C825864DE55FD82CF91654FD77D20901F7C9F50F358516EAF5BBF8BC9 -80839178849C7B97867D968B968F7EE59AD3788E5C817A57904296A7795F5B59 -635F7B0B84D168AD55067F2974107D2295016240584C4ED65B83597958540000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -85F985FA85FC85FD85FE860086018602860386048606860786088609860A860B -860C860D860E860F86108612861386148615861786188619861A861B861C861D -861E861F86208621862286238624862586268628862A862B862C862D862E862F -863086318632863386348635863686378639863A863B863D863E863F86400000 -864186428643864486458646864786488649864A864B864C8652865386558656 -865786588659865B865C865D865F866086618663866486658666866786688669 -866A736D631E8E4B8E0F80CE82D462AC53F06CF0915E592A60016C70574D644A -8D2A762B6EE9575B6A8075F06F6D8C2D8C0857666BEF889278B363A253F970AD -6C645858642A580268E0819B55107CD650188EBA6DCC8D9F70EB638F6D9B6ED4 -7EE68404684390036DD896768BA85957727985E4817E75BC8A8A68AF52548E22 -951163D098988E44557C4F5366FF568F60D56D9552435C4959296DFB586B7530 -751C606C82148146631167618FE2773A8DF38D3494C15E165385542C70C30000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -866D866F86708672867386748675867686778678868386848685868686878688 -8689868E868F86908691869286948696869786988699869A869B869E869F86A0 -86A186A286A586A686AB86AD86AE86B286B386B786B886B986BB86BC86BD86BE -86BF86C186C286C386C586C886CC86CD86D286D386D586D686D786DA86DC0000 -86DD86E086E186E286E386E586E686E786E886EA86EB86EC86EF86F586F686F7 -86FA86FB86FC86FD86FF8701870487058706870B870C870E870F871087118714 -87166C405EF7505C4EAD5EAD633A8247901A6850916E77B3540C94DC5F647AE5 -687663457B527EDF75DB507762955934900F51F879C37A8156FE5F9290146D82 -5C60571F541051546E4D56E263A89893817F8715892A9000541E5C6F81C062D6 -625881319E3596409A6E9A7C692D59A562D3553E631654C786D96D3C5A0374E6 -889C6B6A59168C4C5F2F6E7E73A9987D4E3870F75B8C7897633D665A769660CB -5B9B5A494E0781556C6A738B4EA167897F515F8065FA671B5FD859845A010000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8719871B871D871F87208724872687278728872A872B872C872D872F87308732 -87338735873687388739873A873C873D8740874187428743874487458746874A -874B874D874F8750875187528754875587568758875A875B875C875D875E875F -876187628766876787688769876A876B876C876D876F87718772877387750000 -877787788779877A877F878087818784878687878789878A878C878E878F8790 -8791879287948795879687988799879A879B879C879D879E87A087A187A287A3 -87A45DCD5FAE537197E68FDD684556F4552F60DF4E3A6F4D7EF482C7840E59D4 -4F1F4F2A5C3E7EAC672A851A5473754F80C355829B4F4F4D6E2D8C135C096170 -536B761F6E29868A658795FB7EB9543B7A337D0A95EE55E17FC174EE631D8717 -6DA17A9D621165A1536763E16C835DEB545C94A84E4C6C618BEC5C4B65E0829C -68A7543E54346BCB6B664E9463425348821E4F0D4FAE575E620A96FE66647269 -52FF52A1609F8BEF661471996790897F785277FD6670563B54389521727A0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -87A587A687A787A987AA87AE87B087B187B287B487B687B787B887B987BB87BC -87BE87BF87C187C287C387C487C587C787C887C987CC87CD87CE87CF87D087D4 -87D587D687D787D887D987DA87DC87DD87DE87DF87E187E287E387E487E687E7 -87E887E987EB87EC87ED87EF87F087F187F287F387F487F587F687F787F80000 -87FA87FB87FC87FD87FF880088018802880488058806880788088809880B880C -880D880E880F8810881188128814881788188819881A881C881D881E881F8820 -88237A00606F5E0C6089819D591560DC718470EF6EAA6C5072806A8488AD5E2D -4E605AB3559C94E36D177CFB9699620F7EC6778E867E5323971E8F9666875CE1 -4FA072ED4E0B53A6590F54136380952851484ED99C9C7EA454B88D2488548237 -95F26D8E5F265ACC663E966973B0732E53BF817A99857FA15BAA967796507EBF -76F853A2957699997BB189446E584E617FD479658BE660F354CD4EAB98795DF7 -6A6150CF54118C618427785D9704524A54EE56A395006D885BB56DC666530000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -882488258826882788288829882A882B882C882D882E882F8830883188338834 -8835883688378838883A883B883D883E883F8841884288438846884788488849 -884A884B884E884F8850885188528853885588568858885A885B885C885D885E -885F886088668867886A886D886F8871887388748875887688788879887A0000 -887B887C88808883888688878889888A888C888E888F88908891889388948895 -889788988899889A889B889D889E889F88A088A188A388A588A688A788A888A9 -88AA5C0F5B5D6821809655787B11654869544E9B6B47874E978B534F631F643A -90AA659C80C18C10519968B0537887F961C86CC46CFB8C225C5185AA82AF950C -6B238F9B65B05FFB5FC34FE18845661F8165732960FA51745211578B5F6290A2 -884C91925E78674F602759D3514451F680F853086C7996C4718A4F114FEE7F9E -673D55C5950879C088967EE3589F620C9700865A5618987B5F908BB884C49157 -53D965ED5E8F755C60647D6E5A7F7EEA7EED8F6955A75BA360AC65CB73840000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -88AC88AE88AF88B088B288B388B488B588B688B888B988BA88BB88BD88BE88BF -88C088C388C488C788C888CA88CB88CC88CD88CF88D088D188D388D688D788DA -88DB88DC88DD88DE88E088E188E688E788E988EA88EB88EC88ED88EE88EF88F2 -88F588F688F788FA88FB88FD88FF890089018903890489058906890789080000 -8909890B890C890D890E890F891189148915891689178918891C891D891E891F -89208922892389248926892789288929892C892D892E892F8931893289338935 -89379009766377297EDA9774859B5B667A7496EA884052CB718F5FAA65EC8BE2 -5BFB9A6F5DE16B896C5B8BAD8BAF900A8FC5538B62BC9E269E2D54404E2B82BD -7259869C5D1688596DAF96C554D14E9A8BB6710954BD960970DF6DF976D04E25 -781487125CA95EF68A00989C960E708E6CBF594463A9773C884D6F1482735830 -71D5538C781A96C155015F6671305BB48C1A9A8C6B83592E9E2F79E76768626C -4F6F75A17F8A6D0B96336C274EF075D2517B68376F3E90808170599674760000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89388939893A893B893C893D893E893F89408942894389458946894789488949 -894A894B894C894D894E894F8950895189528953895489558956895789588959 -895A895B895C895D896089618962896389648965896789688969896A896B896C -896D896E896F8970897189728973897489758976897789788979897A897C0000 -897D897E8980898289848985898789888989898A898B898C898D898E898F8990 -899189928993899489958996899789988999899A899B899C899D899E899F89A0 -89A164475C2790657A918C2359DA54AC8200836F898180006930564E80367237 -91CE51B64E5F987563964E1A53F666F3814B591C6DB24E0058F9533B63D694F1 -4F9D4F0A886398905937905779FB4EEA80F075916C825B9C59E85F5D69058681 -501A5DF24E5977E34EE5827A6291661390915C794EBF5F7981C69038808475AB -4EA688D4610F6BC55FC64E4976CA6EA28BE38BAE8C0A8BD15F027FFC7FCC7ECE -8335836B56E06BB797F3963459FB541F94F66DEB5BC5996E5C395F1596900000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89A289A389A489A589A689A789A889A989AA89AB89AC89AD89AE89AF89B089B1 -89B289B389B489B589B689B789B889B989BA89BB89BC89BD89BE89BF89C089C3 -89CD89D389D489D589D789D889D989DB89DD89DF89E089E189E289E489E789E8 -89E989EA89EC89ED89EE89F089F189F289F489F589F689F789F889F989FA0000 -89FB89FC89FD89FE89FF8A018A028A038A048A058A068A088A098A0A8A0B8A0C -8A0D8A0E8A0F8A108A118A128A138A148A158A168A178A188A198A1A8A1B8A1C -8A1D537082F16A315A749E705E947F2883B984248425836787478FCE8D6276C8 -5F719896786C662054DF62E54F6381C375C85EB896CD8E0A86F9548F6CF36D8C -6C38607F52C775285E7D4F1860A05FE75C24753190AE94C072B96CB96E389149 -670953CB53F34F5191C98BF153C85E7C8FC26DE44E8E76C26986865E611A8206 -4F594FDE903E9C7C61096E1D6E1496854E885A3196E84E0E5C7F79B95B878BED -7FBD738957DF828B90C15401904755BB5CEA5FA161086B3272F180B28A890000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8A1E8A1F8A208A218A228A238A248A258A268A278A288A298A2A8A2B8A2C8A2D -8A2E8A2F8A308A318A328A338A348A358A368A378A388A398A3A8A3B8A3C8A3D -8A3F8A408A418A428A438A448A458A468A478A498A4A8A4B8A4C8A4D8A4E8A4F -8A508A518A528A538A548A558A568A578A588A598A5A8A5B8A5C8A5D8A5E0000 -8A5F8A608A618A628A638A648A658A668A678A688A698A6A8A6B8A6C8A6D8A6E -8A6F8A708A718A728A738A748A758A768A778A788A7A8A7B8A7C8A7D8A7E8A7F -8A806D745BD388D598848C6B9A6D9E336E0A51A4514357A38881539F63F48F95 -56ED54585706733F6E907F188FDC82D1613F6028966266F07EA68D8A8DC394A5 -5CB37CA4670860A6960580184E9190E75300966851418FD08574915D665597F5 -5B55531D78386742683D54C9707E5BB08F7D518D572854B1651266828D5E8D43 -810F846C906D7CDF51FF85FB67A365E96FA186A48E81566A90207682707671E5 -8D2362E952196CFD8D3C600E589E618E66FE8D60624E55B36E23672D8F670000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8A818A828A838A848A858A868A878A888A8B8A8C8A8D8A8E8A8F8A908A918A92 -8A948A958A968A978A988A998A9A8A9B8A9C8A9D8A9E8A9F8AA08AA18AA28AA3 -8AA48AA58AA68AA78AA88AA98AAA8AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB3 -8AB48AB58AB68AB78AB88AB98ABA8ABB8ABC8ABD8ABE8ABF8AC08AC18AC20000 -8AC38AC48AC58AC68AC78AC88AC98ACA8ACB8ACC8ACD8ACE8ACF8AD08AD18AD2 -8AD38AD48AD58AD68AD78AD88AD98ADA8ADB8ADC8ADD8ADE8ADF8AE08AE18AE2 -8AE394E195F87728680569A8548B4E4D70B88BC86458658B5B857A84503A5BE8 -77BB6BE18A797C986CBE76CF65A98F975D2D5C5586386808536062187AD96E5B -7EFD6A1F7AE05F706F335F20638C6DA867564E085E108D264ED780C07634969C -62DB662D627E6CBC8D7571677F695146808753EC906E629854F286F08F998005 -951785178FD96D5973CD659F771F7504782781FB8D1E94884FA6679575B98BCA -9707632F9547963584B8632377415F8172F04E896014657462EF6B63653F0000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8AE48AE58AE68AE78AE88AE98AEA8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF3 -8AF48AF58AF68AF78AF88AF98AFA8AFB8AFC8AFD8AFE8AFF8B008B018B028B03 -8B048B058B068B088B098B0A8B0B8B0C8B0D8B0E8B0F8B108B118B128B138B14 -8B158B168B178B188B198B1A8B1B8B1C8B1D8B1E8B1F8B208B218B228B230000 -8B248B258B278B288B298B2A8B2B8B2C8B2D8B2E8B2F8B308B318B328B338B34 -8B358B368B378B388B398B3A8B3B8B3C8B3D8B3E8B3F8B408B418B428B438B44 -8B455E2775C790D18BC1829D679D652F5431871877E580A281026C414E4B7EC7 -804C76F4690D6B966267503C4F84574063076B628DBE53EA65E87EB85FD7631A -63B781F381F47F6E5E1C5CD95236667A79E97A1A8D28709975D46EDE6CBB7A92 -4E2D76C55FE0949F88777EC879CD80BF91CD4EF24F17821F54685DDE6D328BCC -7CA58F7480985E1A549276B15B99663C9AA473E0682A86DB6731732A8BF88BDB -90107AF970DB716E62C477A956314E3B845767F152A986C08D2E94F87B510000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B468B478B488B498B4A8B4B8B4C8B4D8B4E8B4F8B508B518B528B538B548B55 -8B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B65 -8B678B688B698B6A8B6B8B6D8B6E8B6F8B708B718B728B738B748B758B768B77 -8B788B798B7A8B7B8B7C8B7D8B7E8B7F8B808B818B828B838B848B858B860000 -8B878B888B898B8A8B8B8B8C8B8D8B8E8B8F8B908B918B928B938B948B958B96 -8B978B988B998B9A8B9B8B9C8B9D8B9E8B9F8BAC8BB18BBB8BC78BD08BEA8C09 -8C1E4F4F6CE8795D9A7B6293722A62FD4E1378168F6C64B08D5A7BC668695E84 -88C55986649E58EE72B6690E95258FFD8D5857607F008C0651C6634962D95353 -684C74228301914C55447740707C6D4A517954A88D4459FF6ECB6DC45B5C7D2B -4ED47C7D6ED35B5081EA6E0D5B579B0368D58E2A5B977EFC603B7EB590B98D70 -594F63CD79DF8DB3535265CF79568BC5963B7EC494BB7E825634918967007F6A -5C0A907566285DE64F5067DE505A4F5C57505EA7000000000000000000000000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8C388C398C3A8C3B8C3C8C3D8C3E8C3F8C408C428C438C448C458C488C4A8C4B -8C4D8C4E8C4F8C508C518C528C538C548C568C578C588C598C5B8C5C8C5D8C5E -8C5F8C608C638C648C658C668C678C688C698C6C8C6D8C6E8C6F8C708C718C72 -8C748C758C768C778C7B8C7C8C7D8C7E8C7F8C808C818C838C848C868C870000 -8C888C8B8C8D8C8E8C8F8C908C918C928C938C958C968C978C998C9A8C9B8C9C -8C9D8C9E8C9F8CA08CA18CA28CA38CA48CA58CA68CA78CA88CA98CAA8CAB8CAC -8CAD4E8D4E0C51404E105EFF53454E154E984E1E9B325B6C56694E2879BA4E3F -53154E47592D723B536E6C1056DF80E499976BD3777E9F174E364E9F9F104E5C -4E694E9382885B5B556C560F4EC4538D539D53A353A553AE97658D5D531A53F5 -5326532E533E8D5C5366536352025208520E522D5233523F5240524C525E5261 -525C84AF527D528252815290529351827F544EBB4EC34EC94EC24EE84EE14EEB -4EDE4F1B4EF34F224F644EF54F254F274F094F2B4F5E4F6765384F5A4F5D0000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8CAE8CAF8CB08CB18CB28CB38CB48CB58CB68CB78CB88CB98CBA8CBB8CBC8CBD -8CBE8CBF8CC08CC18CC28CC38CC48CC58CC68CC78CC88CC98CCA8CCB8CCC8CCD -8CCE8CCF8CD08CD18CD28CD38CD48CD58CD68CD78CD88CD98CDA8CDB8CDC8CDD -8CDE8CDF8CE08CE18CE28CE38CE48CE58CE68CE78CE88CE98CEA8CEB8CEC0000 -8CED8CEE8CEF8CF08CF18CF28CF38CF48CF58CF68CF78CF88CF98CFA8CFB8CFC -8CFD8CFE8CFF8D008D018D028D038D048D058D068D078D088D098D0A8D0B8D0C -8D0D4F5F4F574F324F3D4F764F744F914F894F834F8F4F7E4F7B4FAA4F7C4FAC -4F944FE64FE84FEA4FC54FDA4FE34FDC4FD14FDF4FF85029504C4FF3502C500F -502E502D4FFE501C500C50255028507E504350555048504E506C507B50A550A7 -50A950BA50D6510650ED50EC50E650EE5107510B4EDD6C3D4F584F654FCE9FA0 -6C467C74516E5DFD9EC999985181591452F9530D8A07531051EB591951554EA0 -51564EB3886E88A44EB5811488D279805B3488037FB851AB51B151BD51BC0000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8D0E8D0F8D108D118D128D138D148D158D168D178D188D198D1A8D1B8D1C8D20 -8D518D528D578D5F8D658D688D698D6A8D6C8D6E8D6F8D718D728D788D798D7A -8D7B8D7C8D7D8D7E8D7F8D808D828D838D868D878D888D898D8C8D8D8D8E8D8F -8D908D928D938D958D968D978D988D998D9A8D9B8D9C8D9D8D9E8DA08DA10000 -8DA28DA48DA58DA68DA78DA88DA98DAA8DAB8DAC8DAD8DAE8DAF8DB08DB28DB6 -8DB78DB98DBB8DBD8DC08DC18DC28DC58DC78DC88DC98DCA8DCD8DD08DD28DD3 -8DD451C7519651A251A58BA08BA68BA78BAA8BB48BB58BB78BC28BC38BCB8BCF -8BCE8BD28BD38BD48BD68BD88BD98BDC8BDF8BE08BE48BE88BE98BEE8BF08BF3 -8BF68BF98BFC8BFF8C008C028C048C078C0C8C0F8C118C128C148C158C168C19 -8C1B8C188C1D8C1F8C208C218C258C278C2A8C2B8C2E8C2F8C328C338C358C36 -5369537A961D962296219631962A963D963C964296499654965F9667966C9672 -96749688968D969796B09097909B909D909990AC90A190B490B390B690BA0000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8DD58DD88DD98DDC8DE08DE18DE28DE58DE68DE78DE98DED8DEE8DF08DF18DF2 -8DF48DF68DFC8DFE8DFF8E008E018E028E038E048E068E078E088E0B8E0D8E0E -8E108E118E128E138E158E168E178E188E198E1A8E1B8E1C8E208E218E248E25 -8E268E278E288E2B8E2D8E308E328E338E348E368E378E388E3B8E3C8E3E0000 -8E3F8E438E458E468E4C8E4D8E4E8E4F8E508E538E548E558E568E578E588E5A -8E5B8E5C8E5D8E5E8E5F8E608E618E628E638E648E658E678E688E6A8E6B8E6E -8E7190B890B090CF90C590BE90D090C490C790D390E690E290DC90D790DB90EB -90EF90FE91049122911E91239131912F913991439146520D594252A252AC52AD -52BE54FF52D052D652F053DF71EE77CD5EF451F551FC9B2F53B65F01755A5DEF -574C57A957A1587E58BC58C558D15729572C572A57335739572E572F575C573B -574257695785576B5786577C577B5768576D5776577357AD57A4578C57B257CF -57A757B4579357A057D557D857DA57D957D257B857F457EF57F857E457DD0000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E738E758E778E788E798E7A8E7B8E7D8E7E8E808E828E838E848E868E888E89 -8E8A8E8B8E8C8E8D8E8E8E918E928E938E958E968E978E988E998E9A8E9B8E9D -8E9F8EA08EA18EA28EA38EA48EA58EA68EA78EA88EA98EAA8EAD8EAE8EB08EB1 -8EB38EB48EB58EB68EB78EB88EB98EBB8EBC8EBD8EBE8EBF8EC08EC18EC20000 -8EC38EC48EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECF8ED08ED18ED28ED3 -8ED48ED58ED68ED78ED88ED98EDA8EDB8EDC8EDD8EDE8EDF8EE08EE18EE28EE3 -8EE4580B580D57FD57ED5800581E5819584458205865586C58815889589A5880 -99A89F1961FF8279827D827F828F828A82A88284828E82918297829982AB82B8 -82BE82B082C882CA82E3829882B782AE82CB82CC82C182A982B482A182AA829F -82C482CE82A482E1830982F782E4830F830782DC82F482D282D8830C82FB82D3 -8311831A83068314831582E082D5831C8351835B835C83088392833C83348331 -839B835E832F834F83478343835F834083178360832D833A8333836683650000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8EE58EE68EE78EE88EE98EEA8EEB8EEC8EED8EEE8EEF8EF08EF18EF28EF38EF4 -8EF58EF68EF78EF88EF98EFA8EFB8EFC8EFD8EFE8EFF8F008F018F028F038F04 -8F058F068F078F088F098F0A8F0B8F0C8F0D8F0E8F0F8F108F118F128F138F14 -8F158F168F178F188F198F1A8F1B8F1C8F1D8F1E8F1F8F208F218F228F230000 -8F248F258F268F278F288F298F2A8F2B8F2C8F2D8F2E8F2F8F308F318F328F33 -8F348F358F368F378F388F398F3A8F3B8F3C8F3D8F3E8F3F8F408F418F428F43 -8F448368831B8369836C836A836D836E83B0837883B383B483A083AA8393839C -8385837C83B683A9837D83B8837B8398839E83A883BA83BC83C1840183E583D8 -58078418840B83DD83FD83D6841C84388411840683D483DF840F840383F883F9 -83EA83C583C0842683F083E1845C8451845A8459847384878488847A84898478 -843C844684698476848C848E8431846D84C184CD84D084E684BD84D384CA84BF -84BA84E084A184B984B4849784E584E3850C750D853884F08539851F853A0000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8F458F468F478F488F498F4A8F4B8F4C8F4D8F4E8F4F8F508F518F528F538F54 -8F558F568F578F588F598F5A8F5B8F5C8F5D8F5E8F5F8F608F618F628F638F64 -8F658F6A8F808F8C8F928F9D8FA08FA18FA28FA48FA58FA68FA78FAA8FAC8FAD -8FAE8FAF8FB28FB38FB48FB58FB78FB88FBA8FBB8FBC8FBF8FC08FC38FC60000 -8FC98FCA8FCB8FCC8FCD8FCF8FD28FD68FD78FDA8FE08FE18FE38FE78FEC8FEF -8FF18FF28FF48FF58FF68FFA8FFB8FFC8FFE8FFF90079008900C900E90139015 -90188556853B84FF84FC8559854885688564855E857A77A285438572857B85A4 -85A88587858F857985AE859C858585B985B785B085D385C185DC85FF86278605 -86298616863C5EFE5F08593C594180375955595A5958530F5C225C255C2C5C34 -624C626A629F62BB62CA62DA62D762EE632262F66339634B634363AD63F66371 -637A638E63B4636D63AC638A636963AE63BC63F263F863E063FF63C463DE63CE -645263C663BE64456441640B641B6420640C64266421645E6484646D64960000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9019901C902390249025902790289029902A902B902C90309031903290339034 -90379039903A903D903F904090439045904690489049904A904B904C904E9054 -905590569059905A905C905D905E905F906090619064906690679069906A906B -906C906F90709071907290739076907790789079907A907B907C907E90810000 -90849085908690879089908A908C908D908E908F90909092909490969098909A -909C909E909F90A090A490A590A790A890A990AB90AD90B290B790BC90BD90BF -90C0647A64B764B8649964BA64C064D064D764E464E265096525652E5F0B5FD2 -75195F11535F53F153FD53E953E853FB541254165406544B5452545354545456 -54435421545754595423543254825494547754715464549A549B548454765466 -549D54D054AD54C254B454D254A754A654D354D4547254A354D554BB54BF54CC -54D954DA54DC54A954AA54A454DD54CF54DE551B54E7552054FD551454F35522 -5523550F55115527552A5567558F55B55549556D55415555553F5550553C0000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -90C290C390C690C890C990CB90CC90CD90D290D490D590D690D890D990DA90DE -90DF90E090E390E490E590E990EA90EC90EE90F090F190F290F390F590F690F7 -90F990FA90FB90FC90FF91009101910391059106910791089109910A910B910C -910D910E910F911091119112911391149115911691179118911A911B911C0000 -911D911F91209121912491259126912791289129912A912B912C912D912E9130 -9132913391349135913691379138913A913B913C913D913E913F914091419142 -91445537555655755576557755335530555C558B55D2558355B155B955885581 -559F557E55D65591557B55DF55BD55BE5594559955EA55F755C9561F55D155EB -55EC55D455E655DD55C455EF55E555F255F355CC55CD55E855F555E48F94561E -5608560C56015624562355FE56005627562D565856395657562C564D56625659 -565C564C5654568656645671566B567B567C5685569356AF56D456D756DD56E1 -56F556EB56F956FF5704570A5709571C5E0F5E195E145E115E315E3B5E3C0000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9145914791489151915391549155915691589159915B915C915F916091669167 -9168916B916D9173917A917B917C9180918191829183918491869188918A918E -918F9193919491959196919791989199919C919D919E919F91A091A191A491A5 -91A691A791A891A991AB91AC91B091B191B291B391B691B791B891B991BB0000 -91BC91BD91BE91BF91C091C191C291C391C491C591C691C891CB91D091D291D3 -91D491D591D691D791D891D991DA91DB91DD91DE91DF91E091E191E291E391E4 -91E55E375E445E545E5B5E5E5E615C8C5C7A5C8D5C905C965C885C985C995C91 -5C9A5C9C5CB55CA25CBD5CAC5CAB5CB15CA35CC15CB75CC45CD25CE45CCB5CE5 -5D025D035D275D265D2E5D245D1E5D065D1B5D585D3E5D345D3D5D6C5D5B5D6F -5D5D5D6B5D4B5D4A5D695D745D825D995D9D8C735DB75DC55F735F775F825F87 -5F895F8C5F955F995F9C5FA85FAD5FB55FBC88625F6172AD72B072B472B772B8 -72C372C172CE72CD72D272E872EF72E972F272F472F7730172F3730372FA0000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -91E691E791E891E991EA91EB91EC91ED91EE91EF91F091F191F291F391F491F5 -91F691F791F891F991FA91FB91FC91FD91FE91FF920092019202920392049205 -9206920792089209920A920B920C920D920E920F921092119212921392149215 -9216921792189219921A921B921C921D921E921F922092219222922392240000 -92259226922792289229922A922B922C922D922E922F92309231923292339234 -92359236923792389239923A923B923C923D923E923F92409241924292439244 -924572FB731773137321730A731E731D7315732273397325732C733873317350 -734D73577360736C736F737E821B592598E7592459029963996799689969996A -996B996C99749977997D998099849987998A998D999099919993999499955E80 -5E915E8B5E965EA55EA05EB95EB55EBE5EB38D535ED25ED15EDB5EE85EEA81BA -5FC45FC95FD65FCF60035FEE60045FE15FE45FFE600560065FEA5FED5FF86019 -60356026601B600F600D6029602B600A603F602160786079607B607A60420000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9246924792489249924A924B924C924D924E924F925092519252925392549255 -9256925792589259925A925B925C925D925E925F926092619262926392649265 -9266926792689269926A926B926C926D926E926F927092719272927392759276 -927792789279927A927B927C927D927E927F9280928192829283928492850000 -9286928792889289928A928B928C928D928F9290929192929293929492959296 -929792989299929A929B929C929D929E929F92A092A192A292A392A492A592A6 -92A7606A607D6096609A60AD609D60836092608C609B60EC60BB60B160DD60D8 -60C660DA60B4612061266115612360F46100610E612B614A617561AC619461A7 -61B761D461F55FDD96B395E995EB95F195F395F595F695FC95FE960396049606 -9608960A960B960C960D960F96129615961696179619961A4E2C723F62156C35 -6C546C5C6C4A6CA36C856C906C946C8C6C686C696C746C766C866CA96CD06CD4 -6CAD6CF76CF86CF16CD76CB26CE06CD66CFA6CEB6CEE6CB16CD36CEF6CFE0000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -92A892A992AA92AB92AC92AD92AF92B092B192B292B392B492B592B692B792B8 -92B992BA92BB92BC92BD92BE92BF92C092C192C292C392C492C592C692C792C9 -92CA92CB92CC92CD92CE92CF92D092D192D292D392D492D592D692D792D892D9 -92DA92DB92DC92DD92DE92DF92E092E192E292E392E492E592E692E792E80000 -92E992EA92EB92EC92ED92EE92EF92F092F192F292F392F492F592F692F792F8 -92F992FA92FB92FC92FD92FE92FF930093019302930393049305930693079308 -93096D396D276D0C6D436D486D076D046D196D0E6D2B6D4D6D2E6D356D1A6D4F -6D526D546D336D916D6F6D9E6DA06D5E6D936D946D5C6D606D7C6D636E1A6DC7 -6DC56DDE6E0E6DBF6DE06E116DE66DDD6DD96E166DAB6E0C6DAE6E2B6E6E6E4E -6E6B6EB26E5F6E866E536E546E326E256E446EDF6EB16E986EE06F2D6EE26EA5 -6EA76EBD6EBB6EB76ED76EB46ECF6E8F6EC26E9F6F626F466F476F246F156EF9 -6F2F6F366F4B6F746F2A6F096F296F896F8D6F8C6F786F726F7C6F7A6FD10000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -930A930B930C930D930E930F9310931193129313931493159316931793189319 -931A931B931C931D931E931F9320932193229323932493259326932793289329 -932A932B932C932D932E932F9330933193329333933493359336933793389339 -933A933B933C933D933F93409341934293439344934593469347934893490000 -934A934B934C934D934E934F9350935193529353935493559356935793589359 -935A935B935C935D935E935F9360936193629363936493659366936793689369 -936B6FC96FA76FB96FB66FC26FE16FEE6FDE6FE06FEF701A7023701B70397035 -704F705E5B805B845B955B935BA55BB8752F9A9E64345BE45BEE89305BF08E47 -8B078FB68FD38FD58FE58FEE8FE48FE98FE68FF38FE890059004900B90269011 -900D9016902190359036902D902F9044905190529050906890589062905B66B9 -9074907D908290889083908B5F505F575F565F585C3B54AB5C505C595B715C63 -5C667FBC5F2A5F295F2D82745F3C9B3B5C6E59815983598D59A959AA59A30000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -936C936D936E936F9370937193729373937493759376937793789379937A937B -937C937D937E937F9380938193829383938493859386938793889389938A938B -938C938D938E9390939193929393939493959396939793989399939A939B939C -939D939E939F93A093A193A293A393A493A593A693A793A893A993AA93AB0000 -93AC93AD93AE93AF93B093B193B293B393B493B593B693B793B893B993BA93BB -93BC93BD93BE93BF93C093C193C293C393C493C593C693C793C893C993CB93CC -93CD599759CA59AB599E59A459D259B259AF59D759BE5A055A0659DD5A0859E3 -59D859F95A0C5A095A325A345A115A235A135A405A675A4A5A555A3C5A625A75 -80EC5AAA5A9B5A775A7A5ABE5AEB5AB25AD25AD45AB85AE05AE35AF15AD65AE6 -5AD85ADC5B095B175B165B325B375B405C155C1C5B5A5B655B735B515B535B62 -9A759A779A789A7A9A7F9A7D9A809A819A859A889A8A9A909A929A939A969A98 -9A9B9A9C9A9D9A9F9AA09AA29AA39AA59AA77E9F7EA17EA37EA57EA87EA90000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -93CE93CF93D093D193D293D393D493D593D793D893D993DA93DB93DC93DD93DE -93DF93E093E193E293E393E493E593E693E793E893E993EA93EB93EC93ED93EE -93EF93F093F193F293F393F493F593F693F793F893F993FA93FB93FC93FD93FE -93FF9400940194029403940494059406940794089409940A940B940C940D0000 -940E940F9410941194129413941494159416941794189419941A941B941C941D -941E941F9420942194229423942494259426942794289429942A942B942C942D -942E7EAD7EB07EBE7EC07EC17EC27EC97ECB7ECC7ED07ED47ED77EDB7EE07EE1 -7EE87EEB7EEE7EEF7EF17EF27F0D7EF67EFA7EFB7EFE7F017F027F037F077F08 -7F0B7F0C7F0F7F117F127F177F197F1C7F1B7F1F7F217F227F237F247F257F26 -7F277F2A7F2B7F2C7F2D7F2F7F307F317F327F337F355E7A757F5DDB753E9095 -738E739173AE73A2739F73CF73C273D173B773B373C073C973C873E573D9987C -740A73E973E773DE73BA73F2740F742A745B7426742574287430742E742C0000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -942F9430943194329433943494359436943794389439943A943B943C943D943F -9440944194429443944494459446944794489449944A944B944C944D944E944F -9450945194529453945494559456945794589459945A945B945C945D945E945F -9460946194629463946494659466946794689469946A946C946D946E946F0000 -9470947194729473947494759476947794789479947A947B947C947D947E947F -9480948194829483948494919496949894C794CF94D394D494DA94E694FB951C -9520741B741A7441745C7457745574597477746D747E749C748E748074817487 -748B749E74A874A9749074A774D274BA97EA97EB97EC674C6753675E67486769 -67A56787676A6773679867A7677567A8679E67AD678B6777677C67F0680967D8 -680A67E967B0680C67D967B567DA67B367DD680067C367B867E2680E67C167FD -6832683368606861684E6862684468646883681D68556866684168676840683E -684A6849682968B5688F687468776893686B68C2696E68FC691F692068F90000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -95279533953D95439548954B9555955A9560956E95749575957795789579957A -957B957C957D957E9580958195829583958495859586958795889589958A958B -958C958D958E958F9590959195929593959495959596959795989599959A959B -959C959D959E959F95A095A195A295A395A495A595A695A795A895A995AA0000 -95AB95AC95AD95AE95AF95B095B195B295B395B495B595B695B795B895B995BA -95BB95BC95BD95BE95BF95C095C195C295C395C495C595C695C795C895C995CA -95CB692468F0690B6901695768E369106971693969606942695D6984696B6980 -69986978693469CC6987698869CE6989696669636979699B69A769BB69AB69AD -69D469B169C169CA69DF699569E0698D69FF6A2F69ED6A176A186A6569F26A44 -6A3E6AA06A506A5B6A356A8E6A796A3D6A286A586A7C6A916A906AA96A976AAB -733773526B816B826B876B846B926B936B8D6B9A6B9B6BA16BAA8F6B8F6D8F71 -8F728F738F758F768F788F778F798F7A8F7C8F7E8F818F828F848F878F8B0000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB -95DC95DD95DE95DF95E095E195E295E395E495E595E695E795EC95FF96079613 -9618961B961E96209623962496259626962796289629962B962C962D962F9630 -963796389639963A963E96419643964A964E964F965196529653965696570000 -96589659965A965C965D965E9660966396659666966B966D966E966F96709671 -967396789679967A967B967C967D967E967F9680968196829683968496879689 -968A8F8D8F8E8F8F8F988F9A8ECE620B6217621B621F6222622162256224622C -81E774EF74F474FF750F75117513653465EE65EF65F0660A6619677266036615 -6600708566F7661D66346631663666358006665F66546641664F665666616657 -66776684668C66A7669D66BE66DB66DC66E666E98D328D338D368D3B8D3D8D40 -8D458D468D488D498D478D4D8D558D5989C789CA89CB89CC89CE89CF89D089D1 -726E729F725D7266726F727E727F7284728B728D728F72926308633263B00000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -968C968E96919692969396959696969A969B969D969E969F96A096A196A296A3 -96A496A596A696A896A996AA96AB96AC96AD96AE96AF96B196B296B496B596B7 -96B896BA96BB96BF96C296C396C896CA96CB96D096D196D396D496D696D796D8 -96D996DA96DB96DC96DD96DE96DF96E196E296E396E496E596E696E796EB0000 -96EC96ED96EE96F096F196F296F496F596F896FA96FB96FC96FD96FF97029703 -9705970A970B970C97109711971297149715971797189719971A971B971D971F -9720643F64D880046BEA6BF36BFD6BF56BF96C056C076C066C0D6C156C186C19 -6C1A6C216C296C246C2A6C3265356555656B724D72527256723086625216809F -809C809380BC670A80BD80B180AB80AD80B480B780E780E880E980EA80DB80C2 -80C480D980CD80D7671080DD80EB80F180F480ED810D810E80F280FC67158112 -8C5A8136811E812C811881328148814C815381748159815A817181608169817C -817D816D8167584D5AB58188818281916ED581A381AA81CC672681CA81BB0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -972197229723972497259726972797289729972B972C972E972F973197339734 -973597369737973A973B973C973D973F97409741974297439744974597469747 -97489749974A974B974C974D974E974F975097519754975597579758975A975C -975D975F97639764976697679768976A976B976C976D976E976F977097710000 -97729775977797789779977A977B977D977E977F978097819782978397849786 -978797889789978A978C978E978F979097939795979697979799979A979B979C -979D81C181A66B246B376B396B436B466B5998D198D298D398D598D998DA6BB3 -5F406BC289F365909F51659365BC65C665C465C365CC65CE65D265D67080709C -7096709D70BB70C070B770AB70B170E870CA711071137116712F71317173715C -716871457172714A7178717A719871B371B571A871A071E071D471E771F9721D -7228706C7118716671B9623E623D624362486249793B794079467949795B795C -7953795A796279577960796F7967797A7985798A799A79A779B35FD15FD00000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -979E979F97A197A297A497A597A697A797A897A997AA97AC97AE97B097B197B3 -97B597B697B797B897B997BA97BB97BC97BD97BE97BF97C097C197C297C397C4 -97C597C697C797C897C997CA97CB97CC97CD97CE97CF97D097D197D297D397D4 -97D597D697D797D897D997DA97DB97DC97DD97DE97DF97E097E197E297E30000 -97E497E597E897EE97EF97F097F197F297F497F797F897F997FA97FB97FC97FD -97FE97FF9800980198029803980498059806980798089809980A980B980C980D -980E603C605D605A606760416059606360AB6106610D615D61A9619D61CB61D1 -62068080807F6C936CF66DFC77F677F87800780978177818781165AB782D781C -781D7839783A783B781F783C7825782C78237829784E786D7856785778267850 -7847784C786A789B7893789A7887789C78A178A378B278B978A578D478D978C9 -78EC78F2790578F479137924791E79349F9B9EF99EFB9EFC76F17704770D76F9 -77077708771A77227719772D7726773577387750775177477743775A77680000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -980F9810981198129813981498159816981798189819981A981B981C981D981E -981F9820982198229823982498259826982798289829982A982B982C982D982E -982F9830983198329833983498359836983798389839983A983B983C983D983E -983F9840984198429843984498459846984798489849984A984B984C984D0000 -984E984F9850985198529853985498559856985798589859985A985B985C985D -985E985F9860986198629863986498659866986798689869986A986B986C986D -986E77627765777F778D777D7780778C7791779F77A077B077B577BD753A7540 -754E754B7548755B7572757975837F587F617F5F8A487F687F747F717F797F81 -7F7E76CD76E58832948594869487948B948A948C948D948F9490949494979495 -949A949B949C94A394A494AB94AA94AD94AC94AF94B094B294B494B694B794B8 -94B994BA94BC94BD94BF94C494C894C994CA94CB94CC94CD94CE94D094D194D2 -94D594D694D794D994D894DB94DE94DF94E094E294E494E594E794E894EA0000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -986F98709871987298739874988B988E98929895989998A398A898A998AA98AB -98AC98AD98AE98AF98B098B198B298B398B498B598B698B798B898B998BA98BB -98BC98BD98BE98BF98C098C198C298C398C498C598C698C798C898C998CA98CB -98CC98CD98CF98D098D498D698D798DB98DC98DD98E098E198E298E398E40000 -98E598E698E998EA98EB98EC98ED98EE98EF98F098F198F298F398F498F598F6 -98F798F898F998FA98FB98FC98FD98FE98FF9900990199029903990499059906 -990794E994EB94EE94EF94F394F494F594F794F994FC94FD94FF950395029506 -95079509950A950D950E950F951295139514951595169518951B951D951E951F -9522952A952B9529952C953195329534953695379538953C953E953F95429535 -9544954595469549954C954E954F9552955395549556955795589559955B955E -955F955D95619562956495659566956795689569956A956B956C956F95719572 -9573953A77E777EC96C979D579ED79E379EB7A065D477A037A027A1E7A140000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -99089909990A990B990C990E990F991199129913991499159916991799189919 -991A991B991C991D991E991F9920992199229923992499259926992799289929 -992A992B992C992D992F9930993199329933993499359936993799389939993A -993B993C993D993E993F99409941994299439944994599469947994899490000 -994A994B994C994D994E994F99509951995299539956995799589959995A995B -995C995D995E995F99609961996299649966997399789979997B997E99829983 -99897A397A377A519ECF99A57A707688768E7693769976A474DE74E0752C9E20 -9E229E289E299E2A9E2B9E2C9E329E319E369E389E379E399E3A9E3E9E419E42 -9E449E469E479E489E499E4B9E4C9E4E9E519E559E579E5A9E5B9E5C9E5E9E63 -9E669E679E689E699E6A9E6B9E6C9E719E6D9E7375927594759675A0759D75AC -75A375B375B475B875C475B175B075C375C275D675CD75E375E875E675E475EB -75E7760375F175FC75FF761076007605760C7617760A76257618761576190000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -998C998E999A999B999C999D999E999F99A099A199A299A399A499A699A799A9 -99AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B9 -99BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C9 -99CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D80000 -99D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E8 -99E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F599F699F799F8 -99F9761B763C762276207640762D7630763F76357643763E7633764D765E7654 -765C7656766B766F7FCA7AE67A787A797A807A867A887A957AA67AA07AAC7AA8 -7AAD7AB3886488698872887D887F888288A288C688B788BC88C988E288CE88E3 -88E588F1891A88FC88E888FE88F0892189198913891B890A8934892B89368941 -8966897B758B80E576B276B477DC801280148016801C80208022802580268027 -802980288031800B803580438046804D80528069807189839878988098830000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -99FA99FB99FC99FD99FE99FF9A009A019A029A039A049A059A069A079A089A09 -9A0A9A0B9A0C9A0D9A0E9A0F9A109A119A129A139A149A159A169A179A189A19 -9A1A9A1B9A1C9A1D9A1E9A1F9A209A219A229A239A249A259A269A279A289A29 -9A2A9A2B9A2C9A2D9A2E9A2F9A309A319A329A339A349A359A369A379A380000 -9A399A3A9A3B9A3C9A3D9A3E9A3F9A409A419A429A439A449A459A469A479A48 -9A499A4A9A4B9A4C9A4D9A4E9A4F9A509A519A529A539A549A559A569A579A58 -9A599889988C988D988F9894989A989B989E989F98A198A298A598A6864D8654 -866C866E867F867A867C867B86A8868D868B86AC869D86A786A386AA869386A9 -86B686C486B586CE86B086BA86B186AF86C986CF86B486E986F186F286ED86F3 -86D0871386DE86F486DF86D886D18703870786F88708870A870D87098723873B -871E8725872E871A873E87488734873187298737873F87828722877D877E877B -87608770874C876E878B87538763877C876487598765879387AF87A887D20000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9A5A9A5B9A5C9A5D9A5E9A5F9A609A619A629A639A649A659A669A679A689A69 -9A6A9A6B9A729A839A899A8D9A8E9A949A959A999AA69AA99AAA9AAB9AAC9AAD -9AAE9AAF9AB29AB39AB49AB59AB99ABB9ABD9ABE9ABF9AC39AC49AC69AC79AC8 -9AC99ACA9ACD9ACE9ACF9AD09AD29AD49AD59AD69AD79AD99ADA9ADB9ADC0000 -9ADD9ADE9AE09AE29AE39AE49AE59AE79AE89AE99AEA9AEC9AEE9AF09AF19AF2 -9AF39AF49AF59AF69AF79AF89AFA9AFC9AFD9AFE9AFF9B009B019B029B049B05 -9B0687C68788878587AD8797878387AB87E587AC87B587B387CB87D387BD87D1 -87C087CA87DB87EA87E087EE8816881387FE880A881B88218839883C7F367F42 -7F447F4582107AFA7AFD7B087B037B047B157B0A7B2B7B0F7B477B387B2A7B19 -7B2E7B317B207B257B247B337B3E7B1E7B587B5A7B457B757B4C7B5D7B607B6E -7B7B7B627B727B717B907BA67BA77BB87BAC7B9D7BA87B857BAA7B9C7BA27BAB -7BB47BD17BC17BCC7BDD7BDA7BE57BE67BEA7C0C7BFE7BFC7C0F7C167C0B0000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9B079B099B0A9B0B9B0C9B0D9B0E9B109B119B129B149B159B169B179B189B19 -9B1A9B1B9B1C9B1D9B1E9B209B219B229B249B259B269B279B289B299B2A9B2B -9B2C9B2D9B2E9B309B319B339B349B359B369B379B389B399B3A9B3D9B3E9B3F -9B409B469B4A9B4B9B4C9B4E9B509B529B539B559B569B579B589B599B5A0000 -9B5B9B5C9B5D9B5E9B5F9B609B619B629B639B649B659B669B679B689B699B6A -9B6B9B6C9B6D9B6E9B6F9B709B719B729B739B749B759B769B779B789B799B7A -9B7B7C1F7C2A7C267C387C417C4081FE82018202820481EC8844822182228223 -822D822F8228822B8238823B82338234823E82448249824B824F825A825F8268 -887E8885888888D888DF895E7F9D7F9F7FA77FAF7FB07FB27C7C65497C917C9D -7C9C7C9E7CA27CB27CBC7CBD7CC17CC77CCC7CCD7CC87CC57CD77CE8826E66A8 -7FBF7FCE7FD57FE57FE17FE67FE97FEE7FF37CF87D777DA67DAE7E477E9B9EB8 -9EB48D738D848D948D918DB18D678D6D8C478C49914A9150914E914F91640000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9B7C9B7D9B7E9B7F9B809B819B829B839B849B859B869B879B889B899B8A9B8B -9B8C9B8D9B8E9B8F9B909B919B929B939B949B959B969B979B989B999B9A9B9B -9B9C9B9D9B9E9B9F9BA09BA19BA29BA39BA49BA59BA69BA79BA89BA99BAA9BAB -9BAC9BAD9BAE9BAF9BB09BB19BB29BB39BB49BB59BB69BB79BB89BB99BBA0000 -9BBB9BBC9BBD9BBE9BBF9BC09BC19BC29BC39BC49BC59BC69BC79BC89BC99BCA -9BCB9BCC9BCD9BCE9BCF9BD09BD19BD29BD39BD49BD59BD69BD79BD89BD99BDA -9BDB9162916191709169916F917D917E917291749179918C91859190918D9191 -91A291A391AA91AD91AE91AF91B591B491BA8C559E7E8DB88DEB8E058E598E69 -8DB58DBF8DBC8DBA8DC48DD68DD78DDA8DDE8DCE8DCF8DDB8DC68DEC8DF78DF8 -8DE38DF98DFB8DE48E098DFD8E148E1D8E1F8E2C8E2E8E238E2F8E3A8E408E39 -8E358E3D8E318E498E418E428E518E528E4A8E708E768E7C8E6F8E748E858E8F -8E948E908E9C8E9E8C788C828C8A8C858C988C94659B89D689DE89DA89DC0000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9BDC9BDD9BDE9BDF9BE09BE19BE29BE39BE49BE59BE69BE79BE89BE99BEA9BEB -9BEC9BED9BEE9BEF9BF09BF19BF29BF39BF49BF59BF69BF79BF89BF99BFA9BFB -9BFC9BFD9BFE9BFF9C009C019C029C039C049C059C069C079C089C099C0A9C0B -9C0C9C0D9C0E9C0F9C109C119C129C139C149C159C169C179C189C199C1A0000 -9C1B9C1C9C1D9C1E9C1F9C209C219C229C239C249C259C269C279C289C299C2A -9C2B9C2C9C2D9C2E9C2F9C309C319C329C339C349C359C369C379C389C399C3A -9C3B89E589EB89EF8A3E8B26975396E996F396EF970697019708970F970E972A -972D9730973E9F809F839F859F869F879F889F899F8A9F8C9EFE9F0B9F0D96B9 -96BC96BD96CE96D277BF96E0928E92AE92C8933E936A93CA938F943E946B9C7F -9C829C859C869C879C887A239C8B9C8E9C909C919C929C949C959C9A9C9B9C9E -9C9F9CA09CA19CA29CA39CA59CA69CA79CA89CA99CAB9CAD9CAE9CB09CB19CB2 -9CB39CB49CB59CB69CB79CBA9CBB9CBC9CBD9CC49CC59CC69CC79CCA9CCB0000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9C3C9C3D9C3E9C3F9C409C419C429C439C449C459C469C479C489C499C4A9C4B -9C4C9C4D9C4E9C4F9C509C519C529C539C549C559C569C579C589C599C5A9C5B -9C5C9C5D9C5E9C5F9C609C619C629C639C649C659C669C679C689C699C6A9C6B -9C6C9C6D9C6E9C6F9C709C719C729C739C749C759C769C779C789C799C7A0000 -9C7B9C7D9C7E9C809C839C849C899C8A9C8C9C8F9C939C969C979C989C999C9D -9CAA9CAC9CAF9CB99CBE9CBF9CC09CC19CC29CC89CC99CD19CD29CDA9CDB9CE0 -9CE19CCC9CCD9CCE9CCF9CD09CD39CD49CD59CD79CD89CD99CDC9CDD9CDF9CE2 -977C978597919792979497AF97AB97A397B297B49AB19AB09AB79E589AB69ABA -9ABC9AC19AC09AC59AC29ACB9ACC9AD19B459B439B479B499B489B4D9B5198E8 -990D992E995599549ADF9AE19AE69AEF9AEB9AFB9AED9AF99B089B0F9B139B1F -9B239EBD9EBE7E3B9E829E879E889E8B9E9293D69E9D9E9F9EDB9EDC9EDD9EE0 -9EDF9EE29EE99EE79EE59EEA9EEF9F229F2C9F2F9F399F379F3D9F3E9F440000 -F8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9CE39CE49CE59CE69CE79CE89CE99CEA9CEB9CEC9CED9CEE9CEF9CF09CF19CF2 -9CF39CF49CF59CF69CF79CF89CF99CFA9CFB9CFC9CFD9CFE9CFF9D009D019D02 -9D039D049D059D069D079D089D099D0A9D0B9D0C9D0D9D0E9D0F9D109D119D12 -9D139D149D159D169D179D189D199D1A9D1B9D1C9D1D9D1E9D1F9D209D210000 -9D229D239D249D259D269D279D289D299D2A9D2B9D2C9D2D9D2E9D2F9D309D31 -9D329D339D349D359D369D379D389D399D3A9D3B9D3C9D3D9D3E9D3F9D409D41 -9D42000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -F9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9D439D449D459D469D479D489D499D4A9D4B9D4C9D4D9D4E9D4F9D509D519D52 -9D539D549D559D569D579D589D599D5A9D5B9D5C9D5D9D5E9D5F9D609D619D62 -9D639D649D659D669D679D689D699D6A9D6B9D6C9D6D9D6E9D6F9D709D719D72 -9D739D749D759D769D779D789D799D7A9D7B9D7C9D7D9D7E9D7F9D809D810000 -9D829D839D849D859D869D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D909D91 -9D929D939D949D959D969D979D989D999D9A9D9B9D9C9D9D9D9E9D9F9DA09DA1 -9DA2000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9DA39DA49DA59DA69DA79DA89DA99DAA9DAB9DAC9DAD9DAE9DAF9DB09DB19DB2 -9DB39DB49DB59DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2 -9DC39DC49DC59DC69DC79DC89DC99DCA9DCB9DCC9DCD9DCE9DCF9DD09DD19DD2 -9DD39DD49DD59DD69DD79DD89DD99DDA9DDB9DDC9DDD9DDE9DDF9DE09DE10000 -9DE29DE39DE49DE59DE69DE79DE89DE99DEA9DEB9DEC9DED9DEE9DEF9DF09DF1 -9DF29DF39DF49DF59DF69DF79DF89DF99DFA9DFB9DFC9DFD9DFE9DFF9E009E01 -9E02000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9E039E049E059E069E079E089E099E0A9E0B9E0C9E0D9E0E9E0F9E109E119E12 -9E139E149E159E169E179E189E199E1A9E1B9E1C9E1D9E1E9E249E279E2E9E30 -9E349E3B9E3C9E409E4D9E509E529E539E549E569E599E5D9E5F9E609E619E62 -9E659E6E9E6F9E729E749E759E769E779E789E799E7A9E7B9E7C9E7D9E800000 -9E819E839E849E859E869E899E8A9E8C9E8D9E8E9E8F9E909E919E949E959E96 -9E979E989E999E9A9E9B9E9C9E9E9EA09EA19EA29EA39EA49EA59EA79EA89EA9 -9EAA000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9EAB9EAC9EAD9EAE9EAF9EB09EB19EB29EB39EB59EB69EB79EB99EBA9EBC9EBF -9EC09EC19EC29EC39EC59EC69EC79EC89ECA9ECB9ECC9ED09ED29ED39ED59ED6 -9ED79ED99EDA9EDE9EE19EE39EE49EE69EE89EEB9EEC9EED9EEE9EF09EF19EF2 -9EF39EF49EF59EF69EF79EF89EFA9EFD9EFF9F009F019F029F039F049F050000 -9F069F079F089F099F0A9F0C9F0F9F119F129F149F159F169F189F1A9F1B9F1C -9F1D9F1E9F1F9F219F239F249F259F269F279F289F299F2A9F2B9F2D9F2E9F30 -9F31000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9F329F339F349F359F369F389F3A9F3C9F3F9F409F419F429F439F459F469F47 -9F489F499F4A9F4B9F4C9F4D9F4E9F4F9F529F539F549F559F569F579F589F59 -9F5A9F5B9F5C9F5D9F5E9F5F9F609F619F629F639F649F659F669F679F689F69 -9F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F739F749F759F769F779F780000 -9F799F7A9F7B9F7C9F7D9F7E9F819F829F8D9F8E9F8F9F909F919F929F939F94 -9F959F969F979F989F9C9F9D9F9E9FA19FA29FA39FA49FA5F92CF979F995F9E7 -F9F1000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FA0CFA0DFA0EFA0FFA11FA13FA14FA18FA1FFA20FA21FA23FA24FA27FA28FA29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/cp949.enc b/src/runtime/tcl_library/encoding/cp949.enc deleted file mode 100644 index 459dbd97..00000000 --- a/src/runtime/tcl_library/encoding/cp949.enc +++ /dev/null @@ -1,2128 +0,0 @@ -# Encoding file: cp949, multi-byte -M -003F 0 125 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -81 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AC02AC03AC05AC06AC0BAC0CAC0DAC0EAC0FAC18AC1EAC1FAC21AC22AC23 -AC25AC26AC27AC28AC29AC2AAC2BAC2EAC32AC33AC3400000000000000000000 -0000AC35AC36AC37AC3AAC3BAC3DAC3EAC3FAC41AC42AC43AC44AC45AC46AC47 -AC48AC49AC4AAC4CAC4EAC4FAC50AC51AC52AC53AC5500000000000000000000 -0000AC56AC57AC59AC5AAC5BAC5DAC5EAC5FAC60AC61AC62AC63AC64AC65AC66 -AC67AC68AC69AC6AAC6BAC6CAC6DAC6EAC6FAC72AC73AC75AC76AC79AC7BAC7C -AC7DAC7EAC7FAC82AC87AC88AC8DAC8EAC8FAC91AC92AC93AC95AC96AC97AC98 -AC99AC9AAC9BAC9EACA2ACA3ACA4ACA5ACA6ACA7ACABACADACAEACB1ACB2ACB3 -ACB4ACB5ACB6ACB7ACBAACBEACBFACC0ACC2ACC3ACC5ACC6ACC7ACC9ACCAACCB -ACCDACCEACCFACD0ACD1ACD2ACD3ACD4ACD6ACD8ACD9ACDAACDBACDCACDDACDE -ACDFACE2ACE3ACE5ACE6ACE9ACEBACEDACEEACF2ACF4ACF7ACF8ACF9ACFAACFB -ACFEACFFAD01AD02AD03AD05AD07AD08AD09AD0AAD0BAD0EAD10AD12AD130000 -82 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AD14AD15AD16AD17AD19AD1AAD1BAD1DAD1EAD1FAD21AD22AD23AD24AD25 -AD26AD27AD28AD2AAD2BAD2EAD2FAD30AD31AD32AD3300000000000000000000 -0000AD36AD37AD39AD3AAD3BAD3DAD3EAD3FAD40AD41AD42AD43AD46AD48AD4A -AD4BAD4CAD4DAD4EAD4FAD51AD52AD53AD55AD56AD5700000000000000000000 -0000AD59AD5AAD5BAD5CAD5DAD5EAD5FAD60AD62AD64AD65AD66AD67AD68AD69 -AD6AAD6BAD6EAD6FAD71AD72AD77AD78AD79AD7AAD7EAD80AD83AD84AD85AD86 -AD87AD8AAD8BAD8DAD8EAD8FAD91AD92AD93AD94AD95AD96AD97AD98AD99AD9A -AD9BAD9EAD9FADA0ADA1ADA2ADA3ADA5ADA6ADA7ADA8ADA9ADAAADABADACADAD -ADAEADAFADB0ADB1ADB2ADB3ADB4ADB5ADB6ADB8ADB9ADBAADBBADBCADBDADBE -ADBFADC2ADC3ADC5ADC6ADC7ADC9ADCAADCBADCCADCDADCEADCFADD2ADD4ADD5 -ADD6ADD7ADD8ADD9ADDAADDBADDDADDEADDFADE1ADE2ADE3ADE5ADE6ADE7ADE8 -ADE9ADEAADEBADECADEDADEEADEFADF0ADF1ADF2ADF3ADF4ADF5ADF6ADF70000 -83 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000ADFAADFBADFDADFEAE02AE03AE04AE05AE06AE07AE0AAE0CAE0EAE0FAE10 -AE11AE12AE13AE15AE16AE17AE18AE19AE1AAE1BAE1C00000000000000000000 -0000AE1DAE1EAE1FAE20AE21AE22AE23AE24AE25AE26AE27AE28AE29AE2AAE2B -AE2CAE2DAE2EAE2FAE32AE33AE35AE36AE39AE3BAE3C00000000000000000000 -0000AE3DAE3EAE3FAE42AE44AE47AE48AE49AE4BAE4FAE51AE52AE53AE55AE57 -AE58AE59AE5AAE5BAE5EAE62AE63AE64AE66AE67AE6AAE6BAE6DAE6EAE6FAE71 -AE72AE73AE74AE75AE76AE77AE7AAE7EAE7FAE80AE81AE82AE83AE86AE87AE88 -AE89AE8AAE8BAE8DAE8EAE8FAE90AE91AE92AE93AE94AE95AE96AE97AE98AE99 -AE9AAE9BAE9CAE9DAE9EAE9FAEA0AEA1AEA2AEA3AEA4AEA5AEA6AEA7AEA8AEA9 -AEAAAEABAEACAEADAEAEAEAFAEB0AEB1AEB2AEB3AEB4AEB5AEB6AEB7AEB8AEB9 -AEBAAEBBAEBFAEC1AEC2AEC3AEC5AEC6AEC7AEC8AEC9AECAAECBAECEAED2AED3 -AED4AED5AED6AED7AEDAAEDBAEDDAEDEAEDFAEE0AEE1AEE2AEE3AEE4AEE50000 -84 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AEE6AEE7AEE9AEEAAEECAEEEAEEFAEF0AEF1AEF2AEF3AEF5AEF6AEF7AEF9 -AEFAAEFBAEFDAEFEAEFFAF00AF01AF02AF03AF04AF0500000000000000000000 -0000AF06AF09AF0AAF0BAF0CAF0EAF0FAF11AF12AF13AF14AF15AF16AF17AF18 -AF19AF1AAF1BAF1CAF1DAF1EAF1FAF20AF21AF22AF2300000000000000000000 -0000AF24AF25AF26AF27AF28AF29AF2AAF2BAF2EAF2FAF31AF33AF35AF36AF37 -AF38AF39AF3AAF3BAF3EAF40AF44AF45AF46AF47AF4AAF4BAF4CAF4DAF4EAF4F -AF51AF52AF53AF54AF55AF56AF57AF58AF59AF5AAF5BAF5EAF5FAF60AF61AF62 -AF63AF66AF67AF68AF69AF6AAF6BAF6CAF6DAF6EAF6FAF70AF71AF72AF73AF74 -AF75AF76AF77AF78AF7AAF7BAF7CAF7DAF7EAF7FAF81AF82AF83AF85AF86AF87 -AF89AF8AAF8BAF8CAF8DAF8EAF8FAF92AF93AF94AF96AF97AF98AF99AF9AAF9B -AF9DAF9EAF9FAFA0AFA1AFA2AFA3AFA4AFA5AFA6AFA7AFA8AFA9AFAAAFABAFAC -AFADAFAEAFAFAFB0AFB1AFB2AFB3AFB4AFB5AFB6AFB7AFBAAFBBAFBDAFBE0000 -85 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AFBFAFC1AFC2AFC3AFC4AFC5AFC6AFCAAFCCAFCFAFD0AFD1AFD2AFD3AFD5 -AFD6AFD7AFD8AFD9AFDAAFDBAFDDAFDEAFDFAFE0AFE100000000000000000000 -0000AFE2AFE3AFE4AFE5AFE6AFE7AFEAAFEBAFECAFEDAFEEAFEFAFF2AFF3AFF5 -AFF6AFF7AFF9AFFAAFFBAFFCAFFDAFFEAFFFB002B00300000000000000000000 -0000B005B006B007B008B009B00AB00BB00DB00EB00FB011B012B013B015B016 -B017B018B019B01AB01BB01EB01FB020B021B022B023B024B025B026B027B029 -B02AB02BB02CB02DB02EB02FB030B031B032B033B034B035B036B037B038B039 -B03AB03BB03CB03DB03EB03FB040B041B042B043B046B047B049B04BB04DB04F -B050B051B052B056B058B05AB05BB05CB05EB05FB060B061B062B063B064B065 -B066B067B068B069B06AB06BB06CB06DB06EB06FB070B071B072B073B074B075 -B076B077B078B079B07AB07BB07EB07FB081B082B083B085B086B087B088B089 -B08AB08BB08EB090B092B093B094B095B096B097B09BB09DB09EB0A3B0A40000 -86 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B0A5B0A6B0A7B0AAB0B0B0B2B0B6B0B7B0B9B0BAB0BBB0BDB0BEB0BFB0C0 -B0C1B0C2B0C3B0C6B0CAB0CBB0CCB0CDB0CEB0CFB0D200000000000000000000 -0000B0D3B0D5B0D6B0D7B0D9B0DAB0DBB0DCB0DDB0DEB0DFB0E1B0E2B0E3B0E4 -B0E6B0E7B0E8B0E9B0EAB0EBB0ECB0EDB0EEB0EFB0F000000000000000000000 -0000B0F1B0F2B0F3B0F4B0F5B0F6B0F7B0F8B0F9B0FAB0FBB0FCB0FDB0FEB0FF -B100B101B102B103B104B105B106B107B10AB10DB10EB10FB111B114B115B116 -B117B11AB11EB11FB120B121B122B126B127B129B12AB12BB12DB12EB12FB130 -B131B132B133B136B13AB13BB13CB13DB13EB13FB142B143B145B146B147B149 -B14AB14BB14CB14DB14EB14FB152B153B156B157B159B15AB15BB15DB15EB15F -B161B162B163B164B165B166B167B168B169B16AB16BB16CB16DB16EB16FB170 -B171B172B173B174B175B176B177B17AB17BB17DB17EB17FB181B183B184B185 -B186B187B18AB18CB18EB18FB190B191B195B196B197B199B19AB19BB19D0000 -87 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B19EB19FB1A0B1A1B1A2B1A3B1A4B1A5B1A6B1A7B1A9B1AAB1ABB1ACB1AD -B1AEB1AFB1B0B1B1B1B2B1B3B1B4B1B5B1B6B1B7B1B800000000000000000000 -0000B1B9B1BAB1BBB1BCB1BDB1BEB1BFB1C0B1C1B1C2B1C3B1C4B1C5B1C6B1C7 -B1C8B1C9B1CAB1CBB1CDB1CEB1CFB1D1B1D2B1D3B1D500000000000000000000 -0000B1D6B1D7B1D8B1D9B1DAB1DBB1DEB1E0B1E1B1E2B1E3B1E4B1E5B1E6B1E7 -B1EAB1EBB1EDB1EEB1EFB1F1B1F2B1F3B1F4B1F5B1F6B1F7B1F8B1FAB1FCB1FE -B1FFB200B201B202B203B206B207B209B20AB20DB20EB20FB210B211B212B213 -B216B218B21AB21BB21CB21DB21EB21FB221B222B223B224B225B226B227B228 -B229B22AB22BB22CB22DB22EB22FB230B231B232B233B235B236B237B238B239 -B23AB23BB23DB23EB23FB240B241B242B243B244B245B246B247B248B249B24A -B24BB24CB24DB24EB24FB250B251B252B253B254B255B256B257B259B25AB25B -B25DB25EB25FB261B262B263B264B265B266B267B26AB26BB26CB26DB26E0000 -88 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B26FB270B271B272B273B276B277B278B279B27AB27BB27DB27EB27FB280 -B281B282B283B286B287B288B28AB28BB28CB28DB28E00000000000000000000 -0000B28FB292B293B295B296B297B29BB29CB29DB29EB29FB2A2B2A4B2A7B2A8 -B2A9B2ABB2ADB2AEB2AFB2B1B2B2B2B3B2B5B2B6B2B700000000000000000000 -0000B2B8B2B9B2BAB2BBB2BCB2BDB2BEB2BFB2C0B2C1B2C2B2C3B2C4B2C5B2C6 -B2C7B2CAB2CBB2CDB2CEB2CFB2D1B2D3B2D4B2D5B2D6B2D7B2DAB2DCB2DEB2DF -B2E0B2E1B2E3B2E7B2E9B2EAB2F0B2F1B2F2B2F6B2FCB2FDB2FEB302B303B305 -B306B307B309B30AB30BB30CB30DB30EB30FB312B316B317B318B319B31AB31B -B31DB31EB31FB320B321B322B323B324B325B326B327B328B329B32AB32BB32C -B32DB32EB32FB330B331B332B333B334B335B336B337B338B339B33AB33BB33C -B33DB33EB33FB340B341B342B343B344B345B346B347B348B349B34AB34BB34C -B34DB34EB34FB350B351B352B353B357B359B35AB35DB360B361B362B3630000 -89 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B366B368B36AB36CB36DB36FB372B373B375B376B377B379B37AB37BB37C -B37DB37EB37FB382B386B387B388B389B38AB38BB38D00000000000000000000 -0000B38EB38FB391B392B393B395B396B397B398B399B39AB39BB39CB39DB39E -B39FB3A2B3A3B3A4B3A5B3A6B3A7B3A9B3AAB3ABB3AD00000000000000000000 -0000B3AEB3AFB3B0B3B1B3B2B3B3B3B4B3B5B3B6B3B7B3B8B3B9B3BAB3BBB3BC -B3BDB3BEB3BFB3C0B3C1B3C2B3C3B3C6B3C7B3C9B3CAB3CDB3CFB3D1B3D2B3D3 -B3D6B3D8B3DAB3DCB3DEB3DFB3E1B3E2B3E3B3E5B3E6B3E7B3E9B3EAB3EBB3EC -B3EDB3EEB3EFB3F0B3F1B3F2B3F3B3F4B3F5B3F6B3F7B3F8B3F9B3FAB3FBB3FD -B3FEB3FFB400B401B402B403B404B405B406B407B408B409B40AB40BB40CB40D -B40EB40FB411B412B413B414B415B416B417B419B41AB41BB41DB41EB41FB421 -B422B423B424B425B426B427B42AB42CB42DB42EB42FB430B431B432B433B435 -B436B437B438B439B43AB43BB43CB43DB43EB43FB440B441B442B443B4440000 -8A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B445B446B447B448B449B44AB44BB44CB44DB44EB44FB452B453B455B456 -B457B459B45AB45BB45CB45DB45EB45FB462B464B46600000000000000000000 -0000B467B468B469B46AB46BB46DB46EB46FB470B471B472B473B474B475B476 -B477B478B479B47AB47BB47CB47DB47EB47FB481B48200000000000000000000 -0000B483B484B485B486B487B489B48AB48BB48CB48DB48EB48FB490B491B492 -B493B494B495B496B497B498B499B49AB49BB49CB49EB49FB4A0B4A1B4A2B4A3 -B4A5B4A6B4A7B4A9B4AAB4ABB4ADB4AEB4AFB4B0B4B1B4B2B4B3B4B4B4B6B4B8 -B4BAB4BBB4BCB4BDB4BEB4BFB4C1B4C2B4C3B4C5B4C6B4C7B4C9B4CAB4CBB4CC -B4CDB4CEB4CFB4D1B4D2B4D3B4D4B4D6B4D7B4D8B4D9B4DAB4DBB4DEB4DFB4E1 -B4E2B4E5B4E7B4E8B4E9B4EAB4EBB4EEB4F0B4F2B4F3B4F4B4F5B4F6B4F7B4F9 -B4FAB4FBB4FCB4FDB4FEB4FFB500B501B502B503B504B505B506B507B508B509 -B50AB50BB50CB50DB50EB50FB510B511B512B513B516B517B519B51AB51D0000 -8B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B51EB51FB520B521B522B523B526B52BB52CB52DB52EB52FB532B533B535 -B536B537B539B53AB53BB53CB53DB53EB53FB542B54600000000000000000000 -0000B547B548B549B54AB54EB54FB551B552B553B555B556B557B558B559B55A -B55BB55EB562B563B564B565B566B567B568B569B56A00000000000000000000 -0000B56BB56CB56DB56EB56FB570B571B572B573B574B575B576B577B578B579 -B57AB57BB57CB57DB57EB57FB580B581B582B583B584B585B586B587B588B589 -B58AB58BB58CB58DB58EB58FB590B591B592B593B594B595B596B597B598B599 -B59AB59BB59CB59DB59EB59FB5A2B5A3B5A5B5A6B5A7B5A9B5ACB5ADB5AEB5AF -B5B2B5B6B5B7B5B8B5B9B5BAB5BEB5BFB5C1B5C2B5C3B5C5B5C6B5C7B5C8B5C9 -B5CAB5CBB5CEB5D2B5D3B5D4B5D5B5D6B5D7B5D9B5DAB5DBB5DCB5DDB5DEB5DF -B5E0B5E1B5E2B5E3B5E4B5E5B5E6B5E7B5E8B5E9B5EAB5EBB5EDB5EEB5EFB5F0 -B5F1B5F2B5F3B5F4B5F5B5F6B5F7B5F8B5F9B5FAB5FBB5FCB5FDB5FEB5FF0000 -8C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B600B601B602B603B604B605B606B607B608B609B60AB60BB60CB60DB60E -B60FB612B613B615B616B617B619B61AB61BB61CB61D00000000000000000000 -0000B61EB61FB620B621B622B623B624B626B627B628B629B62AB62BB62DB62E -B62FB630B631B632B633B635B636B637B638B639B63A00000000000000000000 -0000B63BB63CB63DB63EB63FB640B641B642B643B644B645B646B647B649B64A -B64BB64CB64DB64EB64FB650B651B652B653B654B655B656B657B658B659B65A -B65BB65CB65DB65EB65FB660B661B662B663B665B666B667B669B66AB66BB66C -B66DB66EB66FB670B671B672B673B674B675B676B677B678B679B67AB67BB67C -B67DB67EB67FB680B681B682B683B684B685B686B687B688B689B68AB68BB68C -B68DB68EB68FB690B691B692B693B694B695B696B697B698B699B69AB69BB69E -B69FB6A1B6A2B6A3B6A5B6A6B6A7B6A8B6A9B6AAB6ADB6AEB6AFB6B0B6B2B6B3 -B6B4B6B5B6B6B6B7B6B8B6B9B6BAB6BBB6BCB6BDB6BEB6BFB6C0B6C1B6C20000 -8D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B6C3B6C4B6C5B6C6B6C7B6C8B6C9B6CAB6CBB6CCB6CDB6CEB6CFB6D0B6D1 -B6D2B6D3B6D5B6D6B6D7B6D8B6D9B6DAB6DBB6DCB6DD00000000000000000000 -0000B6DEB6DFB6E0B6E1B6E2B6E3B6E4B6E5B6E6B6E7B6E8B6E9B6EAB6EBB6EC -B6EDB6EEB6EFB6F1B6F2B6F3B6F5B6F6B6F7B6F9B6FA00000000000000000000 -0000B6FBB6FCB6FDB6FEB6FFB702B703B704B706B707B708B709B70AB70BB70C -B70DB70EB70FB710B711B712B713B714B715B716B717B718B719B71AB71BB71C -B71DB71EB71FB720B721B722B723B724B725B726B727B72AB72BB72DB72EB731 -B732B733B734B735B736B737B73AB73CB73DB73EB73FB740B741B742B743B745 -B746B747B749B74AB74BB74DB74EB74FB750B751B752B753B756B757B758B759 -B75AB75BB75CB75DB75EB75FB761B762B763B765B766B767B769B76AB76BB76C -B76DB76EB76FB772B774B776B777B778B779B77AB77BB77EB77FB781B782B783 -B785B786B787B788B789B78AB78BB78EB793B794B795B79AB79BB79DB79E0000 -8E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B79FB7A1B7A2B7A3B7A4B7A5B7A6B7A7B7AAB7AEB7AFB7B0B7B1B7B2B7B3 -B7B6B7B7B7B9B7BAB7BBB7BCB7BDB7BEB7BFB7C0B7C100000000000000000000 -0000B7C2B7C3B7C4B7C5B7C6B7C8B7CAB7CBB7CCB7CDB7CEB7CFB7D0B7D1B7D2 -B7D3B7D4B7D5B7D6B7D7B7D8B7D9B7DAB7DBB7DCB7DD00000000000000000000 -0000B7DEB7DFB7E0B7E1B7E2B7E3B7E4B7E5B7E6B7E7B7E8B7E9B7EAB7EBB7EE -B7EFB7F1B7F2B7F3B7F5B7F6B7F7B7F8B7F9B7FAB7FBB7FEB802B803B804B805 -B806B80AB80BB80DB80EB80FB811B812B813B814B815B816B817B81AB81CB81E -B81FB820B821B822B823B826B827B829B82AB82BB82DB82EB82FB830B831B832 -B833B836B83AB83BB83CB83DB83EB83FB841B842B843B845B846B847B848B849 -B84AB84BB84CB84DB84EB84FB850B852B854B855B856B857B858B859B85AB85B -B85EB85FB861B862B863B865B866B867B868B869B86AB86BB86EB870B872B873 -B874B875B876B877B879B87AB87BB87DB87EB87FB880B881B882B883B8840000 -8F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B885B886B887B888B889B88AB88BB88CB88EB88FB890B891B892B893B894 -B895B896B897B898B899B89AB89BB89CB89DB89EB89F00000000000000000000 -0000B8A0B8A1B8A2B8A3B8A4B8A5B8A6B8A7B8A9B8AAB8ABB8ACB8ADB8AEB8AF -B8B1B8B2B8B3B8B5B8B6B8B7B8B9B8BAB8BBB8BCB8BD00000000000000000000 -0000B8BEB8BFB8C2B8C4B8C6B8C7B8C8B8C9B8CAB8CBB8CDB8CEB8CFB8D1B8D2 -B8D3B8D5B8D6B8D7B8D8B8D9B8DAB8DBB8DCB8DEB8E0B8E2B8E3B8E4B8E5B8E6 -B8E7B8EAB8EBB8EDB8EEB8EFB8F1B8F2B8F3B8F4B8F5B8F6B8F7B8FAB8FCB8FE -B8FFB900B901B902B903B905B906B907B908B909B90AB90BB90CB90DB90EB90F -B910B911B912B913B914B915B916B917B919B91AB91BB91CB91DB91EB91FB921 -B922B923B924B925B926B927B928B929B92AB92BB92CB92DB92EB92FB930B931 -B932B933B934B935B936B937B938B939B93AB93BB93EB93FB941B942B943B945 -B946B947B948B949B94AB94BB94DB94EB950B952B953B954B955B956B9570000 -90 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B95AB95BB95DB95EB95FB961B962B963B964B965B966B967B96AB96CB96E -B96FB970B971B972B973B976B977B979B97AB97BB97D00000000000000000000 -0000B97EB97FB980B981B982B983B986B988B98BB98CB98FB990B991B992B993 -B994B995B996B997B998B999B99AB99BB99CB99DB99E00000000000000000000 -0000B99FB9A0B9A1B9A2B9A3B9A4B9A5B9A6B9A7B9A8B9A9B9AAB9ABB9AEB9AF -B9B1B9B2B9B3B9B5B9B6B9B7B9B8B9B9B9BAB9BBB9BEB9C0B9C2B9C3B9C4B9C5 -B9C6B9C7B9CAB9CBB9CDB9D3B9D4B9D5B9D6B9D7B9DAB9DCB9DFB9E0B9E2B9E6 -B9E7B9E9B9EAB9EBB9EDB9EEB9EFB9F0B9F1B9F2B9F3B9F6B9FBB9FCB9FDB9FE -B9FFBA02BA03BA04BA05BA06BA07BA09BA0ABA0BBA0CBA0DBA0EBA0FBA10BA11 -BA12BA13BA14BA16BA17BA18BA19BA1ABA1BBA1CBA1DBA1EBA1FBA20BA21BA22 -BA23BA24BA25BA26BA27BA28BA29BA2ABA2BBA2CBA2DBA2EBA2FBA30BA31BA32 -BA33BA34BA35BA36BA37BA3ABA3BBA3DBA3EBA3FBA41BA43BA44BA45BA460000 -91 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BA47BA4ABA4CBA4FBA50BA51BA52BA56BA57BA59BA5ABA5BBA5DBA5EBA5F -BA60BA61BA62BA63BA66BA6ABA6BBA6CBA6DBA6EBA6F00000000000000000000 -0000BA72BA73BA75BA76BA77BA79BA7ABA7BBA7CBA7DBA7EBA7FBA80BA81BA82 -BA86BA88BA89BA8ABA8BBA8DBA8EBA8FBA90BA91BA9200000000000000000000 -0000BA93BA94BA95BA96BA97BA98BA99BA9ABA9BBA9CBA9DBA9EBA9FBAA0BAA1 -BAA2BAA3BAA4BAA5BAA6BAA7BAAABAADBAAEBAAFBAB1BAB3BAB4BAB5BAB6BAB7 -BABABABCBABEBABFBAC0BAC1BAC2BAC3BAC5BAC6BAC7BAC9BACABACBBACCBACD -BACEBACFBAD0BAD1BAD2BAD3BAD4BAD5BAD6BAD7BADABADBBADCBADDBADEBADF -BAE0BAE1BAE2BAE3BAE4BAE5BAE6BAE7BAE8BAE9BAEABAEBBAECBAEDBAEEBAEF -BAF0BAF1BAF2BAF3BAF4BAF5BAF6BAF7BAF8BAF9BAFABAFBBAFDBAFEBAFFBB01 -BB02BB03BB05BB06BB07BB08BB09BB0ABB0BBB0CBB0EBB10BB12BB13BB14BB15 -BB16BB17BB19BB1ABB1BBB1DBB1EBB1FBB21BB22BB23BB24BB25BB26BB270000 -92 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BB28BB2ABB2CBB2DBB2EBB2FBB30BB31BB32BB33BB37BB39BB3ABB3FBB40 -BB41BB42BB43BB46BB48BB4ABB4BBB4CBB4EBB51BB5200000000000000000000 -0000BB53BB55BB56BB57BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB62BB64BB65 -BB66BB67BB68BB69BB6ABB6BBB6DBB6EBB6FBB70BB7100000000000000000000 -0000BB72BB73BB74BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB7FBB80 -BB81BB82BB83BB84BB85BB86BB87BB89BB8ABB8BBB8DBB8EBB8FBB91BB92BB93 -BB94BB95BB96BB97BB98BB99BB9ABB9BBB9CBB9DBB9EBB9FBBA0BBA1BBA2BBA3 -BBA5BBA6BBA7BBA9BBAABBABBBADBBAEBBAFBBB0BBB1BBB2BBB3BBB5BBB6BBB8 -BBB9BBBABBBBBBBCBBBDBBBEBBBFBBC1BBC2BBC3BBC5BBC6BBC7BBC9BBCABBCB -BBCCBBCDBBCEBBCFBBD1BBD2BBD4BBD5BBD6BBD7BBD8BBD9BBDABBDBBBDCBBDD -BBDEBBDFBBE0BBE1BBE2BBE3BBE4BBE5BBE6BBE7BBE8BBE9BBEABBEBBBECBBED -BBEEBBEFBBF0BBF1BBF2BBF3BBF4BBF5BBF6BBF7BBFABBFBBBFDBBFEBC010000 -93 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BC03BC04BC05BC06BC07BC0ABC0EBC10BC12BC13BC19BC1ABC20BC21BC22 -BC23BC26BC28BC2ABC2BBC2CBC2EBC2FBC32BC33BC3500000000000000000000 -0000BC36BC37BC39BC3ABC3BBC3CBC3DBC3EBC3FBC42BC46BC47BC48BC4ABC4B -BC4EBC4FBC51BC52BC53BC54BC55BC56BC57BC58BC5900000000000000000000 -0000BC5ABC5BBC5CBC5EBC5FBC60BC61BC62BC63BC64BC65BC66BC67BC68BC69 -BC6ABC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78BC79 -BC7ABC7BBC7CBC7DBC7EBC7FBC80BC81BC82BC83BC86BC87BC89BC8ABC8DBC8F -BC90BC91BC92BC93BC96BC98BC9BBC9CBC9DBC9EBC9FBCA2BCA3BCA5BCA6BCA9 -BCAABCABBCACBCADBCAEBCAFBCB2BCB6BCB7BCB8BCB9BCBABCBBBCBEBCBFBCC1 -BCC2BCC3BCC5BCC6BCC7BCC8BCC9BCCABCCBBCCCBCCEBCD2BCD3BCD4BCD6BCD7 -BCD9BCDABCDBBCDDBCDEBCDFBCE0BCE1BCE2BCE3BCE4BCE5BCE6BCE7BCE8BCE9 -BCEABCEBBCECBCEDBCEEBCEFBCF0BCF1BCF2BCF3BCF7BCF9BCFABCFBBCFD0000 -94 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BCFEBCFFBD00BD01BD02BD03BD06BD08BD0ABD0BBD0CBD0DBD0EBD0FBD11 -BD12BD13BD15BD16BD17BD18BD19BD1ABD1BBD1CBD1D00000000000000000000 -0000BD1EBD1FBD20BD21BD22BD23BD25BD26BD27BD28BD29BD2ABD2BBD2DBD2E -BD2FBD30BD31BD32BD33BD34BD35BD36BD37BD38BD3900000000000000000000 -0000BD3ABD3BBD3CBD3DBD3EBD3FBD41BD42BD43BD44BD45BD46BD47BD4ABD4B -BD4DBD4EBD4FBD51BD52BD53BD54BD55BD56BD57BD5ABD5BBD5CBD5DBD5EBD5F -BD60BD61BD62BD63BD65BD66BD67BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71 -BD72BD73BD74BD75BD76BD77BD78BD79BD7ABD7BBD7CBD7DBD7EBD7FBD82BD83 -BD85BD86BD8BBD8CBD8DBD8EBD8FBD92BD94BD96BD97BD98BD9BBD9DBD9EBD9F -BDA0BDA1BDA2BDA3BDA5BDA6BDA7BDA8BDA9BDAABDABBDACBDADBDAEBDAFBDB1 -BDB2BDB3BDB4BDB5BDB6BDB7BDB9BDBABDBBBDBCBDBDBDBEBDBFBDC0BDC1BDC2 -BDC3BDC4BDC5BDC6BDC7BDC8BDC9BDCABDCBBDCCBDCDBDCEBDCFBDD0BDD10000 -95 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BDD2BDD3BDD6BDD7BDD9BDDABDDBBDDDBDDEBDDFBDE0BDE1BDE2BDE3BDE4 -BDE5BDE6BDE7BDE8BDEABDEBBDECBDEDBDEEBDEFBDF100000000000000000000 -0000BDF2BDF3BDF5BDF6BDF7BDF9BDFABDFBBDFCBDFDBDFEBDFFBE01BE02BE04 -BE06BE07BE08BE09BE0ABE0BBE0EBE0FBE11BE12BE1300000000000000000000 -0000BE15BE16BE17BE18BE19BE1ABE1BBE1EBE20BE21BE22BE23BE24BE25BE26 -BE27BE28BE29BE2ABE2BBE2CBE2DBE2EBE2FBE30BE31BE32BE33BE34BE35BE36 -BE37BE38BE39BE3ABE3BBE3CBE3DBE3EBE3FBE40BE41BE42BE43BE46BE47BE49 -BE4ABE4BBE4DBE4FBE50BE51BE52BE53BE56BE58BE5CBE5DBE5EBE5FBE62BE63 -BE65BE66BE67BE69BE6BBE6CBE6DBE6EBE6FBE72BE76BE77BE78BE79BE7ABE7E -BE7FBE81BE82BE83BE85BE86BE87BE88BE89BE8ABE8BBE8EBE92BE93BE94BE95 -BE96BE97BE9ABE9BBE9CBE9DBE9EBE9FBEA0BEA1BEA2BEA3BEA4BEA5BEA6BEA7 -BEA9BEAABEABBEACBEADBEAEBEAFBEB0BEB1BEB2BEB3BEB4BEB5BEB6BEB70000 -96 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BEB8BEB9BEBABEBBBEBCBEBDBEBEBEBFBEC0BEC1BEC2BEC3BEC4BEC5BEC6 -BEC7BEC8BEC9BECABECBBECCBECDBECEBECFBED2BED300000000000000000000 -0000BED5BED6BED9BEDABEDBBEDCBEDDBEDEBEDFBEE1BEE2BEE6BEE7BEE8BEE9 -BEEABEEBBEEDBEEEBEEFBEF0BEF1BEF2BEF3BEF4BEF500000000000000000000 -0000BEF6BEF7BEF8BEF9BEFABEFBBEFCBEFDBEFEBEFFBF00BF02BF03BF04BF05 -BF06BF07BF0ABF0BBF0CBF0DBF0EBF0FBF10BF11BF12BF13BF14BF15BF16BF17 -BF1ABF1EBF1FBF20BF21BF22BF23BF24BF25BF26BF27BF28BF29BF2ABF2BBF2C -BF2DBF2EBF2FBF30BF31BF32BF33BF34BF35BF36BF37BF38BF39BF3ABF3BBF3C -BF3DBF3EBF3FBF42BF43BF45BF46BF47BF49BF4ABF4BBF4CBF4DBF4EBF4FBF52 -BF53BF54BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63 -BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73 -BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF7FBF80BF81BF820000 -97 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BF83BF84BF85BF86BF87BF88BF89BF8ABF8BBF8CBF8DBF8EBF8FBF90BF91 -BF92BF93BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9D00000000000000000000 -0000BF9EBF9FBFA0BFA1BFA2BFA3BFA4BFA5BFA6BFA7BFA8BFA9BFAABFABBFAC -BFADBFAEBFAFBFB1BFB2BFB3BFB4BFB5BFB6BFB7BFB800000000000000000000 -0000BFB9BFBABFBBBFBCBFBDBFBEBFBFBFC0BFC1BFC2BFC3BFC4BFC6BFC7BFC8 -BFC9BFCABFCBBFCEBFCFBFD1BFD2BFD3BFD5BFD6BFD7BFD8BFD9BFDABFDBBFDD -BFDEBFE0BFE2BFE3BFE4BFE5BFE6BFE7BFE8BFE9BFEABFEBBFECBFEDBFEEBFEF -BFF0BFF1BFF2BFF3BFF4BFF5BFF6BFF7BFF8BFF9BFFABFFBBFFCBFFDBFFEBFFF -C000C001C002C003C004C005C006C007C008C009C00AC00BC00CC00DC00EC00F -C010C011C012C013C014C015C016C017C018C019C01AC01BC01CC01DC01EC01F -C020C021C022C023C024C025C026C027C028C029C02AC02BC02CC02DC02EC02F -C030C031C032C033C034C035C036C037C038C039C03AC03BC03DC03EC03F0000 -98 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04E -C04FC050C052C053C054C055C056C057C059C05AC05B00000000000000000000 -0000C05DC05EC05FC061C062C063C064C065C066C067C06AC06BC06CC06DC06E -C06FC070C071C072C073C074C075C076C077C078C07900000000000000000000 -0000C07AC07BC07CC07DC07EC07FC080C081C082C083C084C085C086C087C088 -C089C08AC08BC08CC08DC08EC08FC092C093C095C096C097C099C09AC09BC09C -C09DC09EC09FC0A2C0A4C0A6C0A7C0A8C0A9C0AAC0ABC0AEC0B1C0B2C0B7C0B8 -C0B9C0BAC0BBC0BEC0C2C0C3C0C4C0C6C0C7C0CAC0CBC0CDC0CEC0CFC0D1C0D2 -C0D3C0D4C0D5C0D6C0D7C0DAC0DEC0DFC0E0C0E1C0E2C0E3C0E6C0E7C0E9C0EA -C0EBC0EDC0EEC0EFC0F0C0F1C0F2C0F3C0F6C0F8C0FAC0FBC0FCC0FDC0FEC0FF -C101C102C103C105C106C107C109C10AC10BC10CC10DC10EC10FC111C112C113 -C114C116C117C118C119C11AC11BC121C122C125C128C129C12AC12BC12E0000 -99 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C132C133C134C135C137C13AC13BC13DC13EC13FC141C142C143C144C145 -C146C147C14AC14EC14FC150C151C152C153C156C15700000000000000000000 -0000C159C15AC15BC15DC15EC15FC160C161C162C163C166C16AC16BC16CC16D -C16EC16FC171C172C173C175C176C177C179C17AC17B00000000000000000000 -0000C17CC17DC17EC17FC180C181C182C183C184C186C187C188C189C18AC18B -C18FC191C192C193C195C197C198C199C19AC19BC19EC1A0C1A2C1A3C1A4C1A6 -C1A7C1AAC1ABC1ADC1AEC1AFC1B1C1B2C1B3C1B4C1B5C1B6C1B7C1B8C1B9C1BA -C1BBC1BCC1BEC1BFC1C0C1C1C1C2C1C3C1C5C1C6C1C7C1C9C1CAC1CBC1CDC1CE -C1CFC1D0C1D1C1D2C1D3C1D5C1D6C1D9C1DAC1DBC1DCC1DDC1DEC1DFC1E1C1E2 -C1E3C1E5C1E6C1E7C1E9C1EAC1EBC1ECC1EDC1EEC1EFC1F2C1F4C1F5C1F6C1F7 -C1F8C1F9C1FAC1FBC1FEC1FFC201C202C203C205C206C207C208C209C20AC20B -C20EC210C212C213C214C215C216C217C21AC21BC21DC21EC221C222C2230000 -9A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C224C225C226C227C22AC22CC22EC230C233C235C236C237C238C239C23A -C23BC23CC23DC23EC23FC240C241C242C243C244C24500000000000000000000 -0000C246C247C249C24AC24BC24CC24DC24EC24FC252C253C255C256C257C259 -C25AC25BC25CC25DC25EC25FC261C262C263C264C26600000000000000000000 -0000C267C268C269C26AC26BC26EC26FC271C272C273C275C276C277C278C279 -C27AC27BC27EC280C282C283C284C285C286C287C28AC28BC28CC28DC28EC28F -C291C292C293C294C295C296C297C299C29AC29CC29EC29FC2A0C2A1C2A2C2A3 -C2A6C2A7C2A9C2AAC2ABC2AEC2AFC2B0C2B1C2B2C2B3C2B6C2B8C2BAC2BBC2BC -C2BDC2BEC2BFC2C0C2C1C2C2C2C3C2C4C2C5C2C6C2C7C2C8C2C9C2CAC2CBC2CC -C2CDC2CEC2CFC2D0C2D1C2D2C2D3C2D4C2D5C2D6C2D7C2D8C2D9C2DAC2DBC2DE -C2DFC2E1C2E2C2E5C2E6C2E7C2E8C2E9C2EAC2EEC2F0C2F2C2F3C2F4C2F5C2F7 -C2FAC2FDC2FEC2FFC301C302C303C304C305C306C307C30AC30BC30EC30F0000 -9B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C310C311C312C316C317C319C31AC31BC31DC31EC31FC320C321C322C323 -C326C327C32AC32BC32CC32DC32EC32FC330C331C33200000000000000000000 -0000C333C334C335C336C337C338C339C33AC33BC33CC33DC33EC33FC340C341 -C342C343C344C346C347C348C349C34AC34BC34CC34D00000000000000000000 -0000C34EC34FC350C351C352C353C354C355C356C357C358C359C35AC35BC35C -C35DC35EC35FC360C361C362C363C364C365C366C367C36AC36BC36DC36EC36F -C371C373C374C375C376C377C37AC37BC37EC37FC380C381C382C383C385C386 -C387C389C38AC38BC38DC38EC38FC390C391C392C393C394C395C396C397C398 -C399C39AC39BC39CC39DC39EC39FC3A0C3A1C3A2C3A3C3A4C3A5C3A6C3A7C3A8 -C3A9C3AAC3ABC3ACC3ADC3AEC3AFC3B0C3B1C3B2C3B3C3B4C3B5C3B6C3B7C3B8 -C3B9C3BAC3BBC3BCC3BDC3BEC3BFC3C1C3C2C3C3C3C4C3C5C3C6C3C7C3C8C3C9 -C3CAC3CBC3CCC3CDC3CEC3CFC3D0C3D1C3D2C3D3C3D4C3D5C3D6C3D7C3DA0000 -9C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C3DBC3DDC3DEC3E1C3E3C3E4C3E5C3E6C3E7C3EAC3EBC3ECC3EEC3EFC3F0 -C3F1C3F2C3F3C3F6C3F7C3F9C3FAC3FBC3FCC3FDC3FE00000000000000000000 -0000C3FFC400C401C402C403C404C405C406C407C409C40AC40BC40CC40DC40E -C40FC411C412C413C414C415C416C417C418C419C41A00000000000000000000 -0000C41BC41CC41DC41EC41FC420C421C422C423C425C426C427C428C429C42A -C42BC42DC42EC42FC431C432C433C435C436C437C438C439C43AC43BC43EC43F -C440C441C442C443C444C445C446C447C449C44AC44BC44CC44DC44EC44FC450 -C451C452C453C454C455C456C457C458C459C45AC45BC45CC45DC45EC45FC460 -C461C462C463C466C467C469C46AC46BC46DC46EC46FC470C471C472C473C476 -C477C478C47AC47BC47CC47DC47EC47FC481C482C483C484C485C486C487C488 -C489C48AC48BC48CC48DC48EC48FC490C491C492C493C495C496C497C498C499 -C49AC49BC49DC49EC49FC4A0C4A1C4A2C4A3C4A4C4A5C4A6C4A7C4A8C4A90000 -9D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C4AAC4ABC4ACC4ADC4AEC4AFC4B0C4B1C4B2C4B3C4B4C4B5C4B6C4B7C4B9 -C4BAC4BBC4BDC4BEC4BFC4C0C4C1C4C2C4C3C4C4C4C500000000000000000000 -0000C4C6C4C7C4C8C4C9C4CAC4CBC4CCC4CDC4CEC4CFC4D0C4D1C4D2C4D3C4D4 -C4D5C4D6C4D7C4D8C4D9C4DAC4DBC4DCC4DDC4DEC4DF00000000000000000000 -0000C4E0C4E1C4E2C4E3C4E4C4E5C4E6C4E7C4E8C4EAC4EBC4ECC4EDC4EEC4EF -C4F2C4F3C4F5C4F6C4F7C4F9C4FBC4FCC4FDC4FEC502C503C504C505C506C507 -C508C509C50AC50BC50DC50EC50FC511C512C513C515C516C517C518C519C51A -C51BC51DC51EC51FC520C521C522C523C524C525C526C527C52AC52BC52DC52E -C52FC531C532C533C534C535C536C537C53AC53CC53EC53FC540C541C542C543 -C546C547C54BC54FC550C551C552C556C55AC55BC55CC55FC562C563C565C566 -C567C569C56AC56BC56CC56DC56EC56FC572C576C577C578C579C57AC57BC57E -C57FC581C582C583C585C586C588C589C58AC58BC58EC590C592C593C5940000 -9E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C596C599C59AC59BC59DC59EC59FC5A1C5A2C5A3C5A4C5A5C5A6C5A7C5A8 -C5AAC5ABC5ACC5ADC5AEC5AFC5B0C5B1C5B2C5B3C5B600000000000000000000 -0000C5B7C5BAC5BFC5C0C5C1C5C2C5C3C5CBC5CDC5CFC5D2C5D3C5D5C5D6C5D7 -C5D9C5DAC5DBC5DCC5DDC5DEC5DFC5E2C5E4C5E6C5E700000000000000000000 -0000C5E8C5E9C5EAC5EBC5EFC5F1C5F2C5F3C5F5C5F8C5F9C5FAC5FBC602C603 -C604C609C60AC60BC60DC60EC60FC611C612C613C614C615C616C617C61AC61D -C61EC61FC620C621C622C623C626C627C629C62AC62BC62FC631C632C636C638 -C63AC63CC63DC63EC63FC642C643C645C646C647C649C64AC64BC64CC64DC64E -C64FC652C656C657C658C659C65AC65BC65EC65FC661C662C663C664C665C666 -C667C668C669C66AC66BC66DC66EC670C672C673C674C675C676C677C67AC67B -C67DC67EC67FC681C682C683C684C685C686C687C68AC68CC68EC68FC690C691 -C692C693C696C697C699C69AC69BC69DC69EC69FC6A0C6A1C6A2C6A3C6A60000 -9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C6A8C6AAC6ABC6ACC6ADC6AEC6AFC6B2C6B3C6B5C6B6C6B7C6BBC6BCC6BD -C6BEC6BFC6C2C6C4C6C6C6C7C6C8C6C9C6CAC6CBC6CE00000000000000000000 -0000C6CFC6D1C6D2C6D3C6D5C6D6C6D7C6D8C6D9C6DAC6DBC6DEC6DFC6E2C6E3 -C6E4C6E5C6E6C6E7C6EAC6EBC6EDC6EEC6EFC6F1C6F200000000000000000000 -0000C6F3C6F4C6F5C6F6C6F7C6FAC6FBC6FCC6FEC6FFC700C701C702C703C706 -C707C709C70AC70BC70DC70EC70FC710C711C712C713C716C718C71AC71BC71C -C71DC71EC71FC722C723C725C726C727C729C72AC72BC72CC72DC72EC72FC732 -C734C736C738C739C73AC73BC73EC73FC741C742C743C745C746C747C748C749 -C74BC74EC750C759C75AC75BC75DC75EC75FC761C762C763C764C765C766C767 -C769C76AC76CC76DC76EC76FC770C771C772C773C776C777C779C77AC77BC77F -C780C781C782C786C78BC78CC78DC78FC792C793C795C799C79BC79CC79DC79E -C79FC7A2C7A7C7A8C7A9C7AAC7ABC7AEC7AFC7B1C7B2C7B3C7B5C7B6C7B70000 -A0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C7B8C7B9C7BAC7BBC7BEC7C2C7C3C7C4C7C5C7C6C7C7C7CAC7CBC7CDC7CF -C7D1C7D2C7D3C7D4C7D5C7D6C7D7C7D9C7DAC7DBC7DC00000000000000000000 -0000C7DEC7DFC7E0C7E1C7E2C7E3C7E5C7E6C7E7C7E9C7EAC7EBC7EDC7EEC7EF -C7F0C7F1C7F2C7F3C7F4C7F5C7F6C7F7C7F8C7F9C7FA00000000000000000000 -0000C7FBC7FCC7FDC7FEC7FFC802C803C805C806C807C809C80BC80CC80DC80E -C80FC812C814C817C818C819C81AC81BC81EC81FC821C822C823C825C826C827 -C828C829C82AC82BC82EC830C832C833C834C835C836C837C839C83AC83BC83D -C83EC83FC841C842C843C844C845C846C847C84AC84BC84EC84FC850C851C852 -C853C855C856C857C858C859C85AC85BC85CC85DC85EC85FC860C861C862C863 -C864C865C866C867C868C869C86AC86BC86CC86DC86EC86FC872C873C875C876 -C877C879C87BC87CC87DC87EC87FC882C884C888C889C88AC88EC88FC890C891 -C892C893C895C896C897C898C899C89AC89BC89CC89EC8A0C8A2C8A3C8A40000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C8A5C8A6C8A7C8A9C8AAC8ABC8ACC8ADC8AEC8AFC8B0C8B1C8B2C8B3C8B4 -C8B5C8B6C8B7C8B8C8B9C8BAC8BBC8BEC8BFC8C0C8C100000000000000000000 -0000C8C2C8C3C8C5C8C6C8C7C8C9C8CAC8CBC8CDC8CEC8CFC8D0C8D1C8D2C8D3 -C8D6C8D8C8DAC8DBC8DCC8DDC8DEC8DFC8E2C8E3C8E500000000000000000000 -0000C8E6C8E7C8E8C8E9C8EAC8EBC8ECC8EDC8EEC8EFC8F0C8F1C8F2C8F3C8F4 -C8F6C8F7C8F8C8F9C8FAC8FBC8FEC8FFC901C902C903C907C908C909C90AC90B -C90E30003001300200B72025202600A8300300AD20152225FF3C223C20182019 -201C201D3014301530083009300A300B300C300D300E300F3010301100B100D7 -00F7226022642265221E223400B0203220332103212BFFE0FFE1FFE526422640 -222022A52312220222072261225200A7203B2606260525CB25CF25CE25C725C6 -25A125A025B325B225BD25BC219221902191219321943013226A226B221A223D -221D2235222B222C2208220B2286228722822283222A222922272228FFE20000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C910C912C913C914C915C916C917C919C91AC91BC91CC91DC91EC91FC920 -C921C922C923C924C925C926C927C928C929C92AC92B00000000000000000000 -0000C92DC92EC92FC930C931C932C933C935C936C937C938C939C93AC93BC93C -C93DC93EC93FC940C941C942C943C944C945C946C94700000000000000000000 -0000C948C949C94AC94BC94CC94DC94EC94FC952C953C955C956C957C959C95A -C95BC95CC95DC95EC95FC962C964C965C966C967C968C969C96AC96BC96DC96E -C96F21D221D42200220300B4FF5E02C702D802DD02DA02D900B802DB00A100BF -02D0222E2211220F00A42109203025C125C025B725B626642660266126652667 -2663229925C825A325D025D1259225A425A525A825A725A625A92668260F260E -261C261E00B62020202121952197219921962198266D2669266A266C327F321C -211633C7212233C233D8212120AC00AE00000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C971C972C973C975C976C977C978C979C97AC97BC97DC97EC97FC980C981 -C982C983C984C985C986C987C98AC98BC98DC98EC98F00000000000000000000 -0000C991C992C993C994C995C996C997C99AC99CC99EC99FC9A0C9A1C9A2C9A3 -C9A4C9A5C9A6C9A7C9A8C9A9C9AAC9ABC9ACC9ADC9AE00000000000000000000 -0000C9AFC9B0C9B1C9B2C9B3C9B4C9B5C9B6C9B7C9B8C9B9C9BAC9BBC9BCC9BD -C9BEC9BFC9C2C9C3C9C5C9C6C9C9C9CBC9CCC9CDC9CEC9CFC9D2C9D4C9D7C9D8 -C9DBFF01FF02FF03FF04FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFFE6FF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C9DEC9DFC9E1C9E3C9E5C9E6C9E8C9E9C9EAC9EBC9EEC9F2C9F3C9F4C9F5 -C9F6C9F7C9FAC9FBC9FDC9FEC9FFCA01CA02CA03CA0400000000000000000000 -0000CA05CA06CA07CA0ACA0ECA0FCA10CA11CA12CA13CA15CA16CA17CA19CA1A -CA1BCA1CCA1DCA1ECA1FCA20CA21CA22CA23CA24CA2500000000000000000000 -0000CA26CA27CA28CA2ACA2BCA2CCA2DCA2ECA2FCA30CA31CA32CA33CA34CA35 -CA36CA37CA38CA39CA3ACA3BCA3CCA3DCA3ECA3FCA40CA41CA42CA43CA44CA45 -CA46313131323133313431353136313731383139313A313B313C313D313E313F -3140314131423143314431453146314731483149314A314B314C314D314E314F -3150315131523153315431553156315731583159315A315B315C315D315E315F -3160316131623163316431653166316731683169316A316B316C316D316E316F -3170317131723173317431753176317731783179317A317B317C317D317E317F -3180318131823183318431853186318731883189318A318B318C318D318E0000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CA47CA48CA49CA4ACA4BCA4ECA4FCA51CA52CA53CA55CA56CA57CA58CA59 -CA5ACA5BCA5ECA62CA63CA64CA65CA66CA67CA69CA6A00000000000000000000 -0000CA6BCA6CCA6DCA6ECA6FCA70CA71CA72CA73CA74CA75CA76CA77CA78CA79 -CA7ACA7BCA7CCA7ECA7FCA80CA81CA82CA83CA85CA8600000000000000000000 -0000CA87CA88CA89CA8ACA8BCA8CCA8DCA8ECA8FCA90CA91CA92CA93CA94CA95 -CA96CA97CA99CA9ACA9BCA9CCA9DCA9ECA9FCAA0CAA1CAA2CAA3CAA4CAA5CAA6 -CAA7217021712172217321742175217621772178217900000000000000000000 -2160216121622163216421652166216721682169000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CAA8CAA9CAAACAABCAACCAADCAAECAAFCAB0CAB1CAB2CAB3CAB4CAB5CAB6 -CAB7CAB8CAB9CABACABBCABECABFCAC1CAC2CAC3CAC500000000000000000000 -0000CAC6CAC7CAC8CAC9CACACACBCACECAD0CAD2CAD4CAD5CAD6CAD7CADACADB -CADCCADDCADECADFCAE1CAE2CAE3CAE4CAE5CAE6CAE700000000000000000000 -0000CAE8CAE9CAEACAEBCAEDCAEECAEFCAF0CAF1CAF2CAF3CAF5CAF6CAF7CAF8 -CAF9CAFACAFBCAFCCAFDCAFECAFFCB00CB01CB02CB03CB04CB05CB06CB07CB09 -CB0A25002502250C251025182514251C252C25242534253C25012503250F2513 -251B251725232533252B253B254B2520252F25282537253F251D253025252538 -254225122511251A251925162515250E250D251E251F25212522252625272529 -252A252D252E25312532253525362539253A253D253E25402541254325442545 -2546254725482549254A00000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CB0BCB0CCB0DCB0ECB0FCB11CB12CB13CB15CB16CB17CB19CB1ACB1BCB1C -CB1DCB1ECB1FCB22CB23CB24CB25CB26CB27CB28CB2900000000000000000000 -0000CB2ACB2BCB2CCB2DCB2ECB2FCB30CB31CB32CB33CB34CB35CB36CB37CB38 -CB39CB3ACB3BCB3CCB3DCB3ECB3FCB40CB42CB43CB4400000000000000000000 -0000CB45CB46CB47CB4ACB4BCB4DCB4ECB4FCB51CB52CB53CB54CB55CB56CB57 -CB5ACB5BCB5CCB5ECB5FCB60CB61CB62CB63CB65CB66CB67CB68CB69CB6ACB6B -CB6C3395339633972113339833C433A333A433A533A63399339A339B339C339D -339E339F33A033A133A233CA338D338E338F33CF3388338933C833A733A833B0 -33B133B233B333B433B533B633B733B833B93380338133823383338433BA33BB -33BC33BD33BE33BF33903391339233933394212633C033C1338A338B338C33D6 -33C533AD33AE33AF33DB33A933AA33AB33AC33DD33D033D333C333C933DC33C6 -0000000000000000000000000000000000000000000000000000000000000000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CB6DCB6ECB6FCB70CB71CB72CB73CB74CB75CB76CB77CB7ACB7BCB7CCB7D -CB7ECB7FCB80CB81CB82CB83CB84CB85CB86CB87CB8800000000000000000000 -0000CB89CB8ACB8BCB8CCB8DCB8ECB8FCB90CB91CB92CB93CB94CB95CB96CB97 -CB98CB99CB9ACB9BCB9DCB9ECB9FCBA0CBA1CBA2CBA300000000000000000000 -0000CBA4CBA5CBA6CBA7CBA8CBA9CBAACBABCBACCBADCBAECBAFCBB0CBB1CBB2 -CBB3CBB4CBB5CBB6CBB7CBB9CBBACBBBCBBCCBBDCBBECBBFCBC0CBC1CBC2CBC3 -CBC400C600D000AA0126000001320000013F014100D8015200BA00DE0166014A -00003260326132623263326432653266326732683269326A326B326C326D326E -326F3270327132723273327432753276327732783279327A327B24D024D124D2 -24D324D424D524D624D724D824D924DA24DB24DC24DD24DE24DF24E024E124E2 -24E324E424E524E624E724E824E9246024612462246324642465246624672468 -2469246A246B246C246D246E00BD2153215400BC00BE215B215C215D215E0000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CBC5CBC6CBC7CBC8CBC9CBCACBCBCBCCCBCDCBCECBCFCBD0CBD1CBD2CBD3 -CBD5CBD6CBD7CBD8CBD9CBDACBDBCBDCCBDDCBDECBDF00000000000000000000 -0000CBE0CBE1CBE2CBE3CBE5CBE6CBE8CBEACBEBCBECCBEDCBEECBEFCBF0CBF1 -CBF2CBF3CBF4CBF5CBF6CBF7CBF8CBF9CBFACBFBCBFC00000000000000000000 -0000CBFDCBFECBFFCC00CC01CC02CC03CC04CC05CC06CC07CC08CC09CC0ACC0B -CC0ECC0FCC11CC12CC13CC15CC16CC17CC18CC19CC1ACC1BCC1ECC1FCC20CC23 -CC2400E6011100F001270131013301380140014200F8015300DF00FE0167014B -01493200320132023203320432053206320732083209320A320B320C320D320E -320F3210321132123213321432153216321732183219321A321B249C249D249E -249F24A024A124A224A324A424A524A624A724A824A924AA24AB24AC24AD24AE -24AF24B024B124B224B324B424B5247424752476247724782479247A247B247C -247D247E247F24802481248200B900B200B32074207F20812082208320840000 -AA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CC25CC26CC2ACC2BCC2DCC2FCC31CC32CC33CC34CC35CC36CC37CC3ACC3F -CC40CC41CC42CC43CC46CC47CC49CC4ACC4BCC4DCC4E00000000000000000000 -0000CC4FCC50CC51CC52CC53CC56CC5ACC5BCC5CCC5DCC5ECC5FCC61CC62CC63 -CC65CC67CC69CC6ACC6BCC6CCC6DCC6ECC6FCC71CC7200000000000000000000 -0000CC73CC74CC76CC77CC78CC79CC7ACC7BCC7CCC7DCC7ECC7FCC80CC81CC82 -CC83CC84CC85CC86CC87CC88CC89CC8ACC8BCC8CCC8DCC8ECC8FCC90CC91CC92 -CC93304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -AB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CC94CC95CC96CC97CC9ACC9BCC9DCC9ECC9FCCA1CCA2CCA3CCA4CCA5CCA6 -CCA7CCAACCAECCAFCCB0CCB1CCB2CCB3CCB6CCB7CCB900000000000000000000 -0000CCBACCBBCCBDCCBECCBFCCC0CCC1CCC2CCC3CCC6CCC8CCCACCCBCCCCCCCD -CCCECCCFCCD1CCD2CCD3CCD5CCD6CCD7CCD8CCD9CCDA00000000000000000000 -0000CCDBCCDCCCDDCCDECCDFCCE0CCE1CCE2CCE3CCE5CCE6CCE7CCE8CCE9CCEA -CCEBCCEDCCEECCEFCCF1CCF2CCF3CCF4CCF5CCF6CCF7CCF8CCF9CCFACCFBCCFC -CCFD30A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -AC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CCFECCFFCD00CD02CD03CD04CD05CD06CD07CD0ACD0BCD0DCD0ECD0FCD11 -CD12CD13CD14CD15CD16CD17CD1ACD1CCD1ECD1FCD2000000000000000000000 -0000CD21CD22CD23CD25CD26CD27CD29CD2ACD2BCD2DCD2ECD2FCD30CD31CD32 -CD33CD34CD35CD36CD37CD38CD3ACD3BCD3CCD3DCD3E00000000000000000000 -0000CD3FCD40CD41CD42CD43CD44CD45CD46CD47CD48CD49CD4ACD4BCD4CCD4D -CD4ECD4FCD50CD51CD52CD53CD54CD55CD56CD57CD58CD59CD5ACD5BCD5DCD5E -CD5F04100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -AD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CD61CD62CD63CD65CD66CD67CD68CD69CD6ACD6BCD6ECD70CD72CD73CD74 -CD75CD76CD77CD79CD7ACD7BCD7CCD7DCD7ECD7FCD8000000000000000000000 -0000CD81CD82CD83CD84CD85CD86CD87CD89CD8ACD8BCD8CCD8DCD8ECD8FCD90 -CD91CD92CD93CD96CD97CD99CD9ACD9BCD9DCD9ECD9F00000000000000000000 -0000CDA0CDA1CDA2CDA3CDA6CDA8CDAACDABCDACCDADCDAECDAFCDB1CDB2CDB3 -CDB4CDB5CDB6CDB7CDB8CDB9CDBACDBBCDBCCDBDCDBECDBFCDC0CDC1CDC2CDC3 -CDC5000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CDC6CDC7CDC8CDC9CDCACDCBCDCDCDCECDCFCDD1CDD2CDD3CDD4CDD5CDD6 -CDD7CDD8CDD9CDDACDDBCDDCCDDDCDDECDDFCDE0CDE100000000000000000000 -0000CDE2CDE3CDE4CDE5CDE6CDE7CDE9CDEACDEBCDEDCDEECDEFCDF1CDF2CDF3 -CDF4CDF5CDF6CDF7CDFACDFCCDFECDFFCE00CE01CE0200000000000000000000 -0000CE03CE05CE06CE07CE09CE0ACE0BCE0DCE0ECE0FCE10CE11CE12CE13CE15 -CE16CE17CE18CE1ACE1BCE1CCE1DCE1ECE1FCE22CE23CE25CE26CE27CE29CE2A -CE2B000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -AF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CE2CCE2DCE2ECE2FCE32CE34CE36CE37CE38CE39CE3ACE3BCE3CCE3DCE3E -CE3FCE40CE41CE42CE43CE44CE45CE46CE47CE48CE4900000000000000000000 -0000CE4ACE4BCE4CCE4DCE4ECE4FCE50CE51CE52CE53CE54CE55CE56CE57CE5A -CE5BCE5DCE5ECE62CE63CE64CE65CE66CE67CE6ACE6C00000000000000000000 -0000CE6ECE6FCE70CE71CE72CE73CE76CE77CE79CE7ACE7BCE7DCE7ECE7FCE80 -CE81CE82CE83CE86CE88CE8ACE8BCE8CCE8DCE8ECE8FCE92CE93CE95CE96CE97 -CE99000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CE9ACE9BCE9CCE9DCE9ECE9FCEA2CEA6CEA7CEA8CEA9CEAACEABCEAECEAF -CEB0CEB1CEB2CEB3CEB4CEB5CEB6CEB7CEB8CEB9CEBA00000000000000000000 -0000CEBBCEBCCEBDCEBECEBFCEC0CEC2CEC3CEC4CEC5CEC6CEC7CEC8CEC9CECA -CECBCECCCECDCECECECFCED0CED1CED2CED3CED4CED500000000000000000000 -0000CED6CED7CED8CED9CEDACEDBCEDCCEDDCEDECEDFCEE0CEE1CEE2CEE3CEE6 -CEE7CEE9CEEACEEDCEEECEEFCEF0CEF1CEF2CEF3CEF6CEFACEFBCEFCCEFDCEFE -CEFFAC00AC01AC04AC07AC08AC09AC0AAC10AC11AC12AC13AC14AC15AC16AC17 -AC19AC1AAC1BAC1CAC1DAC20AC24AC2CAC2DAC2FAC30AC31AC38AC39AC3CAC40 -AC4BAC4DAC54AC58AC5CAC70AC71AC74AC77AC78AC7AAC80AC81AC83AC84AC85 -AC86AC89AC8AAC8BAC8CAC90AC94AC9CAC9DAC9FACA0ACA1ACA8ACA9ACAAACAC -ACAFACB0ACB8ACB9ACBBACBCACBDACC1ACC4ACC8ACCCACD5ACD7ACE0ACE1ACE4 -ACE7ACE8ACEAACECACEFACF0ACF1ACF3ACF5ACF6ACFCACFDAD00AD04AD060000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CF02CF03CF05CF06CF07CF09CF0ACF0BCF0CCF0DCF0ECF0FCF12CF14CF16 -CF17CF18CF19CF1ACF1BCF1DCF1ECF1FCF21CF22CF2300000000000000000000 -0000CF25CF26CF27CF28CF29CF2ACF2BCF2ECF32CF33CF34CF35CF36CF37CF39 -CF3ACF3BCF3CCF3DCF3ECF3FCF40CF41CF42CF43CF4400000000000000000000 -0000CF45CF46CF47CF48CF49CF4ACF4BCF4CCF4DCF4ECF4FCF50CF51CF52CF53 -CF56CF57CF59CF5ACF5BCF5DCF5ECF5FCF60CF61CF62CF63CF66CF68CF6ACF6B -CF6CAD0CAD0DAD0FAD11AD18AD1CAD20AD29AD2CAD2DAD34AD35AD38AD3CAD44 -AD45AD47AD49AD50AD54AD58AD61AD63AD6CAD6DAD70AD73AD74AD75AD76AD7B -AD7CAD7DAD7FAD81AD82AD88AD89AD8CAD90AD9CAD9DADA4ADB7ADC0ADC1ADC4 -ADC8ADD0ADD1ADD3ADDCADE0ADE4ADF8ADF9ADFCADFFAE00AE01AE08AE09AE0B -AE0DAE14AE30AE31AE34AE37AE38AE3AAE40AE41AE43AE45AE46AE4AAE4CAE4D -AE4EAE50AE54AE56AE5CAE5DAE5FAE60AE61AE65AE68AE69AE6CAE70AE780000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CF6DCF6ECF6FCF72CF73CF75CF76CF77CF79CF7ACF7BCF7CCF7DCF7ECF7F -CF81CF82CF83CF84CF86CF87CF88CF89CF8ACF8BCF8D00000000000000000000 -0000CF8ECF8FCF90CF91CF92CF93CF94CF95CF96CF97CF98CF99CF9ACF9BCF9C -CF9DCF9ECF9FCFA0CFA2CFA3CFA4CFA5CFA6CFA7CFA900000000000000000000 -0000CFAACFABCFACCFADCFAECFAFCFB1CFB2CFB3CFB4CFB5CFB6CFB7CFB8CFB9 -CFBACFBBCFBCCFBDCFBECFBFCFC0CFC1CFC2CFC3CFC5CFC6CFC7CFC8CFC9CFCA -CFCBAE79AE7BAE7CAE7DAE84AE85AE8CAEBCAEBDAEBEAEC0AEC4AECCAECDAECF -AED0AED1AED8AED9AEDCAEE8AEEBAEEDAEF4AEF8AEFCAF07AF08AF0DAF10AF2C -AF2DAF30AF32AF34AF3CAF3DAF3FAF41AF42AF43AF48AF49AF50AF5CAF5DAF64 -AF65AF79AF80AF84AF88AF90AF91AF95AF9CAFB8AFB9AFBCAFC0AFC7AFC8AFC9 -AFCBAFCDAFCEAFD4AFDCAFE8AFE9AFF0AFF1AFF4AFF8B000B001B004B00CB010 -B014B01CB01DB028B044B045B048B04AB04CB04EB053B054B055B057B0590000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CFCCCFCDCFCECFCFCFD0CFD1CFD2CFD3CFD4CFD5CFD6CFD7CFD8CFD9CFDA -CFDBCFDCCFDDCFDECFDFCFE2CFE3CFE5CFE6CFE7CFE900000000000000000000 -0000CFEACFEBCFECCFEDCFEECFEFCFF2CFF4CFF6CFF7CFF8CFF9CFFACFFBCFFD -CFFECFFFD001D002D003D005D006D007D008D009D00A00000000000000000000 -0000D00BD00CD00DD00ED00FD010D012D013D014D015D016D017D019D01AD01B -D01CD01DD01ED01FD020D021D022D023D024D025D026D027D028D029D02AD02B -D02CB05DB07CB07DB080B084B08CB08DB08FB091B098B099B09AB09CB09FB0A0 -B0A1B0A2B0A8B0A9B0ABB0ACB0ADB0AEB0AFB0B1B0B3B0B4B0B5B0B8B0BCB0C4 -B0C5B0C7B0C8B0C9B0D0B0D1B0D4B0D8B0E0B0E5B108B109B10BB10CB110B112 -B113B118B119B11BB11CB11DB123B124B125B128B12CB134B135B137B138B139 -B140B141B144B148B150B151B154B155B158B15CB160B178B179B17CB180B182 -B188B189B18BB18DB192B193B194B198B19CB1A8B1CCB1D0B1D4B1DCB1DD0000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D02ED02FD030D031D032D033D036D037D039D03AD03BD03DD03ED03FD040 -D041D042D043D046D048D04AD04BD04CD04DD04ED04F00000000000000000000 -0000D051D052D053D055D056D057D059D05AD05BD05CD05DD05ED05FD061D062 -D063D064D065D066D067D068D069D06AD06BD06ED06F00000000000000000000 -0000D071D072D073D075D076D077D078D079D07AD07BD07ED07FD080D082D083 -D084D085D086D087D088D089D08AD08BD08CD08DD08ED08FD090D091D092D093 -D094B1DFB1E8B1E9B1ECB1F0B1F9B1FBB1FDB204B205B208B20BB20CB214B215 -B217B219B220B234B23CB258B25CB260B268B269B274B275B27CB284B285B289 -B290B291B294B298B299B29AB2A0B2A1B2A3B2A5B2A6B2AAB2ACB2B0B2B4B2C8 -B2C9B2CCB2D0B2D2B2D8B2D9B2DBB2DDB2E2B2E4B2E5B2E6B2E8B2EBB2ECB2ED -B2EEB2EFB2F3B2F4B2F5B2F7B2F8B2F9B2FAB2FBB2FFB300B301B304B308B310 -B311B313B314B315B31CB354B355B356B358B35BB35CB35EB35FB364B3650000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D095D096D097D098D099D09AD09BD09CD09DD09ED09FD0A0D0A1D0A2D0A3 -D0A6D0A7D0A9D0AAD0ABD0ADD0AED0AFD0B0D0B1D0B200000000000000000000 -0000D0B3D0B6D0B8D0BAD0BBD0BCD0BDD0BED0BFD0C2D0C3D0C5D0C6D0C7D0CA -D0CBD0CCD0CDD0CED0CFD0D2D0D6D0D7D0D8D0D9D0DA00000000000000000000 -0000D0DBD0DED0DFD0E1D0E2D0E3D0E5D0E6D0E7D0E8D0E9D0EAD0EBD0EED0F2 -D0F3D0F4D0F5D0F6D0F7D0F9D0FAD0FBD0FCD0FDD0FED0FFD100D101D102D103 -D104B367B369B36BB36EB370B371B374B378B380B381B383B384B385B38CB390 -B394B3A0B3A1B3A8B3ACB3C4B3C5B3C8B3CBB3CCB3CEB3D0B3D4B3D5B3D7B3D9 -B3DBB3DDB3E0B3E4B3E8B3FCB410B418B41CB420B428B429B42BB434B450B451 -B454B458B460B461B463B465B46CB480B488B49DB4A4B4A8B4ACB4B5B4B7B4B9 -B4C0B4C4B4C8B4D0B4D5B4DCB4DDB4E0B4E3B4E4B4E6B4ECB4EDB4EFB4F1B4F8 -B514B515B518B51BB51CB524B525B527B528B529B52AB530B531B534B5380000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D105D106D107D108D109D10AD10BD10CD10ED10FD110D111D112D113D114 -D115D116D117D118D119D11AD11BD11CD11DD11ED11F00000000000000000000 -0000D120D121D122D123D124D125D126D127D128D129D12AD12BD12CD12DD12E -D12FD132D133D135D136D137D139D13BD13CD13DD13E00000000000000000000 -0000D13FD142D146D147D148D149D14AD14BD14ED14FD151D152D153D155D156 -D157D158D159D15AD15BD15ED160D162D163D164D165D166D167D169D16AD16B -D16DB540B541B543B544B545B54BB54CB54DB550B554B55CB55DB55FB560B561 -B5A0B5A1B5A4B5A8B5AAB5ABB5B0B5B1B5B3B5B4B5B5B5BBB5BCB5BDB5C0B5C4 -B5CCB5CDB5CFB5D0B5D1B5D8B5ECB610B611B614B618B625B62CB634B648B664 -B668B69CB69DB6A0B6A4B6ABB6ACB6B1B6D4B6F0B6F4B6F8B700B701B705B728 -B729B72CB72FB730B738B739B73BB744B748B74CB754B755B760B764B768B770 -B771B773B775B77CB77DB780B784B78CB78DB78FB790B791B792B796B7970000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D16ED16FD170D171D172D173D174D175D176D177D178D179D17AD17BD17D -D17ED17FD180D181D182D183D185D186D187D189D18A00000000000000000000 -0000D18BD18CD18DD18ED18FD190D191D192D193D194D195D196D197D198D199 -D19AD19BD19CD19DD19ED19FD1A2D1A3D1A5D1A6D1A700000000000000000000 -0000D1A9D1AAD1ABD1ACD1ADD1AED1AFD1B2D1B4D1B6D1B7D1B8D1B9D1BBD1BD -D1BED1BFD1C1D1C2D1C3D1C4D1C5D1C6D1C7D1C8D1C9D1CAD1CBD1CCD1CDD1CE -D1CFB798B799B79CB7A0B7A8B7A9B7ABB7ACB7ADB7B4B7B5B7B8B7C7B7C9B7EC -B7EDB7F0B7F4B7FCB7FDB7FFB800B801B807B808B809B80CB810B818B819B81B -B81DB824B825B828B82CB834B835B837B838B839B840B844B851B853B85CB85D -B860B864B86CB86DB86FB871B878B87CB88DB8A8B8B0B8B4B8B8B8C0B8C1B8C3 -B8C5B8CCB8D0B8D4B8DDB8DFB8E1B8E8B8E9B8ECB8F0B8F8B8F9B8FBB8FDB904 -B918B920B93CB93DB940B944B94CB94FB951B958B959B95CB960B968B9690000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D1D0D1D1D1D2D1D3D1D4D1D5D1D6D1D7D1D9D1DAD1DBD1DCD1DDD1DED1DF -D1E0D1E1D1E2D1E3D1E4D1E5D1E6D1E7D1E8D1E9D1EA00000000000000000000 -0000D1EBD1ECD1EDD1EED1EFD1F0D1F1D1F2D1F3D1F5D1F6D1F7D1F9D1FAD1FB -D1FCD1FDD1FED1FFD200D201D202D203D204D205D20600000000000000000000 -0000D208D20AD20BD20CD20DD20ED20FD211D212D213D214D215D216D217D218 -D219D21AD21BD21CD21DD21ED21FD220D221D222D223D224D225D226D227D228 -D229B96BB96DB974B975B978B97CB984B985B987B989B98AB98DB98EB9ACB9AD -B9B0B9B4B9BCB9BDB9BFB9C1B9C8B9C9B9CCB9CEB9CFB9D0B9D1B9D2B9D8B9D9 -B9DBB9DDB9DEB9E1B9E3B9E4B9E5B9E8B9ECB9F4B9F5B9F7B9F8B9F9B9FABA00 -BA01BA08BA15BA38BA39BA3CBA40BA42BA48BA49BA4BBA4DBA4EBA53BA54BA55 -BA58BA5CBA64BA65BA67BA68BA69BA70BA71BA74BA78BA83BA84BA85BA87BA8C -BAA8BAA9BAABBAACBAB0BAB2BAB8BAB9BABBBABDBAC4BAC8BAD8BAD9BAFC0000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D22AD22BD22ED22FD231D232D233D235D236D237D238D239D23AD23BD23E -D240D242D243D244D245D246D247D249D24AD24BD24C00000000000000000000 -0000D24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25B -D25DD25ED25FD260D261D262D263D265D266D267D26800000000000000000000 -0000D269D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277 -D278D279D27AD27BD27CD27DD27ED27FD282D283D285D286D287D289D28AD28B -D28CBB00BB04BB0DBB0FBB11BB18BB1CBB20BB29BB2BBB34BB35BB36BB38BB3B -BB3CBB3DBB3EBB44BB45BB47BB49BB4DBB4FBB50BB54BB58BB61BB63BB6CBB88 -BB8CBB90BBA4BBA8BBACBBB4BBB7BBC0BBC4BBC8BBD0BBD3BBF8BBF9BBFCBBFF -BC00BC02BC08BC09BC0BBC0CBC0DBC0FBC11BC14BC15BC16BC17BC18BC1BBC1C -BC1DBC1EBC1FBC24BC25BC27BC29BC2DBC30BC31BC34BC38BC40BC41BC43BC44 -BC45BC49BC4CBC4DBC50BC5DBC84BC85BC88BC8BBC8CBC8EBC94BC95BC970000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D28DD28ED28FD292D293D294D296D297D298D299D29AD29BD29DD29ED29F -D2A1D2A2D2A3D2A5D2A6D2A7D2A8D2A9D2AAD2ABD2AD00000000000000000000 -0000D2AED2AFD2B0D2B2D2B3D2B4D2B5D2B6D2B7D2BAD2BBD2BDD2BED2C1D2C3 -D2C4D2C5D2C6D2C7D2CAD2CCD2CDD2CED2CFD2D0D2D100000000000000000000 -0000D2D2D2D3D2D5D2D6D2D7D2D9D2DAD2DBD2DDD2DED2DFD2E0D2E1D2E2D2E3 -D2E6D2E7D2E8D2E9D2EAD2EBD2ECD2EDD2EED2EFD2F2D2F3D2F5D2F6D2F7D2F9 -D2FABC99BC9ABCA0BCA1BCA4BCA7BCA8BCB0BCB1BCB3BCB4BCB5BCBCBCBDBCC0 -BCC4BCCDBCCFBCD0BCD1BCD5BCD8BCDCBCF4BCF5BCF6BCF8BCFCBD04BD05BD07 -BD09BD10BD14BD24BD2CBD40BD48BD49BD4CBD50BD58BD59BD64BD68BD80BD81 -BD84BD87BD88BD89BD8ABD90BD91BD93BD95BD99BD9ABD9CBDA4BDB0BDB8BDD4 -BDD5BDD8BDDCBDE9BDF0BDF4BDF8BE00BE03BE05BE0CBE0DBE10BE14BE1CBE1D -BE1FBE44BE45BE48BE4CBE4EBE54BE55BE57BE59BE5ABE5BBE60BE61BE640000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D2FBD2FCD2FDD2FED2FFD302D304D306D307D308D309D30AD30BD30FD311 -D312D313D315D317D318D319D31AD31BD31ED322D32300000000000000000000 -0000D324D326D327D32AD32BD32DD32ED32FD331D332D333D334D335D336D337 -D33AD33ED33FD340D341D342D343D346D347D348D34900000000000000000000 -0000D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358 -D359D35AD35BD35CD35DD35ED35FD360D361D362D363D364D365D366D367D368 -D369BE68BE6ABE70BE71BE73BE74BE75BE7BBE7CBE7DBE80BE84BE8CBE8DBE8F -BE90BE91BE98BE99BEA8BED0BED1BED4BED7BED8BEE0BEE3BEE4BEE5BEECBF01 -BF08BF09BF18BF19BF1BBF1CBF1DBF40BF41BF44BF48BF50BF51BF55BF94BFB0 -BFC5BFCCBFCDBFD0BFD4BFDCBFDFBFE1C03CC051C058C05CC060C068C069C090 -C091C094C098C0A0C0A1C0A3C0A5C0ACC0ADC0AFC0B0C0B3C0B4C0B5C0B6C0BC -C0BDC0BFC0C0C0C1C0C5C0C8C0C9C0CCC0D0C0D8C0D9C0DBC0DCC0DDC0E40000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D36AD36BD36CD36DD36ED36FD370D371D372D373D374D375D376D377D378 -D379D37AD37BD37ED37FD381D382D383D385D386D38700000000000000000000 -0000D388D389D38AD38BD38ED392D393D394D395D396D397D39AD39BD39DD39E -D39FD3A1D3A2D3A3D3A4D3A5D3A6D3A7D3AAD3ACD3AE00000000000000000000 -0000D3AFD3B0D3B1D3B2D3B3D3B5D3B6D3B7D3B9D3BAD3BBD3BDD3BED3BFD3C0 -D3C1D3C2D3C3D3C6D3C7D3CAD3CBD3CCD3CDD3CED3CFD3D1D3D2D3D3D3D4D3D5 -D3D6C0E5C0E8C0ECC0F4C0F5C0F7C0F9C100C104C108C110C115C11CC11DC11E -C11FC120C123C124C126C127C12CC12DC12FC130C131C136C138C139C13CC140 -C148C149C14BC14CC14DC154C155C158C15CC164C165C167C168C169C170C174 -C178C185C18CC18DC18EC190C194C196C19CC19DC19FC1A1C1A5C1A8C1A9C1AC -C1B0C1BDC1C4C1C8C1CCC1D4C1D7C1D8C1E0C1E4C1E8C1F0C1F1C1F3C1FCC1FD -C200C204C20CC20DC20FC211C218C219C21CC21FC220C228C229C22BC22D0000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D3D7D3D9D3DAD3DBD3DCD3DDD3DED3DFD3E0D3E2D3E4D3E5D3E6D3E7D3E8 -D3E9D3EAD3EBD3EED3EFD3F1D3F2D3F3D3F5D3F6D3F700000000000000000000 -0000D3F8D3F9D3FAD3FBD3FED400D402D403D404D405D406D407D409D40AD40B -D40CD40DD40ED40FD410D411D412D413D414D415D41600000000000000000000 -0000D417D418D419D41AD41BD41CD41ED41FD420D421D422D423D424D425D426 -D427D428D429D42AD42BD42CD42DD42ED42FD430D431D432D433D434D435D436 -D437C22FC231C232C234C248C250C251C254C258C260C265C26CC26DC270C274 -C27CC27DC27FC281C288C289C290C298C29BC29DC2A4C2A5C2A8C2ACC2ADC2B4 -C2B5C2B7C2B9C2DCC2DDC2E0C2E3C2E4C2EBC2ECC2EDC2EFC2F1C2F6C2F8C2F9 -C2FBC2FCC300C308C309C30CC30DC313C314C315C318C31CC324C325C328C329 -C345C368C369C36CC370C372C378C379C37CC37DC384C388C38CC3C0C3D8C3D9 -C3DCC3DFC3E0C3E2C3E8C3E9C3EDC3F4C3F5C3F8C408C410C424C42CC4300000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D438D439D43AD43BD43CD43DD43ED43FD441D442D443D445D446D447D448 -D449D44AD44BD44CD44DD44ED44FD450D451D452D45300000000000000000000 -0000D454D455D456D457D458D459D45AD45BD45DD45ED45FD461D462D463D465 -D466D467D468D469D46AD46BD46CD46ED470D471D47200000000000000000000 -0000D473D474D475D476D477D47AD47BD47DD47ED481D483D484D485D486D487 -D48AD48CD48ED48FD490D491D492D493D495D496D497D498D499D49AD49BD49C -D49DC434C43CC43DC448C464C465C468C46CC474C475C479C480C494C49CC4B8 -C4BCC4E9C4F0C4F1C4F4C4F8C4FAC4FFC500C501C50CC510C514C51CC528C529 -C52CC530C538C539C53BC53DC544C545C548C549C54AC54CC54DC54EC553C554 -C555C557C558C559C55DC55EC560C561C564C568C570C571C573C574C575C57C -C57DC580C584C587C58CC58DC58FC591C595C597C598C59CC5A0C5A9C5B4C5B5 -C5B8C5B9C5BBC5BCC5BDC5BEC5C4C5C5C5C6C5C7C5C8C5C9C5CAC5CCC5CE0000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D49ED49FD4A0D4A1D4A2D4A3D4A4D4A5D4A6D4A7D4A8D4AAD4ABD4ACD4AD -D4AED4AFD4B0D4B1D4B2D4B3D4B4D4B5D4B6D4B7D4B800000000000000000000 -0000D4B9D4BAD4BBD4BCD4BDD4BED4BFD4C0D4C1D4C2D4C3D4C4D4C5D4C6D4C7 -D4C8D4C9D4CAD4CBD4CDD4CED4CFD4D1D4D2D4D3D4D500000000000000000000 -0000D4D6D4D7D4D8D4D9D4DAD4DBD4DDD4DED4E0D4E1D4E2D4E3D4E4D4E5D4E6 -D4E7D4E9D4EAD4EBD4EDD4EED4EFD4F1D4F2D4F3D4F4D4F5D4F6D4F7D4F9D4FA -D4FCC5D0C5D1C5D4C5D8C5E0C5E1C5E3C5E5C5ECC5EDC5EEC5F0C5F4C5F6C5F7 -C5FCC5FDC5FEC5FFC600C601C605C606C607C608C60CC610C618C619C61BC61C -C624C625C628C62CC62DC62EC630C633C634C635C637C639C63BC640C641C644 -C648C650C651C653C654C655C65CC65DC660C66CC66FC671C678C679C67CC680 -C688C689C68BC68DC694C695C698C69CC6A4C6A5C6A7C6A9C6B0C6B1C6B4C6B8 -C6B9C6BAC6C0C6C1C6C3C6C5C6CCC6CDC6D0C6D4C6DCC6DDC6E0C6E1C6E80000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D4FED4FFD500D501D502D503D505D506D507D509D50AD50BD50DD50ED50F -D510D511D512D513D516D518D519D51AD51BD51CD51D00000000000000000000 -0000D51ED51FD520D521D522D523D524D525D526D527D528D529D52AD52BD52C -D52DD52ED52FD530D531D532D533D534D535D536D53700000000000000000000 -0000D538D539D53AD53BD53ED53FD541D542D543D545D546D547D548D549D54A -D54BD54ED550D552D553D554D555D556D557D55AD55BD55DD55ED55FD561D562 -D563C6E9C6ECC6F0C6F8C6F9C6FDC704C705C708C70CC714C715C717C719C720 -C721C724C728C730C731C733C735C737C73CC73DC740C744C74AC74CC74DC74F -C751C752C753C754C755C756C757C758C75CC760C768C76BC774C775C778C77C -C77DC77EC783C784C785C787C788C789C78AC78EC790C791C794C796C797C798 -C79AC7A0C7A1C7A3C7A4C7A5C7A6C7ACC7ADC7B0C7B4C7BCC7BDC7BFC7C0C7C1 -C7C8C7C9C7CCC7CEC7D0C7D8C7DDC7E4C7E8C7ECC800C801C804C808C80A0000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D564D566D567D56AD56CD56ED56FD570D571D572D573D576D577D579D57A -D57BD57DD57ED57FD580D581D582D583D586D58AD58B00000000000000000000 -0000D58CD58DD58ED58FD591D592D593D594D595D596D597D598D599D59AD59B -D59CD59DD59ED59FD5A0D5A1D5A2D5A3D5A4D5A6D5A700000000000000000000 -0000D5A8D5A9D5AAD5ABD5ACD5ADD5AED5AFD5B0D5B1D5B2D5B3D5B4D5B5D5B6 -D5B7D5B8D5B9D5BAD5BBD5BCD5BDD5BED5BFD5C0D5C1D5C2D5C3D5C4D5C5D5C6 -D5C7C810C811C813C815C816C81CC81DC820C824C82CC82DC82FC831C838C83C -C840C848C849C84CC84DC854C870C871C874C878C87AC880C881C883C885C886 -C887C88BC88CC88DC894C89DC89FC8A1C8A8C8BCC8BDC8C4C8C8C8CCC8D4C8D5 -C8D7C8D9C8E0C8E1C8E4C8F5C8FCC8FDC900C904C905C906C90CC90DC90FC911 -C918C92CC934C950C951C954C958C960C961C963C96CC970C974C97CC988C989 -C98CC990C998C999C99BC99DC9C0C9C1C9C4C9C7C9C8C9CAC9D0C9D1C9D30000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D5CAD5CBD5CDD5CED5CFD5D1D5D3D5D4D5D5D5D6D5D7D5DAD5DCD5DED5DF -D5E0D5E1D5E2D5E3D5E6D5E7D5E9D5EAD5EBD5EDD5EE00000000000000000000 -0000D5EFD5F0D5F1D5F2D5F3D5F6D5F8D5FAD5FBD5FCD5FDD5FED5FFD602D603 -D605D606D607D609D60AD60BD60CD60DD60ED60FD61200000000000000000000 -0000D616D617D618D619D61AD61BD61DD61ED61FD621D622D623D625D626D627 -D628D629D62AD62BD62CD62ED62FD630D631D632D633D634D635D636D637D63A -D63BC9D5C9D6C9D9C9DAC9DCC9DDC9E0C9E2C9E4C9E7C9ECC9EDC9EFC9F0C9F1 -C9F8C9F9C9FCCA00CA08CA09CA0BCA0CCA0DCA14CA18CA29CA4CCA4DCA50CA54 -CA5CCA5DCA5FCA60CA61CA68CA7DCA84CA98CABCCABDCAC0CAC4CACCCACDCACF -CAD1CAD3CAD8CAD9CAE0CAECCAF4CB08CB10CB14CB18CB20CB21CB41CB48CB49 -CB4CCB50CB58CB59CB5DCB64CB78CB79CB9CCBB8CBD4CBE4CBE7CBE9CC0CCC0D -CC10CC14CC1CCC1DCC21CC22CC27CC28CC29CC2CCC2ECC30CC38CC39CC3B0000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D63DD63ED63FD641D642D643D644D646D647D64AD64CD64ED64FD650D652 -D653D656D657D659D65AD65BD65DD65ED65FD660D66100000000000000000000 -0000D662D663D664D665D666D668D66AD66BD66CD66DD66ED66FD672D673D675 -D676D677D678D679D67AD67BD67CD67DD67ED67FD68000000000000000000000 -0000D681D682D684D686D687D688D689D68AD68BD68ED68FD691D692D693D695 -D696D697D698D699D69AD69BD69CD69ED6A0D6A2D6A3D6A4D6A5D6A6D6A7D6A9 -D6AACC3CCC3DCC3ECC44CC45CC48CC4CCC54CC55CC57CC58CC59CC60CC64CC66 -CC68CC70CC75CC98CC99CC9CCCA0CCA8CCA9CCABCCACCCADCCB4CCB5CCB8CCBC -CCC4CCC5CCC7CCC9CCD0CCD4CCE4CCECCCF0CD01CD08CD09CD0CCD10CD18CD19 -CD1BCD1DCD24CD28CD2CCD39CD5CCD60CD64CD6CCD6DCD6FCD71CD78CD88CD94 -CD95CD98CD9CCDA4CDA5CDA7CDA9CDB0CDC4CDCCCDD0CDE8CDECCDF0CDF8CDF9 -CDFBCDFDCE04CE08CE0CCE14CE19CE20CE21CE24CE28CE30CE31CE33CE350000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D6ABD6ADD6AED6AFD6B1D6B2D6B3D6B4D6B5D6B6D6B7D6B8D6BAD6BCD6BD -D6BED6BFD6C0D6C1D6C2D6C3D6C6D6C7D6C9D6CAD6CB00000000000000000000 -0000D6CDD6CED6CFD6D0D6D2D6D3D6D5D6D6D6D8D6DAD6DBD6DCD6DDD6DED6DF -D6E1D6E2D6E3D6E5D6E6D6E7D6E9D6EAD6EBD6ECD6ED00000000000000000000 -0000D6EED6EFD6F1D6F2D6F3D6F4D6F6D6F7D6F8D6F9D6FAD6FBD6FED6FFD701 -D702D703D705D706D707D708D709D70AD70BD70CD70DD70ED70FD710D712D713 -D714CE58CE59CE5CCE5FCE60CE61CE68CE69CE6BCE6DCE74CE75CE78CE7CCE84 -CE85CE87CE89CE90CE91CE94CE98CEA0CEA1CEA3CEA4CEA5CEACCEADCEC1CEE4 -CEE5CEE8CEEBCEECCEF4CEF5CEF7CEF8CEF9CF00CF01CF04CF08CF10CF11CF13 -CF15CF1CCF20CF24CF2CCF2DCF2FCF30CF31CF38CF54CF55CF58CF5CCF64CF65 -CF67CF69CF70CF71CF74CF78CF80CF85CF8CCFA1CFA8CFB0CFC4CFE0CFE1CFE4 -CFE8CFF0CFF1CFF3CFF5CFFCD000D004D011D018D02DD034D035D038D03C0000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D715D716D717D71AD71BD71DD71ED71FD721D722D723D724D725D726D727 -D72AD72CD72ED72FD730D731D732D733D736D737D73900000000000000000000 -0000D73AD73BD73DD73ED73FD740D741D742D743D745D746D748D74AD74BD74C -D74DD74ED74FD752D753D755D75AD75BD75CD75DD75E00000000000000000000 -0000D75FD762D764D766D767D768D76AD76BD76DD76ED76FD771D772D773D775 -D776D777D778D779D77AD77BD77ED77FD780D782D783D784D785D786D787D78A -D78BD044D045D047D049D050D054D058D060D06CD06DD070D074D07CD07DD081 -D0A4D0A5D0A8D0ACD0B4D0B5D0B7D0B9D0C0D0C1D0C4D0C8D0C9D0D0D0D1D0D3 -D0D4D0D5D0DCD0DDD0E0D0E4D0ECD0EDD0EFD0F0D0F1D0F8D10DD130D131D134 -D138D13AD140D141D143D144D145D14CD14DD150D154D15CD15DD15FD161D168 -D16CD17CD184D188D1A0D1A1D1A4D1A8D1B0D1B1D1B3D1B5D1BAD1BCD1C0D1D8 -D1F4D1F8D207D209D210D22CD22DD230D234D23CD23DD23FD241D248D25C0000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D78DD78ED78FD791D792D793D794D795D796D797D79AD79CD79ED79FD7A0 -D7A1D7A2D7A30000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D264D280D281D284D288D290D291D295D29CD2A0D2A4D2ACD2B1D2B8D2B9 -D2BCD2BFD2C0D2C2D2C8D2C9D2CBD2D4D2D8D2DCD2E4D2E5D2F0D2F1D2F4D2F8 -D300D301D303D305D30CD30DD30ED310D314D316D31CD31DD31FD320D321D325 -D328D329D32CD330D338D339D33BD33CD33DD344D345D37CD37DD380D384D38C -D38DD38FD390D391D398D399D39CD3A0D3A8D3A9D3ABD3ADD3B4D3B8D3BCD3C4 -D3C5D3C8D3C9D3D0D3D8D3E1D3E3D3ECD3EDD3F0D3F4D3FCD3FDD3FFD4010000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D408D41DD440D444D45CD460D464D46DD46FD478D479D47CD47FD480D482 -D488D489D48BD48DD494D4A9D4CCD4D0D4D4D4DCD4DFD4E8D4ECD4F0D4F8D4FB -D4FDD504D508D50CD514D515D517D53CD53DD540D544D54CD54DD54FD551D558 -D559D55CD560D565D568D569D56BD56DD574D575D578D57CD584D585D587D588 -D589D590D5A5D5C8D5C9D5CCD5D0D5D2D5D8D5D9D5DBD5DDD5E4D5E5D5E8D5EC -D5F4D5F5D5F7D5F9D600D601D604D608D610D611D613D614D615D61CD6200000 -C8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D624D62DD638D639D63CD640D645D648D649D64BD64DD651D654D655D658 -D65CD667D669D670D671D674D683D685D68CD68DD690D694D69DD69FD6A1D6A8 -D6ACD6B0D6B9D6BBD6C4D6C5D6C8D6CCD6D1D6D4D6D7D6D9D6E0D6E4D6E8D6F0 -D6F5D6FCD6FDD700D704D711D718D719D71CD720D728D729D72BD72DD734D735 -D738D73CD744D747D749D750D751D754D756D757D758D759D760D761D763D765 -D769D76CD770D774D77CD77DD781D788D789D78CD790D798D799D79BD79D0000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F3D4F73504750F952A053EF547554E556095AC15BB6668767B667B767EF -6B4C73C275C27A3C82DB8304885788888A368CC88DCF8EFB8FE699D5523B5374 -5404606A61646BBC73CF811A89BA89D295A34F83520A58BE597859E65E725E79 -61C763C0674667EC687F6F97764E770B78F57A087AFF7C21809D826E82718AEB -95934E6B559D66F76E3478A37AED845B8910874E97A852D8574E582A5D4C611F -61BE6221656267D16A446E1B751875B376E377B07D3A90AF945194529F950000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053235CAC753280DB92409598525B580859DC5CA15D175EB75F3A5F4A6177 -6C5F757A75867CE07D737DB17F8C81548221859189418B1B92FC964D9C474ECB -4EF7500B51F1584F6137613E6168653969EA6F1175A5768676D67B8782A584CB -F90093A7958B55805BA25751F9017CB37FB991B5502853BB5C455DE862D2636E -64DA64E76E2070AC795B8DDD8E1EF902907D924592F84E7E4EF650655DFE5EFA -61066957817186548E4793759A2B4E5E5091677068405109528D52926AA20000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077BC92109ED452AB602F8FF2504861A963ED64CA683C6A846FC0818889A1 -96945805727D72AC75047D797E6D80A9898B8B7490639D5162896C7A6F547D50 -7F3A8A23517C614A7B9D8B199257938C4EAC4FD3501E50BE510652C152CD537F -577058835E9A5F91617661AC64CE656C666F66BB66F468976D87708570F1749F -74A574CA75D9786C78EC7ADF7AF67D457D938015803F811B83968B668F159015 -93E1980398389A5A9BE84FC25553583A59515B635C4660B86212684268B00000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068E86EAA754C767878CE7A3D7CFB7E6B7E7C8A088AA18C3F968E9DC453E4 -53E9544A547156FA59D15B645C3B5EAB62F765376545657266A067AF69C16CBD -75FC7690777E7A3F7F94800380A1818F82E682FD83F085C1883188B48AA5F903 -8F9C932E96C798679AD89F1354ED659B66F2688F7A408C379D6056F057645D11 -660668B168CD6EFE7428889E9BE46C68F9049AA84F9B516C5171529F5B545DE5 -6050606D62F163A7653B73D97A7A86A38CA2978F4E325BE16208679C74DC0000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079D183D38A878AB28DE8904E934B98465ED369E885FF90EDF90551A05B98 -5BEC616368FA6B3E704C742F74D87BA17F5083C589C08CAB95DC9928522E605D -62EC90024F8A5149532158D95EE366E06D38709A72C273D67B5080F1945B5366 -639B7F6B4E565080584A58DE602A612762D069D09B415B8F7D1880B18F5F4EA4 -50D154AC55AC5B0C5DA05DE7652A654E68216A4B72E1768E77EF7D5E7FF981A0 -854E86DF8F038F4E90CA99039A559BAB4E184E454E5D4EC74FF1517752FE0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000534053E353E5548E5614577557A25BC75D875ED061FC62D8655167B867E9 -69CB6B506BC66BEC6C426E9D707872D77396740377BF77E97A767D7F800981FC -8205820A82DF88628B338CFC8EC0901190B1926492B699D29A459CE99DD79F9C -570B5C4083CA97A097AB9EB4541B7A987FA488D98ECD90E158005C4863987A9F -5BAE5F137A797AAE828E8EAC5026523852F85377570862F363726B0A6DC37737 -53A5735785688E7695D5673A6AC36F708A6D8ECC994BF90666776B788CB40000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B3CF90753EB572D594E63C669FB73EA78457ABA7AC57CFE8475898F8D73 -903595A852FB574775477B6083CC921EF9086A58514B524B5287621F68D86975 -969950C552A452E461C365A4683969FF747E7B4B82B983EB89B28B398FD19949 -F9094ECA599764D266116A8E7434798179BD82A9887E887F895FF90A93264F0B -53CA602562716C727D1A7D664E98516277DC80AF4F014F0E5176518055DC5668 -573B57FA57FC5914594759935BC45C905D0E5DF15E7E5FCC628065D765E30000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000671E671F675E68CB68C46A5F6B3A6C236C7D6C826DC773987426742A7482 -74A37578757F788178EF794179477948797A7B957D007DBA7F888006802D808C -8A188B4F8C488D779321932498E299519A0E9A0F9A659E927DCA4F76540962EE -685491D155AB513AF90BF90C5A1C61E6F90D62CF62FFF90EF90FF910F911F912 -F91390A3F914F915F916F917F9188AFEF919F91AF91BF91C6696F91D7156F91E -F91F96E3F920634F637A5357F921678F69606E73F9227537F923F924F9250000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D0DF926F927887256CA5A18F928F929F92AF92BF92C4E43F92D51675948 -67F08010F92E59735E74649A79CA5FF5606C62C8637B5BE75BD752AAF92F5974 -5F296012F930F931F9327459F933F934F935F936F937F93899D1F939F93AF93B -F93CF93DF93EF93FF940F941F942F9436FC3F944F94581BF8FB260F1F946F947 -8166F948F9495C3FF94AF94BF94CF94DF94EF94FF950F9515AE98A25677B7D10 -F952F953F954F955F956F95780FDF958F9595C3C6CE5533F6EBA591A83360000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E394EB64F4655AE571858C75F5665B765E66A806BB56E4D77ED7AEF7C1E -7DDE86CB88929132935B64BB6FBE737A75B890545556574D61BA64D466C76DE1 -6E5B6F6D6FB975F0804381BD854189838AC78B5A931F6C9375537B548E0F905D -5510580258585E626207649E68E075767CD687B39EE84EE35788576E59275C0D -5CB15E365F85623464E173B381FA888B8CB8968A9EDB5B855FB760B350125200 -52305716583558575C0E5C605CF65D8B5EA65F9260BC63116389641768430000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068F96AC26DD86E216ED46FE471FE76DC777979B17A3B840489A98CED8DF3 -8E4890039014905390FD934D967697DC6BD27006725872A27368776379BF7BE4 -7E9B8B8058A960C7656665FD66BE6C8C711E71C98C5A98134E6D7A814EDD51AC -51CD52D5540C61A76771685068DF6D1E6F7C75BC77B37AE580F484639285515C -6597675C679375D87AC78373F95A8C469017982D5C6F81C0829A9041906F920D -5F975D9D6A5971C8767B7B4985E48B0491279A30558761F6F95B76697F850000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000863F87BA88F8908FF95C6D1B70D973DE7D61843DF95D916A99F1F95E4E82 -53756B046B12703E721B862D9E1E524C8FA35D5064E5652C6B166FEB7C437E9C -85CD896489BD62C981D8881F5ECA67176D6A72FC7405746F878290DE4F865D0D -5FA0840A51B763A075654EAE5006516951C968816A117CAE7CB17CE7826F8AD2 -8F1B91CF4FB6513752F554425EEC616E623E65C56ADA6FFE792A85DC882395AD -9A629A6A9E979ECE529B66C66B77701D792B8F6297426190620065236F230000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000714974897DF4806F84EE8F269023934A51BD521752A36D0C70C888C25EC9 -65826BAE6FC27C3E73754EE44F3656F9F95F5CBA5DBA601C73B27B2D7F9A7FCE -8046901E923496F6974898189F614F8B6FA779AE91B496B752DEF960648864C4 -6AD36F5E7018721076E780018606865C8DEF8F0597329B6F9DFA9E75788C797F -7DA083C993049E7F9E938AD658DF5F046727702774CF7C60807E512170287262 -78CA8CC28CDA8CF496F74E8650DA5BEE5ED6659971CE764277AD804A84FC0000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000907C9B279F8D58D85A415C626A136DDA6F0F763B7D2F7E37851E893893E4 -964B528965D267F369B46D416E9C700F7409746075597624786B8B2C985E516D -622E96784F96502B5D196DEA7DB88F2A5F8B61446817F961968652D2808B51DC -51CC695E7A1C7DBE83F196754FDA52295398540F550E5C6560A7674E68A86D6C -728172F874067483F96275E27C6C7F797FB8838988CF88E191CC91D096E29BC9 -541D6F7E71D0749885FA8EAA96A39C579E9F67976DCB743381E89716782C0000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007ACB7B207C926469746A75F278BC78E899AC9B549EBB5BDE5E556F20819C -83AB90884E07534D5A295DD25F4E6162633D666966FC6EFF6F2B7063779E842C -8513883B8F1399459C3B551C62B9672B6CAB8309896A977A4EA159845FD85FD9 -671B7DB27F548292832B83BD8F1E909957CB59B95A925BD06627679A68856BCF -71647F758CB78CE390819B4581088C8A964C9A409EA55B5F6C13731B76F276DF -840C51AA8993514D519552C968C96C94770477207DBF7DEC97629EB56EC50000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000851151A5540D547D660E669D69276E9F76BF7791831784C2879F91699298 -9CF488824FAE519252DF59C65E3D61556478647966AE67D06A216BCD6BDB725F -72617441773877DB801782BC83058B008B288C8C67286C90726776EE77667A46 -9DA96B7F6C92592267268499536F589359995EDF63CF663467736E3A732B7AD7 -82D7932852D95DEB61AE61CB620A62C764AB65E069596B666BCB712173F7755D -7E46821E8302856A8AA38CBF97279D6158A89ED85011520E543B554F65870000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C767D0A7D0B805E868A958096EF52FF6C95726954735A9A5C3E5D4B5F4C -5FAE672A68B669636E3C6E4477097C737F8E85878B0E8FF797619EF45CB760B6 -610D61AB654F65FB65FC6C116CEF739F73C97DE195945BC6871C8B10525D535A -62CD640F64B267346A386CCA73C0749E7B947C957E1B818A823685848FEB96F9 -99C14F34534A53CD53DB62CC642C6500659169C36CEE6F5873ED7554762276E4 -76FC78D078FB792C7D46822C87E08FD4981298EF52C362D464A56E246F510000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000767C8DCB91B192629AEE9B435023508D574A59A85C285E475F77623F653E -65B965C16609678B699C6EC278C57D2180AA8180822B82B384A1868C8A2A8B17 -90A696329F90500D4FF3F96357F95F9862DC6392676F6E43711976C380CC80DA -88F488F589198CE08F29914D966A4F2F4F705E1B67CF6822767D767E9B445E61 -6A0A716971D4756AF9647E41854385E998DC4F107B4F7F7095A551E15E0668B5 -6C3E6C4E6CDB72AF7BC483036CD5743A50FB528858C164D86A9774A776560000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078A7861795E29739F965535E5F018B8A8FA88FAF908A522577A59C499F08 -4E19500251755C5B5E77661E663A67C468C570B3750175C579C97ADD8F279920 -9A084FDD582158315BF6666E6B656D116E7A6F7D73E4752B83E988DC89138B5C -8F144F0F50D55310535C5B935FA9670D798F8179832F8514890789868F398F3B -99A59C12672C4E764FF859495C015CEF5CF0636768D270FD71A2742B7E2B84EC -8702902292D29CF34E0D4ED84FEF50855256526F5426549057E0592B5A660000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005B5A5B755BCC5E9CF9666276657765A76D6E6EA572367B267C3F7F368150 -8151819A8240829983A98A038CA08CE68CFB8D748DBA90E891DC961C964499D9 -9CE7531752065429567458B35954596E5FFF61A4626E66106C7E711A76C67C89 -7CDE7D1B82AC8CC196F0F9674F5B5F175F7F62C25D29670B68DA787C7E439D6C -4E1550995315532A535159835A625E8760B2618A624962796590678769A76BD4 -6BD66BD76BD86CB8F968743575FA7812789179D579D87C837DCB7FE180A50000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000813E81C283F2871A88E88AB98B6C8CBB9119975E98DB9F3B56AC5B2A5F6C -658C6AB36BAF6D5C6FF17015725D73AD8CA78CD3983B61916C3780589A014E4D -4E8B4E9B4ED54F3A4F3C4F7F4FDF50FF53F253F8550655E356DB58EB59625A11 -5BEB5BFA5C045DF35E2B5F99601D6368659C65AF67F667FB68AD6B7B6C996CD7 -6E23700973457802793E7940796079C17BE97D177D728086820D838E84D186C7 -88DF8A508A5E8B1D8CDC8D668FAD90AA98FC99DF9E9D524AF9696714F96A0000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005098522A5C7165636C5573CA7523759D7B97849C917897304E7764926BBA -715E85A94E09F96B674968EE6E17829F8518886B63F76F81921298AF4E0A50B7 -50CF511F554655AA56175B405C195CE05E385E8A5EA05EC260F368516A616E58 -723D724072C076F879657BB17FD488F389F48A738C618CDE971C585E74BD8CFD -55C7F96C7A617D2282727272751F7525F96D7B19588558FB5DBC5E8F5EB65F90 -60556292637F654D669166D966F8681668F27280745E7B6E7D6E7DD67F720000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000080E5821285AF897F8A93901D92E49ECD9F205915596D5E2D60DC66146673 -67906C506DC56F5F77F378A984C691CB932B4ED950CA514855845B0B5BA36247 -657E65CB6E32717D74017444748774BF766C79AA7DDA7E557FA8817A81B38239 -861A87EC8A758DE3907892919425994D9BAE53685C5169546CC46D296E2B820C -859B893B8A2D8AAA96EA9F67526166B96BB27E9687FE8D0D9583965D651D6D89 -71EEF96E57CE59D35BAC602760FA6210661F665F732973F976DB77017B6C0000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008056807281658AA091924E1652E26B726D177A057B397D30F96F8CB053EC -562F58515BB55C0F5C115DE2624063836414662D68B36CBC6D886EAF701F70A4 -71D27526758F758E76197B117BE07C2B7D207D39852C856D86078A34900D9061 -90B592B797F69A374FD75C6C675F6D917C9F7E8C8B168D16901F5B6B5DFD640D -84C0905C98E173875B8B609A677E6DDE8A1F8AA69001980C5237F9707051788E -9396887091D74FEE53D755FD56DA578258FD5AC25B885CAB5CC05E2561010000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000620D624B6388641C653665786A396B8A6C346D196F3171E772E973787407 -74B27626776179C07A577AEA7CB97D8F7DAC7E617F9E81298331849084DA85EA -88968AB08B908F3890429083916C929692B9968B96A796A896D6970098089996 -9AD39B1A53D4587E59195B705BBF6DD16F5A719F742174B9808583FD5DE15F87 -5FAA604265EC6812696F6A536B896D356DF373E376FE77AC7B4D7D148123821C -834084F485638A628AC49187931E980699B4620C88538FF092655D075D270000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005D69745F819D87686FD562FE7FD2893689724E1E4E5850E752DD5347627F -66077E698805965E4F8D5319563659CB5AA45C385C4E5C4D5E025F11604365BD -662F664267BE67F4731C77E2793A7FC5849484CD89968A668A698AE18C558C7A -57F45BD45F0F606F62ED690D6B966E5C71847BD287558B588EFE98DF98FE4F38 -4F814FE1547B5A205BB8613C65B0666871FC7533795E7D33814E81E3839885AA -85CE87038A0A8EAB8F9BF9718FC559315BA45BE660895BE95C0B5FC36C810000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9726DF1700B751A82AF8AF64EC05341F97396D96C0F4E9E4FC45152555E -5A255CE86211725982BD83AA86FE88598A1D963F96C599139D099D5D580A5CB3 -5DBD5E4460E1611563E16A026E2591029354984E9C109F775B895CB86309664F -6848773C96C1978D98549B9F65A18B018ECB95BC55355CA95DD65EB56697764C -83F495C758D362BC72CE9D284EF0592E600F663B6B8379E79D26539354C057C3 -5D16611B66D66DAF788D827E969897445384627C63966DB27E0A814B984D0000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006AFB7F4C9DAF9E1A4E5F503B51B6591C60F963F66930723A8036F97491CE -5F31F975F9767D0482E5846F84BB85E58E8DF9774F6FF978F97958E45B436059 -63DA6518656D6698F97A694A6A236D0B7001716C75D2760D79B37A70F97B7F8A -F97C8944F97D8B9391C0967DF97E990A57045FA165BC6F01760079A68A9E99AD -9B5A9F6C510461B662916A8D81C6504358305F6671098A008AFA5B7C86164FFA -513C56B4594463A96DF95DAA696D51864E884F59F97FF980F9815982F9820000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9836B5F6C5DF98474B57916F9858207824583398F3F8F5DF9869918F987 -F988F9894EA6F98A57DF5F796613F98BF98C75AB7E798B6FF98D90069A5B56A5 -582759F85A1F5BB4F98E5EF6F98FF9906350633BF991693D6C876CBF6D8E6D93 -6DF56F14F99270DF71367159F99371C371D5F994784F786FF9957B757DE3F996 -7E2FF997884D8EDFF998F999F99A925BF99B9CF6F99CF99DF99E60856D85F99F -71B1F9A0F9A195B153ADF9A2F9A3F9A467D3F9A5708E71307430827682D20000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9A695BB9AE59E7D66C4F9A771C18449F9A8F9A9584BF9AAF9AB5DB85F71 -F9AC6620668E697969AE6C386CF36E366F416FDA701B702F715071DF7370F9AD -745BF9AE74D476C87A4E7E93F9AFF9B082F18A608FCEF9B19348F9B29719F9B3 -F9B44E42502AF9B5520853E166F36C6D6FCA730A777F7A6282AE85DD8602F9B6 -88D48A638B7D8C6BF9B792B3F9B8971398104E944F0D4FC950B25348543E5433 -55DA586258BA59675A1B5BE4609FF9B961CA655665FF666468A76C5A6FB30000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000070CF71AC73527B7D87088AA49C329F075C4B6C8373447389923A6EAB7465 -761F7A697E15860A514058C564C174EE751576707FC1909596CD99546E2674E6 -7AA97AAA81E586D987788A1B5A495B8C5B9B68A169006D6373A97413742C7897 -7DE97FEB81188155839E8C4C962E981166F05F8065FA67896C6A738B502D5A03 -6B6A77EE59165D6C5DCD7325754FF9BAF9BB50E551F9582F592D599659DA5BE5 -F9BCF9BD5DA262D76416649364FEF9BE66DCF9BF6A48F9C071FF7464F9C10000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A887AAF7E477E5E80008170F9C287EF89818B209059F9C390809952617E -6B326D747E1F89258FB14FD150AD519752C757C758895BB95EB8614269956D8C -6E676EB6719474627528752C8073833884C98E0A939493DEF9C44E8E4F515076 -512A53C853CB53F35B875BD35C24611A618265F4725B7397744076C279507991 -79B97D067FBD828B85D5865E8FC2904790F591EA968596E896E952D65F6765ED -6631682F715C7A3690C1980A4E91F9C56A526B9E6F907189801882B885530000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000904B969596F297FB851A9B314E90718A96C45143539F54E15713571257A3 -5A9B5AC45BC36028613F63F46C856D396E726E907230733F745782D188818F45 -9060F9C6966298589D1B67088D8A925E4F4D504950DE5371570D59D45A015C09 -617066906E2D7232744B7DEF80C3840E8466853F875F885B89188B02905597CB -9B4F4E734F915112516AF9C7552F55A95B7A5BA55E7C5E7D5EBE60A060DF6108 -610963C465386709F9C867D467DAF9C9696169626CB96D27F9CA6E38F9CB0000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FE173367337F9CC745C7531F9CD7652F9CEF9CF7DAD81FE843888D58A98 -8ADB8AED8E308E42904A903E907A914991C9936EF9D0F9D15809F9D26BD38089 -80B2F9D3F9D45141596B5C39F9D5F9D66F6473A780E48D07F9D79217958FF9D8 -F9D9F9DAF9DB807F620E701C7D68878DF9DC57A0606961476BB78ABE928096B1 -4E59541F6DEB852D967097F398EE63D66CE3909151DD61C981BA9DF94F9D501A -51005B9C610F61FF64EC69056BC5759177E37FA98264858F87FB88638ABC0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B7091AB4E8C4EE54F0AF9DDF9DE593759E8F9DF5DF25F1B5F5B6021F9E0 -F9E1F9E2F9E3723E73E5F9E4757075CDF9E579FBF9E6800C8033808482E18351 -F9E7F9E88CBD8CB39087F9E9F9EA98F4990CF9EBF9EC703776CA7FCA7FCC7FFC -8B1A4EBA4EC152035370F9ED54BD56E059FB5BC55F155FCD6E6EF9EEF9EF7D6A -8335F9F086938A8DF9F1976D9777F9F2F9F34E004F5A4F7E58F965E56EA29038 -93B099B94EFB58EC598A59D96041F9F4F9F57A14F9F6834F8CC3516553440000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9F7F9F8F9F94ECD52695B5582BF4ED4523A54A859C959FF5B505B575B5C -606361486ECB7099716E738674F775B578C17D2B800581EA8328851785C98AEE -8CC796CC4F5C52FA56BC65AB6628707C70B872357DBD828D914C96C09D725B71 -68E76B986F7A76DE5C9166AB6F5B7BB47C2A883696DC4E084ED75320583458BB -58EF596C5C075E335E845F35638C66B267566A1F6AA36B0C6F3F7246F9FA7350 -748B7AE07CA7817881DF81E7838A846C8523859485CF88DD8D1391AC95770000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000969C518D54C957285BB0624D6750683D68936E3D6ED3707D7E2188C18CA1 -8F099F4B9F4E722D7B8F8ACD931A4F474F4E5132548059D05E9562B56775696E -6A176CAE6E1A72D9732A75BD7BB87D3582E783F9845785F78A5B8CAF8E879019 -90B896CE9F5F52E3540A5AE15BC2645865756EF472C4F9FB76847A4D7B1B7C4D -7E3E7FDF837B8B2B8CCA8D648DE18E5F8FEA8FF9906993D14F434F7A50B35168 -5178524D526A5861587C59605C085C555EDB609B623068136BBF6C086FB10000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000714E742075307538755176727B4C7B8B7BAD7BC67E8F8A6E8F3E8F49923F -92939322942B96FB985A986B991E5207622A62986D5976647ACA7BC07D765360 -5CBE5E976F3870B97C9897119B8E9EDE63A5647A87764E014E954EAD505C5075 -544859C35B9A5E405EAD5EF75F8160C5633A653F657465CC6676667867FE6968 -6A896B636C406DC06DE86E1F6E5E701E70A1738E73FD753A775B7887798E7A0B -7A7D7CBE7D8E82478A028AEA8C9E912D914A91D8926692CC9320970697560000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000975C98029F0E52365291557C58245E1D5F1F608C63D068AF6FDF796D7B2C -81CD85BA88FD8AF88E44918D9664969B973D984C9F4A4FCE514651CB52A95632 -5F145F6B63AA64CD65E9664166FA66F9671D689D68D769FD6F156F6E716771E5 -722A74AA773A7956795A79DF7A207A957C977CDF7D447E70808785FB86A48A54 -8ABF8D998E819020906D91E3963B96D59CE565CF7C078DB393C35B585C0A5352 -62D9731D50275B975F9E60B0616B68D56DD9742E7A2E7D427D9C7E31816B0000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008E2A8E35937E94184F5057505DE65EA7632B7F6A4E3B4F4F4F8F505A59DD -80C4546A546855FE594F5B995DDE5EDA665D673167F1682A6CE86D326E4A6F8D -70B773E075877C4C7D027D2C7DA2821F86DB8A3B8A858D708E8A8F339031914E -9152944499D07AF97CA54FCA510151C657C85BEF5CFB66596A3D6D5A6E966FEC -710C756F7AE388229021907596CB99FF83014E2D4EF2884691CD537D6ADB696B -6C41847A589E618E66FE62EF70DD751175C77E5284B88B498D084E4B53EA0000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054AB573057405FD763016307646F652F65E8667A679D67B36B626C606C9A -6F2C77E57825794979577D1980A2810281F3829D82B787188A8CF9FC8D048DBE -907276F47A197A377E548077550755D45875632F64226649664B686D699B6B84 -6D256EB173CD746874A1755B75B976E1771E778B79E67E097E1D81FB852F8897 -8A3A8CD18EEB8FB0903293AD9663967397074F8453F159EA5AC95E19684E74C6 -75BE79E97A9281A386ED8CEA8DCC8FED659F6715F9FD57F76F577DDD8F2F0000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093F696C65FB561F26F844E144F98501F53C955DF5D6F5DEE6B216B6478CB -7B9AF9FE8E498ECA906E6349643E77407A84932F947F9F6A64B06FAF71E674A8 -74DA7AC47C127E827CB27E988B9A8D0A947D9910994C52395BDF64E6672D7D2E -50ED53C358796158615961FA65AC7AD98B928B9650095021527555315A3C5EE0 -5F706134655E660C663666A269CD6EC46F32731676217A938139825983D684BC -50B557F05BC05BE85F6963A178267DB583DC852191C791F5518A67F57B560000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008CAC51C459BB60BD8655501CF9FF52545C3A617D621A62D364F265A56ECC -7620810A8E60965F96BB4EDF5343559859295DDD64C56CC96DFA73947A7F821B -85A68CE48E10907791E795E1962197C651F854F255865FB964A46F887DB48F1F -8F4D943550C95C166CBE6DFB751B77BB7C3D7C648A798AC2581E59BE5E166377 -7252758A776B8ADC8CBC8F125EF366746DF8807D83C18ACB97519BD6FA005243 -66FF6D956EEF7DE08AE6902E905E9AD4521D527F54E86194628462DB68A20000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006912695A6A3570927126785D7901790E79D27A0D8096827882D583498549 -8C828D859162918B91AE4FC356D171ED77D7870089F85BF85FD6675190A853E2 -585A5BF560A4618164607E3D80708525928364AE50AC5D146700589C62BD63A8 -690E69786A1E6E6B76BA79CB82BB84298ACF8DA88FFD9112914B919C93109318 -939A96DB9A369C0D4E11755C795D7AFA7B517BC97E2E84C48E598E748EF89010 -6625693F744351FA672E9EDC51455FE06C9687F2885D887760B481B584030000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008D0553D6543956345A365C31708A7FE0805A810681ED8DA391899A5F9DF2 -50744EC453A060FB6E2C5C644F88502455E45CD95E5F606568946CBB6DC471BE -75D475F476617A1A7A497DC77DFB7F6E81F486A98F1C96C999B39F52524752C5 -98ED89AA4E0367D26F064FB55BE267956C886D78741B782791DD937C87C479E4 -7A315FEB4ED654A4553E58AE59A560F0625362D6673669558235964099B199DD -502C53535544577CFA016258FA0264E2666B67DD6FC16FEF742274388A170000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094385451560657665F48619A6B4E705870AD7DBB8A95596A812B63A27708 -803D8CAA5854642D69BB5B955E116E6FFA038569514C53F0592A6020614B6B86 -6C706CF07B1E80CE82D48DC690B098B1FA0464C76FA464916504514E5410571F -8A0E615F6876FA0575DB7B527D71901A580669CC817F892A9000983950785957 -59AC6295900F9B2A615D727995D657615A465DF4628A64AD64FA67776CE26D3E -722C743678347F7782AD8DDB981752245742677F724874E38CA98FA692110000 -F8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000962A516B53ED634C4F695504609665576C9B6D7F724C72FD7A1789878C9D -5F6D6F8E70F981A8610E4FBF504F624172477BC77DE87FE9904D97AD9A198CB6 -576A5E7367B0840D8A5554205B165E635EE25F0A658380BA853D9589965B4F48 -5305530D530F548654FA57035E036016629B62B16355FA066CE16D6675B17832 -80DE812F82DE846184B2888D8912900B92EA98FD9B915E4566B466DD70117206 -FA074FF5527D5F6A615367536A196F0274E2796888688C7998C798C49A430000 -F9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054C17A1F69538AF78C4A98A899AE5F7C62AB75B276AE88AB907F96425339 -5F3C5FC56CCC73CC7562758B7B4682FE999D4E4F903C4E0B4F5553A6590F5EC8 -66306CB37455837787668CC09050971E9C1558D15B7886508B149DB45BD26068 -608D65F16C576F226FA3701A7F557FF095919592965097D352728F4451FD542B -54B85563558A6ABB6DB57DD88266929C96779E79540854C876D286E495A495D4 -965C4EA24F0959EE5AE65DF760526297676D68416C866E2F7F38809B822A0000 -FA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FA08FA0998054EA5505554B35793595A5B695BB361C869776D77702387F9 -89E38A728AE7908299ED9AB852BE683850165E78674F8347884C4EAB541156AE -73E6911597FF9909995799995653589F865B8A3161B26AF6737B8ED26B4796AA -9A57595572008D6B97694FD45CF45F2661F8665B6CEB70AB738473B973FE7729 -774D7D437D627E2382378852FA0A8CE29249986F5B517A74884098015ACC4FE0 -5354593E5CFD633E6D7972F98105810783A292CF98304EA851445211578B0000 -FB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F626CC26ECE7005705070AF719273E97469834A87A28861900890A293A3 -99A8516E5F5760E0616766B385598E4A91AF978B4E4E4E92547C58D558FA597D -5CB55F2762366248660A66676BEB6D696DCF6E566EF86F946FE06FE9705D72D0 -7425745A74E07693795C7CCA7E1E80E182A6846B84BF864E865F87748B778C6A -93AC9800986560D1621691775A5A660F6DF76E3E743F9B425FFD60DA7B0F54C4 -5F186C5E6CD36D2A70D87D0586798A0C9D3B5316548C5B056A3A706B75750000 -FC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000798D79BE82B183EF8A718B418CA89774FA0B64F4652B78BA78BB7A6B4E38 -559A59505BA65E7B60A363DB6B61666568536E19716574B07D0890849A699C25 -6D3B6ED1733E8C4195CA51F05E4C5FA8604D60F66130614C6643664469A56CC1 -6E5F6EC96F62714C749C76877BC17C27835287579051968D9EC3532F56DE5EFB -5F8A6062609461F7666667036A9C6DEE6FAE7070736A7E6A81BE833486D48AA8 -8CC4528373725B966A6B940454EE56865B5D6548658566C9689F6D8D6DC60000 -FD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000723B80B491759A4D4FAF5019539A540E543C558955C55E3F5F8C673D7166 -73DD900552DB52F3586458CE7104718F71FB85B08A13668885A855A76684714A -8431534955996BC15F595FBD63EE668971478AF18F1D9EBE4F11643A70CB7566 -866760648B4E9DF8514751F653086D3680F89ED166156B23709875D554035C79 -7D078A166B206B3D6B46543860706D3D7FD5820850D651DE559C566B56CD59EC -5B095E0C619961986231665E66E6719971B971BA72A779A77A007FB28A700000 diff --git a/src/runtime/tcl_library/encoding/cp950.enc b/src/runtime/tcl_library/encoding/cp950.enc deleted file mode 100644 index f582bd99..00000000 --- a/src/runtime/tcl_library/encoding/cp950.enc +++ /dev/null @@ -1,1499 +0,0 @@ -# Encoding file: cp950, multi-byte -M -003F 0 88 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3000FF0C30013002FF0E2027FF1BFF1AFF1FFF01FE3020262025FE50FE51FE52 -00B7FE54FE55FE56FE57FF5C2013FE312014FE332574FE34FE4FFF08FF09FE35 -FE36FF5BFF5DFE37FE3830143015FE39FE3A30103011FE3BFE3C300A300BFE3D -FE3E30083009FE3FFE40300C300DFE41FE42300E300FFE43FE44FE59FE5A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FE5BFE5CFE5DFE5E20182019201C201D301D301E20352032FF03FF06FF0A -203B00A7300325CB25CF25B325B225CE2606260525C725C625A125A025BD25BC -32A3210500AFFFE3FF3F02CDFE49FE4AFE4DFE4EFE4BFE4CFE5FFE60FE61FF0B -FF0D00D700F700B1221AFF1CFF1EFF1D226622672260221E22522261FE62FE63 -FE64FE65FE66FF5E2229222A22A52220221F22BF33D233D1222B222E22352234 -26402642229522992191219321902192219621972199219822252223FF0F0000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FF3C2215FE68FF04FFE53012FFE0FFE1FF05FF2021032109FE69FE6AFE6B33D5 -339C339D339E33CE33A1338E338F33C400B05159515B515E515D5161516355E7 -74E97CCE25812582258325842585258625872588258F258E258D258C258B258A -2589253C2534252C2524251C2594250025022595250C251025142518256D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000256E2570256F2550255E256A256125E225E325E525E4257125722573FF10 -FF11FF12FF13FF14FF15FF16FF17FF18FF192160216121622163216421652166 -216721682169302130223023302430253026302730283029534153445345FF21 -FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2FFF30FF31 -FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF41FF42FF43FF44FF45FF46FF47 -FF48FF49FF4AFF4BFF4CFF4DFF4EFF4FFF50FF51FF52FF53FF54FF55FF560000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FF57FF58FF59FF5A039103920393039403950396039703980399039A039B039C -039D039E039F03A003A103A303A403A503A603A703A803A903B103B203B303B4 -03B503B603B703B803B903BA03BB03BC03BD03BE03BF03C003C103C303C403C5 -03C603C703C803C931053106310731083109310A310B310C310D310E310F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00003110311131123113311431153116311731183119311A311B311C311D311E -311F312031213122312331243125312631273128312902D902C902CA02C702CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000020AC00000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E004E594E014E034E434E5D4E864E8C4EBA513F5165516B51E052005201529B -53155341535C53C84E094E0B4E084E0A4E2B4E3851E14E454E484E5F4E5E4E8E -4EA15140520352FA534353C953E3571F58EB5915592759735B505B515B535BF8 -5C0F5C225C385C715DDD5DE55DF15DF25DF35DFE5E725EFE5F0B5F13624D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E114E104E0D4E2D4E304E394E4B5C394E884E914E954E924E944EA24EC1 -4EC04EC34EC64EC74ECD4ECA4ECB4EC4514351415167516D516E516C519751F6 -52065207520852FB52FE52FF53165339534853475345535E538453CB53CA53CD -58EC5929592B592A592D5B545C115C245C3A5C6F5DF45E7B5EFF5F145F155FC3 -62086236624B624E652F6587659765A465B965E566F0670867286B206B626B79 -6BCB6BD46BDB6C0F6C34706B722A7236723B72477259725B72AC738B4E190000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E164E154E144E184E3B4E4D4E4F4E4E4EE54ED84ED44ED54ED64ED74EE34EE4 -4ED94EDE514551445189518A51AC51F951FA51F8520A52A0529F530553065317 -531D4EDF534A534953615360536F536E53BB53EF53E453F353EC53EE53E953E8 -53FC53F853F553EB53E653EA53F253F153F053E553ED53FB56DB56DA59160000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000592E5931597459765B555B835C3C5DE85DE75DE65E025E035E735E7C5F01 -5F185F175FC5620A625362546252625165A565E6672E672C672A672B672D6B63 -6BCD6C116C106C386C416C406C3E72AF7384738974DC74E67518751F75287529 -7530753175327533758B767D76AE76BF76EE77DB77E277F3793A79BE7A747ACB -4E1E4E1F4E524E534E694E994EA44EA64EA54EFF4F094F194F0A4F154F0D4F10 -4F114F0F4EF24EF64EFB4EF04EF34EFD4F014F0B514951475146514851680000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5171518D51B0521752115212520E521652A3530853215320537053715409540F -540C540A54105401540B54045411540D54085403540E5406541256E056DE56DD -573357305728572D572C572F57295919591A59375938598459785983597D5979 -598259815B575B585B875B885B855B895BFA5C165C795DDE5E065E765E740000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F0F5F1B5FD95FD6620E620C620D62106263625B6258653665E965E865EC -65ED66F266F36709673D6734673167356B216B646B7B6C166C5D6C576C596C5F -6C606C506C556C616C5B6C4D6C4E7070725F725D767E7AF97C737CF87F367F8A -7FBD80018003800C80128033807F8089808B808C81E381EA81F381FC820C821B -821F826E8272827E866B8840884C8863897F96214E324EA84F4D4F4F4F474F57 -4F5E4F344F5B4F554F304F504F514F3D4F3A4F384F434F544F3C4F464F630000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F5C4F604F2F4F4E4F364F594F5D4F484F5A514C514B514D517551B651B75225 -52245229522A522852AB52A952AA52AC532353735375541D542D541E543E5426 -544E542754465443543354485442541B5429544A5439543B5438542E54355436 -5420543C54405431542B541F542C56EA56F056E456EB574A57515740574D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005747574E573E5750574F573B58EF593E599D599259A8599E59A359995996 -598D59A45993598A59A55B5D5B5C5B5A5B5B5B8C5B8B5B8F5C2C5C405C415C3F -5C3E5C905C915C945C8C5DEB5E0C5E8F5E875E8A5EF75F045F1F5F645F625F77 -5F795FD85FCC5FD75FCD5FF15FEB5FF85FEA6212621162846297629662806276 -6289626D628A627C627E627962736292626F6298626E62956293629162866539 -653B653865F166F4675F674E674F67506751675C6756675E6749674667600000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -675367576B656BCF6C426C5E6C996C816C886C896C856C9B6C6A6C7A6C906C70 -6C8C6C686C966C926C7D6C836C726C7E6C746C866C766C8D6C946C986C827076 -707C707D707872627261726072C472C27396752C752B75377538768276EF77E3 -79C179C079BF7A767CFB7F5580968093809D8098809B809A80B2826F82920000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000828B828D898B89D28A008C378C468C558C9D8D648D708DB38EAB8ECA8F9B -8FB08FC28FC68FC58FC45DE1909190A290AA90A690A3914991C691CC9632962E -9631962A962C4E264E564E734E8B4E9B4E9E4EAB4EAC4F6F4F9D4F8D4F734F7F -4F6C4F9B4F8B4F864F834F704F754F884F694F7B4F964F7E4F8F4F914F7A5154 -51525155516951775176517851BD51FD523B52385237523A5230522E52365241 -52BE52BB5352535453535351536653775378537953D653D453D7547354750000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5496547854955480547B5477548454925486547C549054715476548C549A5462 -5468548B547D548E56FA57835777576A5769576157665764577C591C59495947 -59485944595459BE59BB59D459B959AE59D159C659D059CD59CB59D359CA59AF -59B359D259C55B5F5B645B635B975B9A5B985B9C5B995B9B5C1A5C485C450000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C465CB75CA15CB85CA95CAB5CB15CB35E185E1A5E165E155E1B5E115E78 -5E9A5E975E9C5E955E965EF65F265F275F295F805F815F7F5F7C5FDD5FE05FFD -5FF55FFF600F6014602F60356016602A6015602160276029602B601B62166215 -623F623E6240627F62C962CC62C462BF62C262B962D262DB62AB62D362D462CB -62C862A862BD62BC62D062D962C762CD62B562DA62B162D862D662D762C662AC -62CE653E65A765BC65FA66146613660C66066602660E6600660F6615660A0000 -AA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6607670D670B676D678B67956771679C677367776787679D6797676F6770677F -6789677E67906775679A6793677C676A67726B236B666B676B7F6C136C1B6CE3 -6CE86CF36CB16CCC6CE56CB36CBD6CBE6CBC6CE26CAB6CD56CD36CB86CC46CB9 -6CC16CAE6CD76CC56CF16CBF6CBB6CE16CDB6CCA6CAC6CEF6CDC6CD66CE00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007095708E7092708A7099722C722D723872487267726972C072CE72D972D7 -72D073A973A8739F73AB73A5753D759D7599759A768476C276F276F477E577FD -793E7940794179C979C87A7A7A797AFA7CFE7F547F8C7F8B800580BA80A580A2 -80B180A180AB80A980B480AA80AF81E581FE820D82B3829D829982AD82BD829F -82B982B182AC82A582AF82B882A382B082BE82B7864E8671521D88688ECB8FCE -8FD48FD190B590B890B190B691C791D195779580961C9640963F963B96440000 -AB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -964296B996E89752975E4E9F4EAD4EAE4FE14FB54FAF4FBF4FE04FD14FCF4FDD -4FC34FB64FD84FDF4FCA4FD74FAE4FD04FC44FC24FDA4FCE4FDE4FB751575192 -519151A0524E5243524A524D524C524B524752C752C952C352C1530D5357537B -539A53DB54AC54C054A854CE54C954B854A654B354C754C254BD54AA54C10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054C454C854AF54AB54B154BB54A954A754BF56FF5782578B57A057A357A2 -57CE57AE579359555951594F594E595059DC59D859FF59E359E85A0359E559EA -59DA59E65A0159FB5B695BA35BA65BA45BA25BA55C015C4E5C4F5C4D5C4B5CD9 -5CD25DF75E1D5E255E1F5E7D5EA05EA65EFA5F085F2D5F655F885F855F8A5F8B -5F875F8C5F896012601D60206025600E6028604D60706068606260466043606C -606B606A6064624162DC6316630962FC62ED630162EE62FD630762F162F70000 -AC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62EF62EC62FE62F463116302653F654565AB65BD65E26625662D66206627662F -661F66286631662466F767FF67D367F167D467D067EC67B667AF67F567E967EF -67C467D167B467DA67E567B867CF67DE67F367B067D967E267DD67D26B6A6B83 -6B866BB56BD26BD76C1F6CC96D0B6D326D2A6D416D256D0C6D316D1E6D170000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D3B6D3D6D3E6D366D1B6CF56D396D276D386D296D2E6D356D0E6D2B70AB -70BA70B370AC70AF70AD70B870AE70A472307272726F727472E972E072E173B7 -73CA73BB73B273CD73C073B3751A752D754F754C754E754B75AB75A475A575A2 -75A3767876867687768876C876C676C376C5770176F976F87709770B76FE76FC -770777DC78027814780C780D794679497948794779B979BA79D179D279CB7A7F -7A817AFF7AFD7C7D7D027D057D007D097D077D047D067F387F8E7FBF80040000 -AD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8010800D8011803680D680E580DA80C380C480CC80E180DB80CE80DE80E480DD -81F4822282E78303830582E382DB82E6830482E58302830982D282D782F18301 -82DC82D482D182DE82D382DF82EF830686508679867B867A884D886B898189D4 -8A088A028A038C9E8CA08D748D738DB48ECD8ECC8FF08FE68FE28FEA8FE50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008FED8FEB8FE48FE890CA90CE90C190C3914B914A91CD95829650964B964C -964D9762976997CB97ED97F3980198A898DB98DF999699994E584EB3500C500D -50234FEF502650254FF8502950165006503C501F501A501250114FFA50005014 -50284FF15021500B501950184FF34FEE502D502A4FFE502B5009517C51A451A5 -51A251CD51CC51C651CB5256525C5254525B525D532A537F539F539D53DF54E8 -55105501553754FC54E554F2550654FA551454E954ED54E1550954EE54EA0000 -AE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54E65527550754FD550F5703570457C257D457CB57C35809590F59575958595A -5A115A185A1C5A1F5A1B5A1359EC5A205A235A295A255A0C5A095B6B5C585BB0 -5BB35BB65BB45BAE5BB55BB95BB85C045C515C555C505CED5CFD5CFB5CEA5CE8 -5CF05CF65D015CF45DEE5E2D5E2B5EAB5EAD5EA75F315F925F915F9060590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006063606560506055606D6069606F6084609F609A608D6094608C60856096 -624762F3630862FF634E633E632F635563426346634F6349633A6350633D632A -632B6328634D634C65486549659965C165C566426649664F66436652664C6645 -664166F867146715671768216838684868466853683968426854682968B36817 -684C6851683D67F468506840683C6843682A68456813681868416B8A6B896BB7 -6C236C276C286C266C246CF06D6A6D956D886D876D666D786D776D596D930000 -AF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D6C6D896D6E6D5A6D746D696D8C6D8A6D796D856D656D9470CA70D870E470D9 -70C870CF7239727972FC72F972FD72F872F7738673ED740973EE73E073EA73DE -7554755D755C755A755975BE75C575C775B275B375BD75BC75B975C275B8768B -76B076CA76CD76CE7729771F7720772877E9783078277838781D783478370000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007825782D7820781F7832795579507960795F7956795E795D7957795A79E4 -79E379E779DF79E679E979D87A847A887AD97B067B117C897D217D177D0B7D0A -7D207D227D147D107D157D1A7D1C7D0D7D197D1B7F3A7F5F7F947FC57FC18006 -8018801580198017803D803F80F1810280F0810580ED80F4810680F880F38108 -80FD810A80FC80EF81ED81EC82008210822A822B8228822C82BB832B83528354 -834A83388350834983358334834F833283398336831783408331832883430000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8654868A86AA869386A486A9868C86A3869C8870887788818882887D88798A18 -8A108A0E8A0C8A158A0A8A178A138A168A0F8A118C488C7A8C798CA18CA28D77 -8EAC8ED28ED48ECF8FB1900190068FF790008FFA8FF490038FFD90058FF89095 -90E190DD90E29152914D914C91D891DD91D791DC91D995839662966396610000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000965B965D96649658965E96BB98E299AC9AA89AD89B259B329B3C4E7E507A -507D505C50475043504C505A504950655076504E5055507550745077504F500F -506F506D515C519551F0526A526F52D252D952D852D55310530F5319533F5340 -533E53C366FC5546556A55665544555E55615543554A55315556554F5555552F -55645538552E555C552C55635533554155575708570B570957DF5805580A5806 -57E057E457FA5802583557F757F9592059625A365A415A495A665A6A5A400000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A3C5A625A5A5A465A4A5B705BC75BC55BC45BC25BBF5BC65C095C085C075C60 -5C5C5C5D5D075D065D0E5D1B5D165D225D115D295D145D195D245D275D175DE2 -5E385E365E335E375EB75EB85EB65EB55EBE5F355F375F575F6C5F695F6B5F97 -5F995F9E5F985FA15FA05F9C607F60A3608960A060A860CB60B460E660BD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060C560BB60B560DC60BC60D860D560C660DF60B860DA60C7621A621B6248 -63A063A76372639663A263A563776367639863AA637163A963896383639B636B -63A863846388639963A163AC6392638F6380637B63696368637A655D65566551 -65596557555F654F655865556554659C659B65AC65CF65CB65CC65CE665D665A -666466686666665E66F952D7671B688168AF68A2689368B5687F687668B168A7 -689768B0688368C468AD688668856894689D68A8689F68A168826B326BBA0000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6BEB6BEC6C2B6D8E6DBC6DF36DD96DB26DE16DCC6DE46DFB6DFA6E056DC76DCB -6DAF6DD16DAE6DDE6DF96DB86DF76DF56DC56DD26E1A6DB56DDA6DEB6DD86DEA -6DF16DEE6DE86DC66DC46DAA6DEC6DBF6DE670F97109710A70FD70EF723D727D -7281731C731B73167313731973877405740A7403740673FE740D74E074F60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000074F7751C75227565756675627570758F75D475D575B575CA75CD768E76D4 -76D276DB7737773E773C77367738773A786B7843784E79657968796D79FB7A92 -7A957B207B287B1B7B2C7B267B197B1E7B2E7C927C977C957D467D437D717D2E -7D397D3C7D407D307D337D447D2F7D427D327D317F3D7F9E7F9A7FCC7FCE7FD2 -801C804A8046812F81168123812B81298130812482028235823782368239838E -839E8398837883A2839683BD83AB8392838A8393838983A08377837B837C0000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -838683A786555F6A86C786C086B686C486B586C686CB86B186AF86C98853889E -888888AB88928896888D888B8993898F8A2A8A1D8A238A258A318A2D8A1F8A1B -8A228C498C5A8CA98CAC8CAB8CA88CAA8CA78D678D668DBE8DBA8EDB8EDF9019 -900D901A90179023901F901D90109015901E9020900F90229016901B90140000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090E890ED90FD915791CE91F591E691E391E791ED91E99589966A96759673 -96789670967496769677966C96C096EA96E97AE07ADF980298039B5A9CE59E75 -9E7F9EA59EBB50A2508D508550995091508050965098509A670051F152725274 -5275526952DE52DD52DB535A53A5557B558055A7557C558A559D55985582559C -55AA55945587558B558355B355AE559F553E55B2559A55BB55AC55B1557E5589 -55AB5599570D582F582A58345824583058315821581D582058F958FA59600000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A775A9A5A7F5A925A9B5AA75B735B715BD25BCC5BD35BD05C0A5C0B5C315D4C -5D505D345D475DFD5E455E3D5E405E435E7E5ECA5EC15EC25EC45F3C5F6D5FA9 -5FAA5FA860D160E160B260B660E0611C612360FA611560F060FB60F4616860F1 -610E60F6610961006112621F624963A3638C63CF63C063E963C963C663CD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000063D263E363D063E163D663ED63EE637663F463EA63DB645263DA63F9655E -6566656265636591659065AF666E667066746676666F6691667A667E667766FE -66FF671F671D68FA68D568E068D868D7690568DF68F568EE68E768F968D268F2 -68E368CB68CD690D6912690E68C968DA696E68FB6B3E6B3A6B3D6B986B966BBC -6BEF6C2E6C2F6C2C6E2F6E386E546E216E326E676E4A6E206E256E236E1B6E5B -6E586E246E566E6E6E2D6E266E6F6E346E4D6E3A6E2C6E436E1D6E3E6ECB0000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E896E196E4E6E636E446E726E696E5F7119711A7126713071217136716E711C -724C728472807336732573347329743A742A743374227425743574367434742F -741B7426742875257526756B756A75E275DB75E375D975D875DE75E0767B767C -7696769376B476DC774F77ED785D786C786F7A0D7A087A0B7A057A007A980000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A977A967AE57AE37B497B567B467B507B527B547B4D7B4B7B4F7B517C9F -7CA57D5E7D507D687D557D2B7D6E7D727D617D667D627D707D7355847FD47FD5 -800B8052808581558154814B8151814E81398146813E814C815381748212821C -83E9840383F8840D83E083C5840B83C183EF83F183F48457840A83F0840C83CC -83FD83F283CA8438840E840483DC840783D483DF865B86DF86D986ED86D486DB -86E486D086DE885788C188C288B1898389968A3B8A608A558A5E8A3C8A410000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8A548A5B8A508A468A348A3A8A368A568C618C828CAF8CBC8CB38CBD8CC18CBB -8CC08CB48CB78CB68CBF8CB88D8A8D858D818DCE8DDD8DCB8DDA8DD18DCC8DDB -8DC68EFB8EF88EFC8F9C902E90359031903890329036910290F5910990FE9163 -916591CF9214921592239209921E920D9210920792119594958F958B95910000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000095939592958E968A968E968B967D96859686968D9672968496C196C596C4 -96C696C796EF96F297CC98059806980898E798EA98EF98E998F298ED99AE99AD -9EC39ECD9ED14E8250AD50B550B250B350C550BE50AC50B750BB50AF50C7527F -5277527D52DF52E652E452E252E3532F55DF55E855D355E655CE55DC55C755D1 -55E355E455EF55DA55E155C555C655E555C957125713585E585158585857585A -5854586B584C586D584A58625852584B59675AC15AC95ACC5ABE5ABD5ABC0000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5AB35AC25AB25D695D6F5E4C5E795EC95EC85F125F595FAC5FAE611A610F6148 -611F60F3611B60F961016108614E614C6144614D613E61346127610D61066137 -622162226413643E641E642A642D643D642C640F641C6414640D643664166417 -6406656C659F65B06697668966876688669666846698668D67036994696D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000695A697769606954697569306982694A6968696B695E695369796986695D -6963695B6B476B726BC06BBF6BD36BFD6EA26EAF6ED36EB66EC26E906E9D6EC7 -6EC56EA56E986EBC6EBA6EAB6ED16E966E9C6EC46ED46EAA6EA76EB4714E7159 -7169716471497167715C716C7166714C7165715E714671687156723A72527337 -7345733F733E746F745A7455745F745E7441743F7459745B745C757675787600 -75F0760175F275F175FA75FF75F475F376DE76DF775B776B7766775E77630000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7779776A776C775C77657768776277EE788E78B078977898788C7889787C7891 -7893787F797A797F7981842C79BD7A1C7A1A7A207A147A1F7A1E7A9F7AA07B77 -7BC07B607B6E7B677CB17CB37CB57D937D797D917D817D8F7D5B7F6E7F697F6A -7F727FA97FA87FA480568058808680848171817081788165816E8173816B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008179817A81668205824784828477843D843184758466846B8449846C845B -843C8435846184638469846D8446865E865C865F86F9871387088707870086FE -86FB870287038706870A885988DF88D488D988DC88D888DD88E188CA88D588D2 -899C89E38A6B8A728A738A668A698A708A878A7C8A638AA08A718A858A6D8A62 -8A6E8A6C8A798A7B8A3E8A688C628C8A8C898CCA8CC78CC88CC48CB28CC38CC2 -8CC58DE18DDF8DE88DEF8DF38DFA8DEA8DE48DE68EB28F038F098EFE8F0A0000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8F9F8FB2904B904A905390429054903C905590509047904F904E904D9051903E -904191129117916C916A916991C9923792579238923D9240923E925B924B9264 -925192349249924D92459239923F925A959896989694969596CD96CB96C996CA -96F796FB96F996F6975697749776981098119813980A9812980C98FC98F40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000098FD98FE99B399B199B49AE19CE99E829F0E9F139F2050E750EE50E550D6 -50ED50DA50D550CF50D150F150CE50E9516251F352835282533153AD55FE5600 -561B561755FD561456065609560D560E55F75616561F5608561055F657185716 -5875587E58835893588A58795885587D58FD592559225924596A59695AE15AE6 -5AE95AD75AD65AD85AE35B755BDE5BE75BE15BE55BE65BE85BE25BE45BDF5C0D -5C625D845D875E5B5E635E555E575E545ED35ED65F0A5F465F705FB961470000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -613F614B617761626163615F615A61586175622A64876458645464A46478645F -647A645164676434646D647B657265A165D765D666A266A8669D699C69A86995 -69C169AE69D369CB699B69B769BB69AB69B469D069CD69AD69CC69A669C369A3 -6B496B4C6C336F336F146EFE6F136EF46F296F3E6F206F2C6F0F6F026F220000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006EFF6EEF6F066F316F386F326F236F156F2B6F2F6F886F2A6EEC6F016EF2 -6ECC6EF771947199717D718A71847192723E729272967344735074647463746A -7470746D750475917627760D760B7609761376E176E37784777D777F776178C1 -789F78A778B378A978A3798E798F798D7A2E7A317AAA7AA97AED7AEF7BA17B95 -7B8B7B757B977B9D7B947B8F7BB87B877B847CB97CBD7CBE7DBB7DB07D9C7DBD -7DBE7DA07DCA7DB47DB27DB17DBA7DA27DBF7DB57DB87DAD7DD27DC77DAC0000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7F707FE07FE17FDF805E805A808781508180818F8188818A817F818281E781FA -82078214821E824B84C984BF84C684C48499849E84B2849C84CB84B884C084D3 -849084BC84D184CA873F871C873B872287258734871887558737872988F38902 -88F488F988F888FD88E8891A88EF8AA68A8C8A9E8AA38A8D8AA18A938AA40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AAA8AA58AA88A988A918A9A8AA78C6A8C8D8C8C8CD38CD18CD28D6B8D99 -8D958DFC8F148F128F158F138FA390609058905C90639059905E9062905D905B -91199118911E917591789177917492789280928592989296927B9293929C92A8 -927C929195A195A895A995A395A595A49699969C969B96CC96D29700977C9785 -97F69817981898AF98B199039905990C990999C19AAF9AB09AE69B419B429CF4 -9CF69CF39EBC9F3B9F4A5104510050FB50F550F9510251085109510551DC0000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -528752885289528D528A52F053B2562E563B56395632563F563456295653564E -565756745636562F56305880589F589E58B3589C58AE58A958A6596D5B095AFB -5B0B5AF55B0C5B085BEE5BEC5BE95BEB5C645C655D9D5D945E625E5F5E615EE2 -5EDA5EDF5EDD5EE35EE05F485F715FB75FB561766167616E615D615561820000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000617C6170616B617E61A7619061AB618E61AC619A61A4619461AE622E6469 -646F6479649E64B26488649064B064A56493649564A9649264AE64AD64AB649A -64AC649964A264B365756577657866AE66AB66B466B16A236A1F69E86A016A1E -6A1969FD6A216A136A0A69F36A026A0569ED6A116B506B4E6BA46BC56BC66F3F -6F7C6F846F516F666F546F866F6D6F5B6F786F6E6F8E6F7A6F706F646F976F58 -6ED56F6F6F606F5F719F71AC71B171A87256729B734E73577469748B74830000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -747E7480757F76207629761F7624762676217622769A76BA76E4778E7787778C -7791778B78CB78C578BA78CA78BE78D578BC78D07A3F7A3C7A407A3D7A377A3B -7AAF7AAE7BAD7BB17BC47BB47BC67BC77BC17BA07BCC7CCA7DE07DF47DEF7DFB -7DD87DEC7DDD7DE87DE37DDA7DDE7DE97D9E7DD97DF27DF97F757F777FAF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007FE98026819B819C819D81A0819A81988517853D851A84EE852C852D8513 -851185238521851484EC852584FF850687828774877687608766877887688759 -8757874C8753885B885D89108907891289138915890A8ABC8AD28AC78AC48A95 -8ACB8AF88AB28AC98AC28ABF8AB08AD68ACD8AB68AB98ADB8C4C8C4E8C6C8CE0 -8CDE8CE68CE48CEC8CED8CE28CE38CDC8CEA8CE18D6D8D9F8DA38E2B8E108E1D -8E228E0F8E298E1F8E218E1E8EBA8F1D8F1B8F1F8F298F268F2A8F1C8F1E0000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8F259069906E9068906D90779130912D9127913191879189918B918392C592BB -92B792EA92AC92E492C192B392BC92D292C792F092B295AD95B1970497069707 -97099760978D978B978F9821982B981C98B3990A99139912991899DD99D099DF -99DB99D199D599D299D99AB79AEE9AEF9B279B459B449B779B6F9D069D090000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D039EA99EBE9ECE58A89F5251125118511451105115518051AA51DD5291 -529352F35659566B5679566956645678566A566856655671566F566C56625676 -58C158BE58C758C5596E5B1D5B345B785BF05C0E5F4A61B2619161A9618A61CD -61B661BE61CA61C8623064C564C164CB64BB64BC64DA64C464C764C264CD64BF -64D264D464BE657466C666C966B966C466C766B86A3D6A386A3A6A596A6B6A58 -6A396A446A626A616A4B6A476A356A5F6A486B596B776C056FC26FB16FA10000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6FC36FA46FC16FA76FB36FC06FB96FB66FA66FA06FB471BE71C971D071D271C8 -71D571B971CE71D971DC71C371C47368749C74A37498749F749E74E2750C750D -76347638763A76E776E577A0779E779F77A578E878DA78EC78E779A67A4D7A4E -7A467A4C7A4B7ABA7BD97C117BC97BE47BDB7BE17BE97BE67CD57CD67E0A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E117E087E1B7E237E1E7E1D7E097E107F797FB27FF07FF17FEE802881B3 -81A981A881FB820882588259854A855985488568856985438549856D856A855E -8783879F879E87A2878D8861892A89328925892B892189AA89A68AE68AFA8AEB -8AF18B008ADC8AE78AEE8AFE8B018B028AF78AED8AF38AF68AFC8C6B8C6D8C93 -8CF48E448E318E348E428E398E358F3B8F2F8F388F338FA88FA6907590749078 -9072907C907A913491929320933692F89333932F932292FC932B9304931A0000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9310932693219315932E931995BB96A796A896AA96D5970E97119716970D9713 -970F975B975C9766979898309838983B9837982D9839982499109928991E991B -9921991A99ED99E299F19AB89ABC9AFB9AED9B289B919D159D239D269D289D12 -9D1B9ED89ED49F8D9F9C512A511F5121513252F5568E56805690568556870000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000568F58D558D358D158CE5B305B2A5B245B7A5C375C685DBC5DBA5DBD5DB8 -5E6B5F4C5FBD61C961C261C761E661CB6232623464CE64CA64D864E064F064E6 -64EC64F164E264ED6582658366D966D66A806A946A846AA26A9C6ADB6AA36A7E -6A976A906AA06B5C6BAE6BDA6C086FD86FF16FDF6FE06FDB6FE46FEB6FEF6F80 -6FEC6FE16FE96FD56FEE6FF071E771DF71EE71E671E571ED71EC71F471E07235 -72467370737274A974B074A674A876467642764C76EA77B377AA77B077AC0000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77A777AD77EF78F778FA78F478EF790179A779AA7A577ABF7C077C0D7BFE7BF7 -7C0C7BE07CE07CDC7CDE7CE27CDF7CD97CDD7E2E7E3E7E467E377E327E437E2B -7E3D7E317E457E417E347E397E487E357E3F7E2F7F447FF37FFC807180728070 -806F807381C681C381BA81C281C081BF81BD81C981BE81E88209827185AA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008584857E859C8591859485AF859B858785A8858A866787C087D187B387D2 -87C687AB87BB87BA87C887CB893B893689448938893D89AC8B0E8B178B198B1B -8B0A8B208B1D8B048B108C418C3F8C738CFA8CFD8CFC8CF88CFB8DA88E498E4B -8E488E4A8F448F3E8F428F458F3F907F907D9084908190829080913991A3919E -919C934D938293289375934A9365934B9318937E936C935B9370935A935495CA -95CB95CC95C895C696B196B896D6971C971E97A097D3984698B699359A010000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -99FF9BAE9BAB9BAA9BAD9D3B9D3F9E8B9ECF9EDE9EDC9EDD9EDB9F3E9F4B53E2 -569556AE58D958D85B385F5D61E3623364F464F264FE650664FA64FB64F765B7 -66DC67266AB36AAC6AC36ABB6AB86AC26AAE6AAF6B5F6B786BAF7009700B6FFE -70066FFA7011700F71FB71FC71FE71F87377737574A774BF7515765676580000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000765277BD77BF77BB77BC790E79AE7A617A627A607AC47AC57C2B7C277C2A -7C1E7C237C217CE77E547E557E5E7E5A7E617E527E597F487FF97FFB80778076 -81CD81CF820A85CF85A985CD85D085C985B085BA85B985A687EF87EC87F287E0 -898689B289F48B288B398B2C8B2B8C508D058E598E638E668E648E5F8E558EC0 -8F498F4D90879083908891AB91AC91D09394938A939693A293B393AE93AC93B0 -9398939A939795D495D695D095D596E296DC96D996DB96DE972497A397A60000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -97AD97F9984D984F984C984E985398BA993E993F993D992E99A59A0E9AC19B03 -9B069B4F9B4E9B4D9BCA9BC99BFD9BC89BC09D519D5D9D609EE09F159F2C5133 -56A558DE58DF58E25BF59F905EEC61F261F761F661F56500650F66E066DD6AE5 -6ADD6ADA6AD3701B701F7028701A701D701570187206720D725872A273780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000737A74BD74CA74E375877586765F766177C7791979B17A6B7A697C3E7C3F -7C387C3D7C377C407E6B7E6D7E797E697E6A7F857E737FB67FB97FB881D885E9 -85DD85EA85D585E485E585F787FB8805880D87F987FE8960895F8956895E8B41 -8B5C8B588B498B5A8B4E8B4F8B468B598D088D0A8E7C8E728E878E768E6C8E7A -8E748F548F4E8FAD908A908B91B191AE93E193D193DF93C393C893DC93DD93D6 -93E293CD93D893E493D793E895DC96B496E3972A9727976197DC97FB985E0000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9858985B98BC994599499A169A199B0D9BE89BE79BD69BDB9D899D619D729D6A -9D6C9E929E979E939EB452F856A856B756B656B456BC58E45B405B435B7D5BF6 -5DC961F861FA65186514651966E667276AEC703E703070327210737B74CF7662 -76657926792A792C792B7AC77AF67C4C7C437C4D7CEF7CF08FAE7E7D7E7C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E827F4C800081DA826685FB85F9861185FA8606860B8607860A88148815 -896489BA89F88B708B6C8B668B6F8B5F8B6B8D0F8D0D8E898E818E858E8291B4 -91CB9418940393FD95E1973098C49952995199A89A2B9A309A379A359C139C0D -9E799EB59EE89F2F9F5F9F639F615137513856C156C056C259145C6C5DCD61FC -61FE651D651C659566E96AFB6B046AFA6BB2704C721B72A774D674D4766977D3 -7C507E8F7E8C7FBC8617862D861A882388228821881F896A896C89BD8B740000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B778B7D8D138E8A8E8D8E8B8F5F8FAF91BA942E94339435943A94389432942B -95E297389739973297FF9867986599579A459A439A409A3E9ACF9B549B519C2D -9C259DAF9DB49DC29DB89E9D9EEF9F199F5C9F669F67513C513B56C856CA56C9 -5B7F5DD45DD25F4E61FF65246B0A6B6170517058738074E4758A766E766C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079B37C607C5F807E807D81DF8972896F89FC8B808D168D178E918E938F61 -9148944494519452973D973E97C397C1986B99559A559A4D9AD29B1A9C499C31 -9C3E9C3B9DD39DD79F349F6C9F6A9F9456CC5DD662006523652B652A66EC6B10 -74DA7ACA7C647C637C657E937E967E9481E28638863F88318B8A9090908F9463 -946094649768986F995C9A5A9A5B9A579AD39AD49AD19C549C579C569DE59E9F -9EF456D158E9652C705E7671767277D77F507F888836883988628B938B920000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B9682778D1B91C0946A97429748974497C698709A5F9B229B589C5F9DF99DFA -9E7C9E7D9F079F779F725EF36B1670637C6C7C6E883B89C08EA191C194729470 -9871995E9AD69B239ECC706477DA8B9A947797C99A629A657E9C8B9C8EAA91C5 -947D947E947C9C779C789EF78C54947F9E1A72289A6A9B319E1B9E1E7C720000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E424E5C51F5531A53824E074E0C4E474E8D56D7FA0C5C6E5F734E0F51874E0E -4E2E4E934EC24EC94EC8519852FC536C53B957205903592C5C105DFF65E16BB3 -6BCC6C14723F4E314E3C4EE84EDC4EE94EE14EDD4EDA520C531C534C57225723 -5917592F5B815B845C125C3B5C745C735E045E805E825FC9620962506C150000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C366C436C3F6C3B72AE72B0738A79B8808A961E4F0E4F184F2C4EF54F14 -4EF14F004EF74F084F1D4F024F054F224F134F044EF44F1251B1521352095210 -52A65322531F534D538A540756E156DF572E572A5734593C5980597C5985597B -597E5977597F5B565C155C255C7C5C7A5C7B5C7E5DDF5E755E845F025F1A5F74 -5FD55FD45FCF625C625E626462616266626262596260625A626565EF65EE673E -67396738673B673A673F673C67336C186C466C526C5C6C4F6C4A6C546C4B0000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C4C7071725E72B472B5738E752A767F7A757F518278827C8280827D827F864D -897E909990979098909B909496229624962096234F564F3B4F624F494F534F64 -4F3E4F674F524F5F4F414F584F2D4F334F3F4F61518F51B9521C521E522152AD -52AE530953635372538E538F54305437542A545454455419541C542554180000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000543D544F544154285424544756EE56E756E557415745574C5749574B5752 -5906594059A6599859A05997598E59A25990598F59A759A15B8E5B925C285C2A -5C8D5C8F5C885C8B5C895C925C8A5C865C935C955DE05E0A5E0E5E8B5E895E8C -5E885E8D5F055F1D5F785F765FD25FD15FD05FED5FE85FEE5FF35FE15FE45FE3 -5FFA5FEF5FF75FFB60005FF4623A6283628C628E628F629462876271627B627A -6270628162886277627D62726274653765F065F465F365F265F5674567470000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67596755674C6748675D674D675A674B6BD06C196C1A6C786C676C6B6C846C8B -6C8F6C716C6F6C696C9A6C6D6C876C956C9C6C666C736C656C7B6C8E7074707A -726372BF72BD72C372C672C172BA72C573957397739373947392753A75397594 -75957681793D80348095809980908092809C8290828F8285828E829182930000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000828A828382848C788FC98FBF909F90A190A5909E90A790A096309628962F -962D4E334F984F7C4F854F7D4F804F874F764F744F894F844F774F4C4F974F6A -4F9A4F794F814F784F904F9C4F944F9E4F924F824F954F6B4F6E519E51BC51BE -5235523252335246523152BC530A530B533C539253945487547F548154915482 -5488546B547A547E5465546C54745466548D546F546154605498546354675464 -56F756F9576F5772576D576B57715770577657805775577B5773577457620000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5768577D590C594559B559BA59CF59CE59B259CC59C159B659BC59C359D659B1 -59BD59C059C859B459C75B625B655B935B955C445C475CAE5CA45CA05CB55CAF -5CA85CAC5C9F5CA35CAD5CA25CAA5CA75C9D5CA55CB65CB05CA65E175E145E19 -5F285F225F235F245F545F825F7E5F7D5FDE5FE5602D602660196032600B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006034600A60176033601A601E602C6022600D6010602E60136011600C6009 -601C6214623D62AD62B462D162BE62AA62B662CA62AE62B362AF62BB62A962B0 -62B8653D65A865BB660965FC66046612660865FB6603660B660D660565FD6611 -661066F6670A6785676C678E67926776677B6798678667846774678D678C677A -679F679167996783677D67816778677967946B256B806B7E6BDE6C1D6C936CEC -6CEB6CEE6CD96CB66CD46CAD6CE76CB76CD06CC26CBA6CC36CC66CED6CF20000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6CD26CDD6CB46C8A6C9D6C806CDE6CC06D306CCD6CC76CB06CF96CCF6CE96CD1 -709470987085709370867084709170967082709A7083726A72D672CB72D872C9 -72DC72D272D472DA72CC72D173A473A173AD73A673A273A073AC739D74DD74E8 -753F7540753E758C759876AF76F376F176F076F577F877FC77F977FB77FA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077F77942793F79C57A787A7B7AFB7C757CFD8035808F80AE80A380B880B5 -80AD822082A082C082AB829A8298829B82B582A782AE82BC829E82BA82B482A8 -82A182A982C282A482C382B682A28670866F866D866E8C568FD28FCB8FD38FCD -8FD68FD58FD790B290B490AF90B390B09639963D963C963A96434FCD4FC54FD3 -4FB24FC94FCB4FC14FD44FDC4FD94FBB4FB34FDB4FC74FD64FBA4FC04FB94FEC -5244524952C052C2533D537C539753965399539854BA54A154AD54A554CF0000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54C3830D54B754AE54D654B654C554C654A0547054BC54A254BE547254DE54B0 -57B5579E579F57A4578C5797579D579B57945798578F579957A5579A579558F4 -590D595359E159DE59EE5A0059F159DD59FA59FD59FC59F659E459F259F759DB -59E959F359F559E059FE59F459ED5BA85C4C5CD05CD85CCC5CD75CCB5CDB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005CDE5CDA5CC95CC75CCA5CD65CD35CD45CCF5CC85CC65CCE5CDF5CF85DF9 -5E215E225E235E205E245EB05EA45EA25E9B5EA35EA55F075F2E5F565F866037 -603960546072605E6045605360476049605B604C60406042605F602460446058 -6066606E6242624362CF630D630B62F5630E630362EB62F9630F630C62F862F6 -63006313631462FA631562FB62F06541654365AA65BF6636662166326635661C -662666226633662B663A661D66346639662E670F671067C167F267C867BA0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67DC67BB67F867D867C067B767C567EB67E467DF67B567CD67B367F767F667EE -67E367C267B967CE67E767F067B267FC67C667ED67CC67AE67E667DB67FA67C9 -67CA67C367EA67CB6B286B826B846BB66BD66BD86BE06C206C216D286D346D2D -6D1F6D3C6D3F6D126D0A6CDA6D336D046D196D3A6D1A6D116D006D1D6D420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D016D186D376D036D0F6D406D076D206D2C6D086D226D096D1070B7709F -70BE70B170B070A170B470B570A972417249724A726C72707273726E72CA72E4 -72E872EB72DF72EA72E672E3738573CC73C273C873C573B973B673B573B473EB -73BF73C773BE73C373C673B873CB74EC74EE752E7547754875A775AA767976C4 -7708770377047705770A76F776FB76FA77E777E878067811781278057810780F -780E780978037813794A794C794B7945794479D579CD79CF79D679CE7A800000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A7E7AD17B007B017C7A7C787C797C7F7C807C817D037D087D017F587F917F8D -7FBE8007800E800F8014803780D880C780E080D180C880C280D080C580E380D9 -80DC80CA80D580C980CF80D780E680CD81FF8221829482D982FE82F9830782E8 -830082D5833A82EB82D682F482EC82E182F282F5830C82FB82F682F082EA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000082E482E082FA82F382ED86778674867C86738841884E8867886A886989D3 -8A048A078D728FE38FE18FEE8FE090F190BD90BF90D590C590BE90C790CB90C8 -91D491D39654964F96519653964A964E501E50055007501350225030501B4FF5 -4FF450335037502C4FF64FF75017501C502050275035502F5031500E515A5194 -519351CA51C451C551C851CE5261525A5252525E525F5255526252CD530E539E -552654E25517551254E754F354E4551A54FF5504550854EB5511550554F10000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -550A54FB54F754F854E0550E5503550B5701570257CC583257D557D257BA57C6 -57BD57BC57B857B657BF57C757D057B957C1590E594A5A195A165A2D5A2E5A15 -5A0F5A175A0A5A1E5A335B6C5BA75BAD5BAC5C035C565C545CEC5CFF5CEE5CF1 -5CF75D005CF95E295E285EA85EAE5EAA5EAC5F335F305F67605D605A60670000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000604160A26088608060926081609D60836095609B60976087609C608E6219 -624662F263106356632C634463456336634363E46339634B634A633C63296341 -6334635863546359632D63476333635A63516338635763406348654A654665C6 -65C365C465C2664A665F6647665167126713681F681A684968326833683B684B -684F68166831681C6835682B682D682F684E68446834681D6812681468266828 -682E684D683A682568206B2C6B2F6B2D6B316B346B6D80826B886BE66BE40000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6BE86BE36BE26BE76C256D7A6D636D646D766D0D6D616D926D586D626D6D6D6F -6D916D8D6DEF6D7F6D866D5E6D676D606D976D706D7C6D5F6D826D986D2F6D68 -6D8B6D7E6D806D846D166D836D7B6D7D6D756D9070DC70D370D170DD70CB7F39 -70E270D770D270DE70E070D470CD70C570C670C770DA70CE70E1724272780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072777276730072FA72F472FE72F672F372FB730173D373D973E573D673BC -73E773E373E973DC73D273DB73D473DD73DA73D773D873E874DE74DF74F474F5 -7521755B755F75B075C175BB75C475C075BF75B675BA768A76C9771D771B7710 -771377127723771177157719771A772277277823782C78227835782F7828782E -782B782178297833782A78317954795B794F795C79537952795179EB79EC79E0 -79EE79ED79EA79DC79DE79DD7A867A897A857A8B7A8C7A8A7A877AD87B100000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7B047B137B057B0F7B087B0A7B0E7B097B127C847C917C8A7C8C7C887C8D7C85 -7D1E7D1D7D117D0E7D187D167D137D1F7D127D0F7D0C7F5C7F617F5E7F607F5D -7F5B7F967F927FC37FC27FC08016803E803980FA80F280F980F5810180FB8100 -8201822F82258333832D83448319835183258356833F83418326831C83220000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008342834E831B832A8308833C834D8316832483208337832F832983478345 -834C8353831E832C834B832783488653865286A286A88696868D8691869E8687 -86978686868B869A868586A5869986A186A786958698868E869D869086948843 -8844886D88758876887288808871887F886F8883887E8874887C8A128C478C57 -8C7B8CA48CA38D768D788DB58DB78DB68ED18ED38FFE8FF590028FFF8FFB9004 -8FFC8FF690D690E090D990DA90E390DF90E590D890DB90D790DC90E491500000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -914E914F91D591E291DA965C965F96BC98E39ADF9B2F4E7F5070506A5061505E -50605053504B505D50725048504D5041505B504A506250155045505F5069506B -5063506450465040506E50735057505151D0526B526D526C526E52D652D3532D -539C55755576553C554D55505534552A55515562553655355530555255450000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000550C55325565554E55395548552D553B5540554B570A570757FB581457E2 -57F657DC57F4580057ED57FD580857F8580B57F357CF580757EE57E357F257E5 -57EC57E1580E57FC581057E75801580C57F157E957F0580D5804595C5A605A58 -5A555A675A5E5A385A355A6D5A505A5F5A655A6C5A535A645A575A435A5D5A52 -5A445A5B5A485A8E5A3E5A4D5A395A4C5A705A695A475A515A565A425A5C5B72 -5B6E5BC15BC05C595D1E5D0B5D1D5D1A5D205D0C5D285D0D5D265D255D0F0000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D305D125D235D1F5D2E5E3E5E345EB15EB45EB95EB25EB35F365F385F9B5F96 -5F9F608A6090608660BE60B060BA60D360D460CF60E460D960DD60C860B160DB -60B760CA60BF60C360CD60C063326365638A6382637D63BD639E63AD639D6397 -63AB638E636F63876390636E63AF6375639C636D63AE637C63A4633B639F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006378638563816391638D6370655365CD66656661665B6659665C66626718 -687968876890689C686D686E68AE68AB6956686F68A368AC68A96875687468B2 -688F68776892687C686B687268AA68806871687E689B6896688B68A0688968A4 -6878687B6891688C688A687D6B366B336B376B386B916B8F6B8D6B8E6B8C6C2A -6DC06DAB6DB46DB36E746DAC6DE96DE26DB76DF66DD46E006DC86DE06DDF6DD6 -6DBE6DE56DDC6DDD6DDB6DF46DCA6DBD6DED6DF06DBA6DD56DC26DCF6DC90000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6DD06DF26DD36DFD6DD76DCD6DE36DBB70FA710D70F7711770F4710C70F07104 -70F3711070FC70FF71067113710070F870F6710B7102710E727E727B727C727F -731D7317730773117318730A730872FF730F731E738873F673F873F574047401 -73FD7407740073FA73FC73FF740C740B73F474087564756375CE75D275CF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075CB75CC75D175D0768F768976D37739772F772D7731773277347733773D -7725773B7735784878527849784D784A784C782678457850796479677969796A -7963796B796179BB79FA79F879F679F77A8F7A947A907B357B477B347B257B30 -7B227B247B337B187B2A7B1D7B317B2B7B2D7B2F7B327B387B1A7B237C947C98 -7C967CA37D357D3D7D387D367D3A7D457D2C7D297D417D477D3E7D3F7D4A7D3B -7D287F637F957F9C7F9D7F9B7FCA7FCB7FCD7FD07FD17FC77FCF7FC9801F0000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -801E801B804780438048811881258119811B812D811F812C811E812181158127 -811D8122821182388233823A823482328274839083A383A8838D837A837383A4 -8374838F8381839583998375839483A9837D8383838C839D839B83AA838B837E -83A583AF8388839783B0837F83A6838783AE8376839A8659865686BF86B70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000086C286C186C586BA86B086C886B986B386B886CC86B486BB86BC86C386BD -86BE88528889889588A888A288AA889A889188A1889F889888A78899889B8897 -88A488AC888C8893888E898289D689D989D58A308A278A2C8A1E8C398C3B8C5C -8C5D8C7D8CA58D7D8D7B8D798DBC8DC28DB98DBF8DC18ED88EDE8EDD8EDC8ED7 -8EE08EE19024900B9011901C900C902190EF90EA90F090F490F290F390D490EB -90EC90E991569158915A9153915591EC91F491F191F391F891E491F991EA0000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -91EB91F791E891EE957A95869588967C966D966B9671966F96BF976A980498E5 -9997509B50955094509E508B50A35083508C508E509D5068509C509250825087 -515F51D45312531153A453A7559155A855A555AD5577564555A255935588558F -55B5558155A3559255A4557D558C55A6557F559555A1558E570C582958370000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005819581E58275823582857F558485825581C581B5833583F5836582E5839 -5838582D582C583B59615AAF5A945A9F5A7A5AA25A9E5A785AA65A7C5AA55AAC -5A955AAE5A375A845A8A5A975A835A8B5AA95A7B5A7D5A8C5A9C5A8F5A935A9D -5BEA5BCD5BCB5BD45BD15BCA5BCE5C0C5C305D375D435D6B5D415D4B5D3F5D35 -5D515D4E5D555D335D3A5D525D3D5D315D595D425D395D495D385D3C5D325D36 -5D405D455E445E415F585FA65FA55FAB60C960B960CC60E260CE60C461140000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60F2610A6116610560F5611360F860FC60FE60C161036118611D611060FF6104 -610B624A639463B163B063CE63E563E863EF63C3649D63F363CA63E063F663D5 -63F263F5646163DF63BE63DD63DC63C463D863D363C263C763CC63CB63C863F0 -63D763D965326567656A6564655C65686565658C659D659E65AE65D065D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000667C666C667B668066716679666A66726701690C68D3690468DC692A68EC -68EA68F1690F68D668F768EB68E468F66913691068F368E1690768CC69086970 -68B4691168EF68C6691468F868D068FD68FC68E8690B690A691768CE68C868DD -68DE68E668F468D1690668D468E96915692568C76B396B3B6B3F6B3C6B946B97 -6B996B956BBD6BF06BF26BF36C306DFC6E466E476E1F6E496E886E3C6E3D6E45 -6E626E2B6E3F6E416E5D6E736E1C6E336E4B6E406E516E3B6E036E2E6E5E0000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E686E5C6E616E316E286E606E716E6B6E396E226E306E536E656E276E786E64 -6E776E556E796E526E666E356E366E5A7120711E712F70FB712E713171237125 -71227132711F7128713A711B724B725A7288728972867285728B7312730B7330 -73227331733373277332732D732673237335730C742E742C7430742B74160000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000741A7421742D743174247423741D74297420743274FB752F756F756C75E7 -75DA75E175E675DD75DF75E475D77695769276DA774677477744774D7745774A -774E774B774C77DE77EC786078647865785C786D7871786A786E787078697868 -785E786279747973797279707A027A0A7A037A0C7A047A997AE67AE47B4A7B3B -7B447B487B4C7B4E7B407B587B457CA27C9E7CA87CA17D587D6F7D637D537D56 -7D677D6A7D4F7D6D7D5C7D6B7D527D547D697D517D5F7D4E7F3E7F3F7F650000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7F667FA27FA07FA17FD78051804F805080FE80D48143814A8152814F8147813D -814D813A81E681EE81F781F881F98204823C823D823F8275833B83CF83F98423 -83C083E8841283E783E483FC83F6841083C683C883EB83E383BF840183DD83E5 -83D883FF83E183CB83CE83D683F583C98409840F83DE8411840683C283F30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000083D583FA83C783D183EA841383C383EC83EE83C483FB83D783E2841B83DB -83FE86D886E286E686D386E386DA86EA86DD86EB86DC86EC86E986D786E886D1 -88488856885588BA88D788B988B888C088BE88B688BC88B788BD88B2890188C9 -89958998899789DD89DA89DB8A4E8A4D8A398A598A408A578A588A448A458A52 -8A488A518A4A8A4C8A4F8C5F8C818C808CBA8CBE8CB08CB98CB58D848D808D89 -8DD88DD38DCD8DC78DD68DDC8DCF8DD58DD98DC88DD78DC58EEF8EF78EFA0000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8EF98EE68EEE8EE58EF58EE78EE88EF68EEB8EF18EEC8EF48EE9902D9034902F -9106912C910490FF90FC910890F990FB9101910091079105910391619164915F -916291609201920A92259203921A9226920F920C9200921291FF91FD92069204 -92279202921C92249219921792059216957B958D958C95909687967E96880000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000096899683968096C296C896C396F196F0976C9770976E980798A998EB9CE6 -9EF94E834E844EB650BD50BF50C650AE50C450CA50B450C850C250B050C150BA -50B150CB50C950B650B851D7527A5278527B527C55C355DB55CC55D055CB55CA -55DD55C055D455C455E955BF55D2558D55CF55D555E255D655C855F255CD55D9 -55C25714585358685864584F584D5849586F5855584E585D58595865585B583D -5863587158FC5AC75AC45ACB5ABA5AB85AB15AB55AB05ABF5AC85ABB5AC60000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5AB75AC05ACA5AB45AB65ACD5AB95A905BD65BD85BD95C1F5C335D715D635D4A -5D655D725D6C5D5E5D685D675D625DF05E4F5E4E5E4A5E4D5E4B5EC55ECC5EC6 -5ECB5EC75F405FAF5FAD60F76149614A612B614561366132612E6146612F614F -612961406220916862236225622463C563F163EB641064126409642064240000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064336443641F641564186439643764226423640C64266430642864416435 -642F640A641A644064256427640B63E7641B642E6421640E656F659265D36686 -668C66956690668B668A66996694667867206966695F6938694E69626971693F -6945696A6939694269576959697A694869496935696C6933693D696568F06978 -693469696940696F69446976695869416974694C693B694B6937695C694F6951 -69326952692F697B693C6B466B456B436B426B486B416B9BFA0D6BFB6BFC0000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6BF96BF76BF86E9B6ED66EC86E8F6EC06E9F6E936E946EA06EB16EB96EC66ED2 -6EBD6EC16E9E6EC96EB76EB06ECD6EA66ECF6EB26EBE6EC36EDC6ED86E996E92 -6E8E6E8D6EA46EA16EBF6EB36ED06ECA6E976EAE6EA371477154715271637160 -7141715D716271727178716A7161714271587143714B7170715F715071530000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007144714D715A724F728D728C72917290728E733C7342733B733A7340734A -73497444744A744B7452745174577440744F7450744E74427446744D745474E1 -74FF74FE74FD751D75797577698375EF760F760375F775FE75FC75F975F87610 -75FB75F675ED75F575FD769976B576DD7755775F776077527756775A77697767 -77547759776D77E07887789A7894788F788478957885788678A1788378797899 -78807896787B797C7982797D79797A117A187A197A127A177A157A227A130000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A1B7A107AA37AA27A9E7AEB7B667B647B6D7B747B697B727B657B737B717B70 -7B617B787B767B637CB27CB47CAF7D887D867D807D8D7D7F7D857D7A7D8E7D7B -7D837D7C7D8C7D947D847D7D7D927F6D7F6B7F677F687F6C7FA67FA57FA77FDB -7FDC8021816481608177815C8169815B816281726721815E81768167816F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081448161821D8249824482408242824584F1843F845684768479848F848D -846584518440848684678430844D847D845A845984748473845D8507845E8437 -843A8434847A8443847884328445842983D9844B842F8442842D845F84708439 -844E844C8452846F84C5848E843B8447843684338468847E8444842B84608454 -846E8450870B870486F7870C86FA86D686F5874D86F8870E8709870186F6870D -870588D688CB88CD88CE88DE88DB88DA88CC88D08985899B89DF89E589E40000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89E189E089E289DC89E68A768A868A7F8A618A3F8A778A828A848A758A838A81 -8A748A7A8C3C8C4B8C4A8C658C648C668C868C848C858CCC8D688D698D918D8C -8D8E8D8F8D8D8D938D948D908D928DF08DE08DEC8DF18DEE8DD08DE98DE38DE2 -8DE78DF28DEB8DF48F068EFF8F018F008F058F078F088F028F0B9052903F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090449049903D9110910D910F911191169114910B910E916E916F92489252 -9230923A926692339265925E9283922E924A9246926D926C924F92609267926F -92369261927092319254926392509272924E9253924C92569232959F959C959E -959B969296939691969796CE96FA96FD96F896F59773977797789772980F980D -980E98AC98F698F999AF99B299B099B59AAD9AAB9B5B9CEA9CED9CE79E809EFD -50E650D450D750E850F350DB50EA50DD50E450D350EC50F050EF50E350E00000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51D85280528152E952EB533053AC56275615560C561255FC560F561C56015613 -560255FA561D560455FF55F95889587C5890589858865881587F5874588B587A -58875891588E587658825888587B5894588F58FE596B5ADC5AEE5AE55AD55AEA -5ADA5AED5AEB5AF35AE25AE05ADB5AEC5ADE5ADD5AD95AE85ADF5B775BE00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005BE35C635D825D805D7D5D865D7A5D815D775D8A5D895D885D7E5D7C5D8D -5D795D7F5E585E595E535ED85ED15ED75ECE5EDC5ED55ED95ED25ED45F445F43 -5F6F5FB6612C61286141615E61716173615261536172616C618061746154617A -615B6165613B616A6161615662296227622B642B644D645B645D647464766472 -6473647D6475646664A6644E6482645E645C644B645364606450647F643F646C -646B645964656477657365A066A166A0669F67056704672269B169B669C90000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69A069CE699669B069AC69BC69916999698E69A7698D69A969BE69AF69BF69C4 -69BD69A469D469B969CA699A69CF69B3699369AA69A1699E69D96997699069C2 -69B569A569C66B4A6B4D6B4B6B9E6B9F6BA06BC36BC46BFE6ECE6EF56EF16F03 -6F256EF86F376EFB6F2E6F096F4E6F196F1A6F276F186F3B6F126EED6F0A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F366F736EF96EEE6F2D6F406F306F3C6F356EEB6F076F0E6F436F056EFD -6EF66F396F1C6EFC6F3A6F1F6F0D6F1E6F086F21718771907189718071857182 -718F717B718671817197724472537297729572937343734D7351734C74627473 -7471747574727467746E750075027503757D759076167608760C76157611760A -761476B87781777C77857782776E7780776F777E778378B278AA78B478AD78A8 -787E78AB789E78A578A078AC78A278A47998798A798B79967995799479930000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -79977988799279907A2B7A4A7A307A2F7A287A267AA87AAB7AAC7AEE7B887B9C -7B8A7B917B907B967B8D7B8C7B9B7B8E7B857B9852847B997BA47B827CBB7CBF -7CBC7CBA7DA77DB77DC27DA37DAA7DC17DC07DC57D9D7DCE7DC47DC67DCB7DCC -7DAF7DB97D967DBC7D9F7DA67DAE7DA97DA17DC97F737FE27FE37FE57FDE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008024805D805C8189818681838187818D818C818B8215849784A484A1849F -84BA84CE84C284AC84AE84AB84B984B484C184CD84AA849A84B184D0849D84A7 -84BB84A2849484C784CC849B84A984AF84A884D6849884B684CF84A084D784D4 -84D284DB84B084918661873387238728876B8740872E871E87218719871B8743 -872C8741873E874687208732872A872D873C8712873A87318735874287268727 -87388724871A8730871188F788E788F188F288FA88FE88EE88FC88F688FB0000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -88F088EC88EB899D89A1899F899E89E989EB89E88AAB8A998A8B8A928A8F8A96 -8C3D8C688C698CD58CCF8CD78D968E098E028DFF8E0D8DFD8E0A8E038E078E06 -8E058DFE8E008E048F108F118F0E8F0D9123911C91209122911F911D911A9124 -9121911B917A91729179917392A592A49276929B927A92A0929492AA928D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000092A6929A92AB92799297927F92A392EE928E9282929592A2927D928892A1 -928A9286928C929992A7927E928792A9929D928B922D969E96A196FF9758977D -977A977E978397809782977B97849781977F97CE97CD981698AD98AE99029900 -9907999D999C99C399B999BB99BA99C299BD99C79AB19AE39AE79B3E9B3F9B60 -9B619B5F9CF19CF29CF59EA750FF5103513050F85106510750F650FE510B510C -50FD510A528B528C52F152EF56485642564C56355641564A5649564656580000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -565A56405633563D562C563E5638562A563A571A58AB589D58B158A058A358AF -58AC58A558A158FF5AFF5AF45AFD5AF75AF65B035AF85B025AF95B015B075B05 -5B0F5C675D995D975D9F5D925DA25D935D955DA05D9C5DA15D9A5D9E5E695E5D -5E605E5C7DF35EDB5EDE5EE15F495FB2618B6183617961B161B061A261890000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000619B619361AF61AD619F619261AA61A1618D616661B3622D646E64706496 -64A064856497649C648F648B648A648C64A3649F646864B164986576657A6579 -657B65B265B366B566B066A966B266B766AA66AF6A006A066A1769E569F86A15 -69F169E46A2069FF69EC69E26A1B6A1D69FE6A2769F269EE6A1469F769E76A40 -6A0869E669FB6A0D69FC69EB6A096A046A186A256A0F69F66A266A0769F46A16 -6B516BA56BA36BA26BA66C016C006BFF6C026F416F266F7E6F876FC66F920000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F8D6F896F8C6F626F4F6F856F5A6F966F766F6C6F826F556F726F526F506F57 -6F946F936F5D6F006F616F6B6F7D6F676F906F536F8B6F696F7F6F956F636F77 -6F6A6F7B71B271AF719B71B071A0719A71A971B5719D71A5719E71A471A171AA -719C71A771B37298729A73587352735E735F7360735D735B7361735A73590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000736274877489748A74867481747D74857488747C747975087507757E7625 -761E7619761D761C7623761A7628761B769C769D769E769B778D778F77897788 -78CD78BB78CF78CC78D178CE78D478C878C378C478C9799A79A179A0799C79A2 -799B6B767A397AB27AB47AB37BB77BCB7BBE7BAC7BCE7BAF7BB97BCA7BB57CC5 -7CC87CCC7CCB7DF77DDB7DEA7DE77DD77DE17E037DFA7DE67DF67DF17DF07DEE -7DDF7F767FAC7FB07FAD7FED7FEB7FEA7FEC7FE67FE88064806781A3819F0000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -819E819581A2819981978216824F825382528250824E82518524853B850F8500 -8529850E8509850D851F850A8527851C84FB852B84FA8508850C84F4852A84F2 -851584F784EB84F384FC851284EA84E9851684FE8528851D852E850284FD851E -84F68531852684E784E884F084EF84F9851885208530850B8519852F86620000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000875687638764877787E1877387588754875B87528761875A8751875E876D -876A8750874E875F875D876F876C877A876E875C8765874F877B877587628767 -8769885A8905890C8914890B891789188919890689168911890E890989A289A4 -89A389ED89F089EC8ACF8AC68AB88AD38AD18AD48AD58ABB8AD78ABE8AC08AC5 -8AD88AC38ABA8ABD8AD98C3E8C4D8C8F8CE58CDF8CD98CE88CDA8CDD8CE78DA0 -8D9C8DA18D9B8E208E238E258E248E2E8E158E1B8E168E118E198E268E270000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E148E128E188E138E1C8E178E1A8F2C8F248F188F1A8F208F238F168F179073 -9070906F9067906B912F912B9129912A91329126912E91859186918A91819182 -9184918092D092C392C492C092D992B692CF92F192DF92D892E992D792DD92CC -92EF92C292E892CA92C892CE92E692CD92D592C992E092DE92E792D192D30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000092B592E192C692B4957C95AC95AB95AE95B096A496A296D3970597089702 -975A978A978E978897D097CF981E981D9826982998289820981B982798B29908 -98FA9911991499169917991599DC99CD99CF99D399D499CE99C999D699D899CB -99D799CC9AB39AEC9AEB9AF39AF29AF19B469B439B679B749B719B669B769B75 -9B709B689B649B6C9CFC9CFA9CFD9CFF9CF79D079D009CF99CFB9D089D059D04 -9E839ED39F0F9F10511C51135117511A511151DE533453E156705660566E0000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -567356665663566D5672565E5677571C571B58C858BD58C958BF58BA58C258BC -58C65B175B195B1B5B215B145B135B105B165B285B1A5B205B1E5BEF5DAC5DB1 -5DA95DA75DB55DB05DAE5DAA5DA85DB25DAD5DAF5DB45E675E685E665E6F5EE9 -5EE75EE65EE85EE55F4B5FBC619D61A8619661C561B461C661C161CC61BA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000061BF61B8618C64D764D664D064CF64C964BD648964C364DB64F364D96533 -657F657C65A266C866BE66C066CA66CB66CF66BD66BB66BA66CC67236A346A66 -6A496A676A326A686A3E6A5D6A6D6A766A5B6A516A286A5A6A3B6A3F6A416A6A -6A646A506A4F6A546A6F6A696A606A3C6A5E6A566A556A4D6A4E6A466B556B54 -6B566BA76BAA6BAB6BC86BC76C046C036C066FAD6FCB6FA36FC76FBC6FCE6FC8 -6F5E6FC46FBD6F9E6FCA6FA870046FA56FAE6FBA6FAC6FAA6FCF6FBF6FB80000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6FA26FC96FAB6FCD6FAF6FB26FB071C571C271BF71B871D671C071C171CB71D4 -71CA71C771CF71BD71D871BC71C671DA71DB729D729E736973667367736C7365 -736B736A747F749A74A074947492749574A1750B7580762F762D7631763D7633 -763C76357632763076BB76E6779A779D77A1779C779B77A277A3779577990000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000779778DD78E978E578EA78DE78E378DB78E178E278ED78DF78E079A47A44 -7A487A477AB67AB87AB57AB17AB77BDE7BE37BE77BDD7BD57BE57BDA7BE87BF9 -7BD47BEA7BE27BDC7BEB7BD87BDF7CD27CD47CD77CD07CD17E127E217E177E0C -7E1F7E207E137E0E7E1C7E157E1A7E227E0B7E0F7E167E0D7E147E257E247F43 -7F7B7F7C7F7A7FB17FEF802A8029806C81B181A681AE81B981B581AB81B081AC -81B481B281B781A781F282558256825785568545856B854D8553856185580000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -854085468564854185628544855185478563853E855B8571854E856E85758555 -85678560858C8566855D85548565856C866386658664879B878F879787938792 -87888781879687988779878787A3878587908791879D87848794879C879A8789 -891E89268930892D892E89278931892289298923892F892C891F89F18AE00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AE28AF28AF48AF58ADD8B148AE48ADF8AF08AC88ADE8AE18AE88AFF8AEF -8AFB8C918C928C908CF58CEE8CF18CF08CF38D6C8D6E8DA58DA78E338E3E8E38 -8E408E458E368E3C8E3D8E418E308E3F8EBD8F368F2E8F358F328F398F378F34 -90769079907B908690FA913391359136919391909191918D918F9327931E9308 -931F9306930F937A9338933C931B9323931293019346932D930E930D92CB931D -92FA9325931392F992F793349302932492FF932993399335932A9314930C0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -930B92FE9309930092FB931695BC95CD95BE95B995BA95B695BF95B595BD96A9 -96D4970B9712971097999797979497F097F89835982F98329924991F99279929 -999E99EE99EC99E599E499F099E399EA99E999E79AB99ABF9AB49ABB9AF69AFA -9AF99AF79B339B809B859B879B7C9B7E9B7B9B829B939B929B909B7A9B950000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B7D9B889D259D179D209D1E9D149D299D1D9D189D229D109D199D1F9E88 -9E869E879EAE9EAD9ED59ED69EFA9F129F3D51265125512251245120512952F4 -5693568C568D568656845683567E5682567F568158D658D458CF58D25B2D5B25 -5B325B235B2C5B275B265B2F5B2E5B7B5BF15BF25DB75E6C5E6A5FBE5FBB61C3 -61B561BC61E761E061E561E461E861DE64EF64E964E364EB64E464E865816580 -65B665DA66D26A8D6A966A816AA56A896A9F6A9B6AA16A9E6A876A936A8E0000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A956A836AA86AA46A916A7F6AA66A9A6A856A8C6A926B5B6BAD6C096FCC6FA9 -6FF46FD46FE36FDC6FED6FE76FE66FDE6FF26FDD6FE26FE871E171F171E871F2 -71E471F071E27373736E736F749774B274AB749074AA74AD74B174A574AF7510 -75117512750F7584764376487649764776A476E977B577AB77B277B777B60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077B477B177A877F078F378FD790278FB78FC78F2790578F978FE790479AB -79A87A5C7A5B7A567A587A547A5A7ABE7AC07AC17C057C0F7BF27C007BFF7BFB -7C0E7BF47C0B7BF37C027C097C037C017BF87BFD7C067BF07BF17C107C0A7CE8 -7E2D7E3C7E427E3398487E387E2A7E497E407E477E297E4C7E307E3B7E367E44 -7E3A7F457F7F7F7E7F7D7FF47FF2802C81BB81C481CC81CA81C581C781BC81E9 -825B825A825C85838580858F85A7859585A0858B85A3857B85A4859A859E0000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8577857C858985A1857A85788557858E85968586858D8599859D858185A28582 -858885858579857685988590859F866887BE87AA87AD87C587B087AC87B987B5 -87BC87AE87C987C387C287CC87B787AF87C487CA87B487B687BF87B887BD87DE -87B289358933893C893E894189528937894289AD89AF89AE89F289F38B1E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B188B168B118B058B0B8B228B0F8B128B158B078B0D8B088B068B1C8B13 -8B1A8C4F8C708C728C718C6F8C958C948CF98D6F8E4E8E4D8E538E508E4C8E47 -8F438F409085907E9138919A91A2919B9199919F91A1919D91A093A1938393AF -936493569347937C9358935C93769349935093519360936D938F934C936A9379 -935793559352934F93719377937B9361935E936393679380934E935995C795C0 -95C995C395C595B796AE96B096AC9720971F9718971D9719979A97A1979C0000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -979E979D97D597D497F198419844984A9849984598439925992B992C992A9933 -9932992F992D99319930999899A399A19A0299FA99F499F799F999F899F699FB -99FD99FE99FC9A039ABE9AFE9AFD9B019AFC9B489B9A9BA89B9E9B9B9BA69BA1 -9BA59BA49B869BA29BA09BAF9D339D419D679D369D2E9D2F9D319D389D300000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D459D429D439D3E9D379D409D3D7FF59D2D9E8A9E899E8D9EB09EC89EDA -9EFB9EFF9F249F239F229F549FA05131512D512E5698569C5697569A569D5699 -59705B3C5C695C6A5DC05E6D5E6E61D861DF61ED61EE61F161EA61F061EB61D6 -61E964FF650464FD64F86501650364FC659465DB66DA66DB66D86AC56AB96ABD -6AE16AC66ABA6AB66AB76AC76AB46AAD6B5E6BC96C0B7007700C700D70017005 -7014700E6FFF70006FFB70266FFC6FF7700A720171FF71F9720371FD73760000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74B874C074B574C174BE74B674BB74C275147513765C76647659765076537657 -765A76A676BD76EC77C277BA78FF790C79137914790979107912791179AD79AC -7A5F7C1C7C297C197C207C1F7C2D7C1D7C267C287C227C257C307E5C7E507E56 -7E637E587E627E5F7E517E607E577E537FB57FB37FF77FF8807581D181D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081D0825F825E85B485C685C085C385C285B385B585BD85C785C485BF85CB -85CE85C885C585B185B685D2862485B885B785BE866987E787E687E287DB87EB -87EA87E587DF87F387E487D487DC87D387ED87D887E387A487D787D9880187F4 -87E887DD8953894B894F894C89468950895189498B2A8B278B238B338B308B35 -8B478B2F8B3C8B3E8B318B258B378B268B368B2E8B248B3B8B3D8B3A8C428C75 -8C998C988C978CFE8D048D028D008E5C8E628E608E578E568E5E8E658E670000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E5B8E5A8E618E5D8E698E548F468F478F488F4B9128913A913B913E91A891A5 -91A791AF91AA93B5938C939293B7939B939D938993A7938E93AA939E93A69395 -93889399939F938D93B1939193B293A493A893B493A393A595D295D395D196B3 -96D796DA5DC296DF96D896DD97239722972597AC97AE97A897AB97A497AA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000097A297A597D797D997D697D897FA98509851985298B89941993C993A9A0F -9A0B9A099A0D9A049A119A0A9A059A079A069AC09ADC9B089B049B059B299B35 -9B4A9B4C9B4B9BC79BC69BC39BBF9BC19BB59BB89BD39BB69BC49BB99BBD9D5C -9D539D4F9D4A9D5B9D4B9D599D569D4C9D579D529D549D5F9D589D5A9E8E9E8C -9EDF9F019F009F169F259F2B9F2A9F299F289F4C9F5551345135529652F753B4 -56AB56AD56A656A756AA56AC58DA58DD58DB59125B3D5B3E5B3F5DC35E700000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5FBF61FB65076510650D6509650C650E658465DE65DD66DE6AE76AE06ACC6AD1 -6AD96ACB6ADF6ADC6AD06AEB6ACF6ACD6ADE6B606BB06C0C7019702770207016 -702B702170227023702970177024701C702A720C720A72077202720572A572A6 -72A472A372A174CB74C574B774C37516766077C977CA77C477F1791D791B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007921791C7917791E79B07A677A687C337C3C7C397C2C7C3B7CEC7CEA7E76 -7E757E787E707E777E6F7E7A7E727E747E687F4B7F4A7F837F867FB77FFD7FFE -807881D781D582648261826385EB85F185ED85D985E185E885DA85D785EC85F2 -85F885D885DF85E385DC85D185F085E685EF85DE85E2880087FA880387F687F7 -8809880C880B880687FC880887FF880A88028962895A895B89578961895C8958 -895D8959898889B789B689F68B508B488B4A8B408B538B568B548B4B8B550000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B518B428B528B578C438C778C768C9A8D068D078D098DAC8DAA8DAD8DAB8E6D -8E788E738E6A8E6F8E7B8EC28F528F518F4F8F508F538FB49140913F91B091AD -93DE93C793CF93C293DA93D093F993EC93CC93D993A993E693CA93D493EE93E3 -93D593C493CE93C093D293E7957D95DA95DB96E19729972B972C972897260000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000097B397B797B697DD97DE97DF985C9859985D985798BF98BD98BB98BE9948 -9947994399A699A79A1A9A159A259A1D9A249A1B9A229A209A279A239A1E9A1C -9A149AC29B0B9B0A9B0E9B0C9B379BEA9BEB9BE09BDE9BE49BE69BE29BF09BD4 -9BD79BEC9BDC9BD99BE59BD59BE19BDA9D779D819D8A9D849D889D719D809D78 -9D869D8B9D8C9D7D9D6B9D749D759D709D699D859D739D7B9D829D6F9D799D7F -9D879D689E949E919EC09EFC9F2D9F409F419F4D9F569F579F58533756B20000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56B556B358E35B455DC65DC75EEE5EEF5FC05FC161F9651765166515651365DF -66E866E366E46AF36AF06AEA6AE86AF96AF16AEE6AEF703C7035702F70377034 -703170427038703F703A70397040703B703370417213721472A8737D737C74BA -76AB76AA76BE76ED77CC77CE77CF77CD77F27925792379277928792479290000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079B27A6E7A6C7A6D7AF77C497C487C4A7C477C457CEE7E7B7E7E7E817E80 -7FBA7FFF807981DB81D9820B82688269862285FF860185FE861B860085F68604 -86098605860C85FD8819881088118817881388168963896689B989F78B608B6A -8B5D8B688B638B658B678B6D8DAE8E868E888E848F598F568F578F558F588F5A -908D9143914191B791B591B291B3940B941393FB9420940F941493FE94159410 -94289419940D93F5940093F79407940E9416941293FA940993F8940A93FF0000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -93FC940C93F69411940695DE95E095DF972E972F97B997BB97FD97FE98609862 -9863985F98C198C29950994E9959994C994B99539A329A349A319A2C9A2A9A36 -9A299A2E9A389A2D9AC79ACA9AC69B109B129B119C0B9C089BF79C059C129BF8 -9C409C079C0E9C069C179C149C099D9F9D999DA49D9D9D929D989D909D9B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009DA09D949D9C9DAA9D979DA19D9A9DA29DA89D9E9DA39DBF9DA99D969DA6 -9DA79E999E9B9E9A9EE59EE49EE79EE69F309F2E9F5B9F609F5E9F5D9F599F91 -513A51395298529756C356BD56BE5B485B475DCB5DCF5EF161FD651B6B026AFC -6B036AF86B0070437044704A7048704970457046721D721A7219737E7517766A -77D0792D7931792F7C547C537CF27E8A7E877E887E8B7E867E8D7F4D7FBB8030 -81DD8618862A8626861F8623861C86198627862E862186208629861E86250000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8829881D881B88208824881C882B884A896D8969896E896B89FA8B798B788B45 -8B7A8B7B8D108D148DAF8E8E8E8C8F5E8F5B8F5D91469144914591B9943F943B -94369429943D943C94309439942A9437942C9440943195E595E495E39735973A -97BF97E1986498C998C698C0995899569A399A3D9A469A449A429A419A3A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009A3F9ACD9B159B179B189B169B3A9B529C2B9C1D9C1C9C2C9C239C289C29 -9C249C219DB79DB69DBC9DC19DC79DCA9DCF9DBE9DC59DC39DBB9DB59DCE9DB9 -9DBA9DAC9DC89DB19DAD9DCC9DB39DCD9DB29E7A9E9C9EEB9EEE9EED9F1B9F18 -9F1A9F319F4E9F659F649F924EB956C656C556CB59715B4B5B4C5DD55DD15EF2 -65216520652665226B0B6B086B096C0D7055705670577052721E721F72A9737F -74D874D574D974D7766D76AD793579B47A707A717C577C5C7C597C5B7C5A0000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7CF47CF17E917F4F7F8781DE826B863486358633862C86328636882C88288826 -882A8825897189BF89BE89FB8B7E8B848B828B868B858B7F8D158E958E948E9A -8E928E908E968E978F608F629147944C9450944A944B944F9447944594489449 -9446973F97E3986A986998CB9954995B9A4E9A539A549A4C9A4F9A489A4A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009A499A529A509AD09B199B2B9B3B9B569B559C469C489C3F9C449C399C33 -9C419C3C9C379C349C329C3D9C369DDB9DD29DDE9DDA9DCB9DD09DDC9DD19DDF -9DE99DD99DD89DD69DF59DD59DDD9EB69EF09F359F339F329F429F6B9F959FA2 -513D529958E858E759725B4D5DD8882F5F4F62016203620465296525659666EB -6B116B126B0F6BCA705B705A7222738273817383767077D47C677C667E95826C -863A86408639863C8631863B863E88308832882E883389768974897389FE0000 -F8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8B8C8B8E8B8B8B888C458D198E988F648F6391BC94629455945D9457945E97C4 -97C598009A569A599B1E9B1F9B209C529C589C509C4A9C4D9C4B9C559C599C4C -9C4E9DFB9DF79DEF9DE39DEB9DF89DE49DF69DE19DEE9DE69DF29DF09DE29DEC -9DF49DF39DE89DED9EC29ED09EF29EF39F069F1C9F389F379F369F439F4F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009F719F709F6E9F6F56D356CD5B4E5C6D652D66ED66EE6B13705F7061705D -7060722374DB74E577D5793879B779B67C6A7E977F89826D8643883888378835 -884B8B948B958E9E8E9F8EA08E9D91BE91BD91C2946B9468946996E597469743 -974797C797E59A5E9AD59B599C639C679C669C629C5E9C609E029DFE9E079E03 -9E069E059E009E019E099DFF9DFD9E049EA09F1E9F469F749F759F7656D4652E -65B86B186B196B176B1A7062722672AA77D877D979397C697C6B7CF67E9A0000 -F9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E987E9B7E9981E081E18646864786488979897A897C897B89FF8B988B998EA5 -8EA48EA3946E946D946F9471947397499872995F9C689C6E9C6D9E0B9E0D9E10 -9E0F9E129E119EA19EF59F099F479F789F7B9F7A9F79571E70667C6F883C8DB2 -8EA691C394749478947694759A609C749C739C719C759E149E139EF69F0A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009FA4706870657CF7866A883E883D883F8B9E8C9C8EA98EC9974B98739874 -98CC996199AB9A649A669A679B249E159E179F4862076B1E7227864C8EA89482 -948094819A699A689B2E9E197229864B8B9F94839C799EB776759A6B9C7A9E1D -7069706A9EA49F7E9F499F98788192B988CF58BB60527CA75AFA255425662557 -2560256C2563255A2569255D255225642555255E256A256125582567255B2553 -25652556255F256B256225592568255C25512550256D256E2570256F25930000 diff --git a/src/runtime/tcl_library/encoding/dingbats.enc b/src/runtime/tcl_library/encoding/dingbats.enc deleted file mode 100644 index bd466b2b..00000000 --- a/src/runtime/tcl_library/encoding/dingbats.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: dingbats, single-byte -S -003F 1 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -00202701270227032704260E2706270727082709261B261E270C270D270E270F -2710271127122713271427152716271727182719271A271B271C271D271E271F -2720272127222723272427252726272726052729272A272B272C272D272E272F -2730273127322733273427352736273727382739273A273B273C273D273E273F -2740274127422743274427452746274727482749274A274B25CF274D25A0274F -27502751275225B225BC25C6275625D727582759275A275B275C275D275E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000276127622763276427652766276726632666266526602460246124622463 -2464246524662467246824692776277727782779277A277B277C277D277E277F -2780278127822783278427852786278727882789278A278B278C278D278E278F -2790279127922793279421922194219527982799279A279B279C279D279E279F -27A027A127A227A327A427A527A627A727A827A927AA27AB27AC27AD27AE27AF -000027B127B227B327B427B527B627B727B827B927BA27BB27BC27BD27BE0000 diff --git a/src/runtime/tcl_library/encoding/ebcdic.enc b/src/runtime/tcl_library/encoding/ebcdic.enc deleted file mode 100644 index f83ce7dd..00000000 --- a/src/runtime/tcl_library/encoding/ebcdic.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: ebcdic, single-byte -S -006F 0 1 -00 -0000000100020003008500090086007F0087008D008E000B000C000D000E000F -0010001100120013008F000A0008009700180019009C009D001C001D001E001F -0080008100820083008400920017001B00880089008A008B008C000500060007 -0090009100160093009400950096000400980099009A009B00140015009E001A -002000A000E200E400E000E100E300E500E700F10060002E003C0028002B007C -002600E900EA00EB00E800ED00EE00EF00EC00DF00210024002A0029003B009F -002D002F00C200C400C000C100C300C500C700D1005E002C0025005F003E003F -00F800C900CA00CB00C800CD00CE00CF00CC00A8003A002300400027003D0022 -00D800610062006300640065006600670068006900AB00BB00F000FD00FE00B1 -00B0006A006B006C006D006E006F00700071007200AA00BA00E600B800C600A4 -00B500AF0073007400750076007700780079007A00A100BF00D000DD00DE00AE -00A200A300A500B700A900A700B600BC00BD00BE00AC005B005C005D00B400D7 -00F900410042004300440045004600470048004900AD00F400F600F200F300F5 -00A6004A004B004C004D004E004F00500051005200B900FB00FC00DB00FA00FF -00D900F70053005400550056005700580059005A00B200D400D600D200D300D5 -003000310032003300340035003600370038003900B3007B00DC007D00DA007E diff --git a/src/runtime/tcl_library/encoding/euc-cn.enc b/src/runtime/tcl_library/encoding/euc-cn.enc deleted file mode 100644 index ff0f9847..00000000 --- a/src/runtime/tcl_library/encoding/euc-cn.enc +++ /dev/null @@ -1,1397 +0,0 @@ -# Encoding file: euc-cn, multi-byte -M -003F 0 82 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300230FB02C902C700A8300330052015FF5E2225202620182019 -201C201D3014301530083009300A300B300C300D300E300F3016301730103011 -00B100D700F72236222722282211220F222A222922082237221A22A522252220 -23122299222B222E2261224C2248223D221D2260226E226F22642265221E2235 -22342642264000B0203220332103FF0400A4FFE0FFE1203000A7211626062605 -25CB25CF25CE25C725C625A125A025B325B2203B219221902191219330130000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000024882489248A248B248C248D248E248F2490249124922493249424952496 -249724982499249A249B247424752476247724782479247A247B247C247D247E -247F248024812482248324842485248624872460246124622463246424652466 -2467246824690000000032203221322232233224322532263227322832290000 -00002160216121622163216421652166216721682169216A216B000000000000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FFE5FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFF3CFF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000010100E101CE00E0011300E9011B00E8012B00ED01D000EC014D00F301D2 -00F2016B00FA01D400F901D601D801DA01DC00FC00EA00000000000000000000 -0000000000000000000031053106310731083109310A310B310C310D310E310F -3110311131123113311431153116311731183119311A311B311C311D311E311F -3120312131223123312431253126312731283129000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000002500250125022503250425052506250725082509250A250B -250C250D250E250F2510251125122513251425152516251725182519251A251B -251C251D251E251F2520252125222523252425252526252725282529252A252B -252C252D252E252F2530253125322533253425352536253725382539253A253B -253C253D253E253F2540254125422543254425452546254725482549254A254B -0000000000000000000000000000000000000000000000000000000000000000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000554A963F57C3632854CE550954C07691764C853C77EE827E788D72319698 -978D6C285B894FFA630966975CB880FA684880AE660276CE51F9655671AC7FF1 -888450B2596561CA6FB382AD634C625253ED54277B06516B75A45DF462D48DCB -9776628A8019575D97387F627238767D67CF767E64464F708D2562DC7A176591 -73ED642C6273822C9881677F7248626E62CC4F3474E3534A529E7ECA90A65E2E -6886699C81807ED168D278C5868C9551508D8C2482DE80DE5305891252650000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000858496F94FDD582199715B9D62B162A566B48C799C8D7206676F789160B2 -535153178F8880CC8D1D94A1500D72C8590760EB711988AB595482EF672C7B28 -5D297EF7752D6CF58E668FF8903C9F3B6BD491197B145F7C78A784D6853D6BD5 -6BD96BD65E015E8775F995ED655D5F0A5FC58F9F58C181C2907F965B97AD8FB9 -7F168D2C62414FBF53D8535E8FA88FA98FAB904D68075F6A819888689CD6618B -522B762A5F6C658C6FD26EE85BBE6448517551B067C44E1979C9997C70B30000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075C55E7673BB83E064AD62E894B56CE2535A52C3640F94C27B944F2F5E1B -82368116818A6E246CCA9A736355535C54FA886557E04E0D5E036B657C3F90E8 -601664E6731C88C16750624D8D22776C8E2991C75F6983DC8521991053C28695 -6B8B60ED60E8707F82CD82314ED36CA785CF64CD7CD969FD66F9834953957B56 -4FA7518C6D4B5C428E6D63D253C9832C833667E578B4643D5BDF5C945DEE8BE7 -62C667F48C7A640063BA8749998B8C177F2094F24EA7961098A4660C73160000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000573A5C1D5E38957F507F80A05382655E7545553150218D856284949E671D -56326F6E5DE2543570928F66626F64A463A35F7B6F8890F481E38FB05C186668 -5FF16C8996488D81886C649179F057CE6A59621054484E587A0B60E96F848BDA -627F901E9A8B79E4540375F4630153196C608FDF5F1B9A70803B9F7F4F885C3A -8D647FC565A570BD514551B2866B5D075BA062BD916C75748E0C7A2061017B79 -4EC77EF877854E1181ED521D51FA6A7153A88E87950496CF6EC19664695A0000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000784050A877D7641089E6590463E35DDD7A7F693D4F20823955984E3275AE -7A975E625E8A95EF521B5439708A6376952457826625693F918755076DF37EAF -882262337EF075B5832878C196CC8F9E614874F78BCD6B64523A8D506B21806A -847156F153064ECE4E1B51D17C97918B7C074FC38E7F7BE17A9C64675D1450AC -810676017CB96DEC7FE067515B585BF878CB64AE641363AA632B9519642D8FBE -7B5476296253592754466B7950A362345E266B864EE38D37888B5F85902E0000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006020803D62C54E39535590F863B880C665E66C2E4F4660EE6DE18BDE5F39 -86CB5F536321515A83616863520063638E4850125C9B79775BFC52307A3B60BC -905376D75FB75F9776848E6C706F767B7B4977AA51F3909358244F4E6EF48FEA -654C7B1B72C46DA47FDF5AE162B55E95573084827B2C5E1D5F1F90127F1498A0 -63826EC7789870B95178975B57AB75354F4375385E9760E659606DC06BBF7889 -53FC96D551CB52016389540A94938C038DCC7239789F87768FED8C0D53E00000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E0176EF53EE948998769F0E952D5B9A8BA24E224E1C51AC846361C252A8 -680B4F97606B51BB6D1E515C6296659796618C46901775D890FD77636BD2728A -72EC8BFB583577798D4C675C9540809A5EA66E2159927AEF77ED953B6BB565AD -7F0E58065151961F5BF958A954288E726566987F56E4949D76FE9041638754C6 -591A593A579B8EB267358DFA8235524160F0581586FE5CE89E454FC4989D8BB9 -5A2560765384627C904F9102997F6069800C513F80335C1499756D314E8C0000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008D3053D17F5A7B4F4F104E4F96006CD573D085E95E06756A7FFB6A0A77FE -94927E4151E170E653CD8FD483038D2972AF996D6CDB574A82B365B980AA623F -963259A84EFF8BBF7EBA653E83F2975E556198DE80A5532A8BFD542080BA5E9F -6CB88D3982AC915A54296C1B52067EB7575F711A6C7E7C89594B4EFD5FFF6124 -7CAA4E305C0167AB87025CF0950B98CE75AF70FD902251AF7F1D8BBD594951E4 -4F5B5426592B657780A45B75627662C28F905E456C1F7B264F0F4FD8670D0000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D6E6DAA798F88B15F17752B629A8F854FEF91DC65A7812F81515E9C8150 -8D74526F89868D4B590D50854ED8961C723681798D1F5BCC8BA3964459877F1A -54905676560E8BE565396982949976D66E895E727518674667D17AFF809D8D76 -611F79C665628D635188521A94A27F38809B7EB25C976E2F67607BD9768B9AD8 -818F7F947CD5641E95507A3F544A54E56B4C640162089E3D80F3759952729769 -845B683C86E49601969494EC4E2A54047ED968398DDF801566F45E9A7FB90000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000057C2803F68975DE5653B529F606D9F9A4F9B8EAC516C5BAB5F135DE96C5E -62F18D21517194A952FE6C9F82DF72D757A267848D2D591F8F9C83C754957B8D -4F306CBD5B6459D19F1353E486CA9AA88C3780A16545987E56FA96C7522E74DC -52505BE1630289024E5662D0602A68FA51735B9851A089C27BA199867F5060EF -704C8D2F51495E7F901B747089C4572D78455F529F9F95FA8F689B3C8BE17678 -684267DC8DEA8D35523D8F8A6EDA68CD950590ED56FD679C88F98FC754C80000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009AB85B696D776C264EA55BB39A87916361A890AF97E9542B6DB55BD251FD -558A7F557FF064BC634D65F161BE608D710A6C576C49592F676D822A58D5568E -8C6A6BEB90DD597D801753F76D695475559D837783CF683879BE548C4F555408 -76D28C8996026CB36DB88D6B89109E648D3A563F9ED175D55F8872E0606854FC -4EA86A2A886160528F7054C470D886799E3F6D2A5B8F5F187EA255894FAF7334 -543C539A5019540E547C4E4E5FFD745A58F6846B80E1877472D07CCA6E560000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F27864E552C62A44E926CAA623782B154D7534E733E6ED1753B52125316 -8BDD69D05F8A60006DEE574F6B2273AF68538FD87F13636260A3552475EA8C62 -71156DA35BA65E7B8352614C9EC478FA87577C27768751F060F6714C66435E4C -604D8C0E707063258F895FBD606286D456DE6BC160946167534960E066668D3F -79FD4F1A70E96C478BB38BF27ED88364660F5A5A9B426D516DF78C416D3B4F19 -706B83B7621660D1970D8D27797851FB573E57FA673A75787A3D79EF7B950000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000808C99658FF96FC08BA59E2159EC7EE97F095409678168D88F917C4D96C6 -53CA602575BE6C7253735AC97EA7632451E0810A5DF184DF628051805B634F0E -796D524260B86D4E5BC45BC28BA18BB065E25FCC964559937EE77EAA560967B7 -59394F735BB652A0835A988A8D3E753294BE50477A3C4EF767B69A7E5AC16B7C -76D1575A5C167B3A95F4714E517C80A9827059787F04832768C067EC78B17877 -62E363617B804FED526A51CF835069DB92748DF58D3189C1952E7BAD4EF60000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000506582305251996F6E106E856DA75EFA50F559DC5C066D466C5F7586848B -686859568BB253209171964D854969127901712680F64EA490CA6D479A845A07 -56BC640594F077EB4FA5811A72E189D2997A7F347EDE527F655991758F7F8F83 -53EB7A9663ED63A5768679F888579636622A52AB8282685467706377776B7AED -6D017ED389E359D0621285C982A5754C501F4ECB75A58BEB5C4A5DFE7B4B65A4 -91D14ECA6D25895F7D2795264EC58C288FDB9773664B79818FD170EC6D780000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C3D52B283465162830E775B66769CB84EAC60CA7CBE7CB37ECF4E958B66 -666F988897595883656C955C5F8475C997567ADF7ADE51C070AF7A9863EA7A76 -7EA0739697ED4E4570784E5D915253A9655165E781FC8205548E5C31759A97A0 -62D872D975BD5C459A7983CA5C40548077E94E3E6CAE805A62D2636E5DE85177 -8DDD8E1E952F4FF153E560E770AC526763509E435A1F5026773753777EE26485 -652B628963985014723589C951B38BC07EDD574783CC94A7519B541B5CFB0000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004FCA7AE36D5A90E19A8F55805496536154AF5F0063E9697751EF6168520A -582A52D8574E780D770B5EB761777CE0625B62974EA27095800362F770E49760 -577782DB67EF68F578D5989779D158F354B353EF6E34514B523B5BA28BFE80AF -554357A660735751542D7A7A60505B5463A762A053E362635BC767AF54ED7A9F -82E691775E9388E4593857AE630E8DE880EF57577B774FA95FEB5BBD6B3E5321 -7B5072C2684677FF773665F751B54E8F76D45CBF7AA58475594E9B4150800000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000998861276E8357646606634656F062EC62695ED39614578362C955878721 -814A8FA3556683B167658D5684DD5A6A680F62E67BEE961151706F9C8C3063FD -89C861D27F0670C26EE57405699472FC5ECA90CE67176D6A635E52B372628001 -4F6C59E5916A70D96D9D52D24E5096F7956D857E78CA7D2F5121579264C2808B -7C7B6CEA68F1695E51B7539868A872819ECE7BF172F879BB6F137406674E91CC -9CA4793C83898354540F68174E3D538952B1783E5386522950884F8B4FD00000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075E27ACB7C926CA596B6529B748354E94FE9805483B28FDE95705EC9601C -6D9F5E18655B813894FE604B70BC7EC37CAE51C968817CB1826F4E248F8691CF -667E4EAE8C0564A9804A50DA759771CE5BE58FBD6F664E86648295635ED66599 -521788C270C852A3730E7433679778F797164E3490BB9CDE6DCB51DB8D41541D -62CE73B283F196F69F8494C34F367F9A51CC707596755CAD988653E64EE46E9C -740969B4786B998F7559521876246D4167F3516D9F99804B54997B3C7ABF0000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009686578462E29647697C5A0464027BD36F0F964B82A6536298855E907089 -63B35364864F9C819E93788C97328DEF8D429E7F6F5E79845F559646622E9A74 -541594DD4FA365C55C655C617F1586516C2F5F8B73876EE47EFF5CE6631B5B6A -6EE653754E7163A0756562A18F6E4F264ED16CA67EB68BBA841D87BA7F57903B -95237BA99AA188F8843D6D1B9A867EDC59889EBB739B780186829A6C9A82561B -541757CB4E709EA653568FC881097792999286EE6EE1851366FC61626F2B0000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008C298292832B76F26C135FD983BD732B8305951A6BDB77DB94C6536F8302 -51925E3D8C8C8D384E4873AB679A68859176970971646CA177095A9295416BCF -7F8E66275BD059B95A9A95E895F74EEC840C84996AAC76DF9530731B68A65B5F -772F919A97617CDC8FF78C1C5F257C7379D889C56CCC871C5BC65E4268C97720 -7EF55195514D52C95A297F05976282D763CF778485D079D26E3A5E9959998511 -706D6C1162BF76BF654F60AF95FD660E879F9E2394ED540D547D8C2C64780000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647986116A21819C78E864699B5462B9672B83AB58A89ED86CAB6F205BDE -964C8C0B725F67D062C772614EA959C66BCD589366AE5E5552DF6155672876EE -776672677A4662FF54EA545094A090A35A1C7EB36C164E435976801059485357 -753796BE56CA63208111607C95F96DD65462998151855AE980FD59AE9713502A -6CE55C3C62DF4F60533F817B90066EBA852B62C85E7478BE64B5637B5FF55A18 -917F9E1F5C3F634F80425B7D556E954A954D6D8560A867E072DE51DD5B810000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062E76CDE725B626D94AE7EBD81136D53519C5F04597452AA601259736696 -8650759F632A61E67CEF8BFA54E66B279E256BB485D5545550766CA4556A8DB4 -722C5E156015743662CD6392724C5F986E436D3E65006F5876D878D076FC7554 -522453DB4E535E9E65C1802A80D6629B5486522870AE888D8DD16CE1547880DA -57F988F48D54966A914D4F696C9B55B776C6783062A870F96F8E5F6D84EC68DA -787C7BF781A8670B9E4F636778B0576F78129739627962AB528874356BD70000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005564813E75B276AE533975DE50FB5C418B6C7BC7504F72479A9798D86F02 -74E27968648777A562FC98918D2B54C180584E52576A82F9840D5E7351ED74F6 -8BC45C4F57616CFC98875A4678349B448FEB7C955256625194FA4EC683868461 -83E984B257D467345703666E6D668C3166DD7011671F6B3A6816621A59BB4E03 -51C46F0667D26C8F517668CB59476B6775665D0E81109F5065D7794879419A91 -8D775C824E5E4F01542F5951780C56686C148FC45F036C7D6CE38BAB63900000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060706D3D72756266948E94C553438FC17B7E4EDF8C264E7E9ED494B194B3 -524D6F5C90636D458C3458115D4C6B206B4967AA545B81547F8C589985375F3A -62A26A47953965726084686577A74E544FA85DE7979864AC7FD85CED4FCF7A8D -520783044E14602F7A8394A64FB54EB279E6743452E482B964D279BD5BDD6C81 -97528F7B6C22503E537F6E0564CE66746C3060C598778BF75E86743C7A7779CB -4E1890B174036C4256DA914B6CC58D8B533A86C666F28EAF5C489A716E200000 -C8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053D65A369F8B8DA353BB570898A76743919B6CC9516875CA62F372AC5238 -529D7F3A7094763853749E4A69B7786E96C088D97FA4713671C3518967D374E4 -58E4651856B78BA9997662707ED560F970ED58EC4EC14EBA5FCD97E74EFB8BA4 -5203598A7EAB62544ECD65E5620E833884C98363878D71946EB65BB97ED25197 -63C967D480898339881551125B7A59828FB14E736C5D516589258F6F962E854A -745E951095F06DA682E55F3164926D128428816E9CC3585E8D5B4E0953C10000 -C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F1E6563685155D34E2764149A9A626B5AC2745F82726DA968EE50E7838E -7802674052396C997EB150BB5565715E7B5B665273CA82EB67495C715220717D -886B95EA965564C58D6181B355846C5562477F2E58924F2455468D4F664C4E0A -5C1A88F368A2634E7A0D70E7828D52FA97F65C1154E890B57ECD59628D4A86C7 -820C820D8D6664445C0461516D89793E8BBE78377533547B4F388EAB6DF15A20 -7EC5795E6C885BA15A76751A80BE614E6E1758F0751F7525727253477EF30000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000770176DB526980DC57235E08593172EE65BD6E7F8BD75C388671534177F3 -62FE65F64EC098DF86805B9E8BC653F277E24F7F5C4E9A7659CB5F0F793A58EB -4E1667FF4E8B62ED8A93901D52BF662F55DC566C90024ED54F8D91CA99706C0F -5E0260435BA489C68BD56536624B99965B885BFF6388552E53D77626517D852C -67A268B36B8A62928F9353D482126DD1758F4E668D4E5B70719F85AF669166D9 -7F7287009ECD9F205C5E672F8FF06811675F620D7AD658855EB665706F310000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060555237800D6454887075295E05681362F4971C53CC723D8C016C347761 -7A0E542E77AC987A821C8BF47855671470C165AF64955636601D79C153F84E1D -6B7B80865BFA55E356DB4F3A4F3C99725DF3677E80386002988290015B8B8BBC -8BF5641C825864DE55FD82CF91654FD77D20901F7C9F50F358516EAF5BBF8BC9 -80839178849C7B97867D968B968F7EE59AD3788E5C817A57904296A7795F5B59 -635F7B0B84D168AD55067F2974107D2295016240584C4ED65B83597958540000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000736D631E8E4B8E0F80CE82D462AC53F06CF0915E592A60016C70574D644A -8D2A762B6EE9575B6A8075F06F6D8C2D8C0857666BEF889278B363A253F970AD -6C645858642A580268E0819B55107CD650188EBA6DCC8D9F70EB638F6D9B6ED4 -7EE68404684390036DD896768BA85957727985E4817E75BC8A8A68AF52548E22 -951163D098988E44557C4F5366FF568F60D56D9552435C4959296DFB586B7530 -751C606C82148146631167618FE2773A8DF38D3494C15E165385542C70C30000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C405EF7505C4EAD5EAD633A8247901A6850916E77B3540C94DC5F647AE5 -687663457B527EDF75DB507762955934900F51F879C37A8156FE5F9290146D82 -5C60571F541051546E4D56E263A89893817F8715892A9000541E5C6F81C062D6 -625881319E3596409A6E9A7C692D59A562D3553E631654C786D96D3C5A0374E6 -889C6B6A59168C4C5F2F6E7E73A9987D4E3870F75B8C7897633D665A769660CB -5B9B5A494E0781556C6A738B4EA167897F515F8065FA671B5FD859845A010000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005DCD5FAE537197E68FDD684556F4552F60DF4E3A6F4D7EF482C7840E59D4 -4F1F4F2A5C3E7EAC672A851A5473754F80C355829B4F4F4D6E2D8C135C096170 -536B761F6E29868A658795FB7EB9543B7A337D0A95EE55E17FC174EE631D8717 -6DA17A9D621165A1536763E16C835DEB545C94A84E4C6C618BEC5C4B65E0829C -68A7543E54346BCB6B664E9463425348821E4F0D4FAE575E620A96FE66647269 -52FF52A1609F8BEF661471996790897F785277FD6670563B54389521727A0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A00606F5E0C6089819D591560DC718470EF6EAA6C5072806A8488AD5E2D -4E605AB3559C94E36D177CFB9699620F7EC6778E867E5323971E8F9666875CE1 -4FA072ED4E0B53A6590F54136380952851484ED99C9C7EA454B88D2488548237 -95F26D8E5F265ACC663E966973B0732E53BF817A99857FA15BAA967796507EBF -76F853A2957699997BB189446E584E617FD479658BE660F354CD4EAB98795DF7 -6A6150CF54118C618427785D9704524A54EE56A395006D885BB56DC666530000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C0F5B5D6821809655787B11654869544E9B6B47874E978B534F631F643A -90AA659C80C18C10519968B0537887F961C86CC46CFB8C225C5185AA82AF950C -6B238F9B65B05FFB5FC34FE18845661F8165732960FA51745211578B5F6290A2 -884C91925E78674F602759D3514451F680F853086C7996C4718A4F114FEE7F9E -673D55C5950879C088967EE3589F620C9700865A5618987B5F908BB884C49157 -53D965ED5E8F755C60647D6E5A7F7EEA7EED8F6955A75BA360AC65CB73840000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009009766377297EDA9774859B5B667A7496EA884052CB718F5FAA65EC8BE2 -5BFB9A6F5DE16B896C5B8BAD8BAF900A8FC5538B62BC9E269E2D54404E2B82BD -7259869C5D1688596DAF96C554D14E9A8BB6710954BD960970DF6DF976D04E25 -781487125CA95EF68A00989C960E708E6CBF594463A9773C884D6F1482735830 -71D5538C781A96C155015F6671305BB48C1A9A8C6B83592E9E2F79E76768626C -4F6F75A17F8A6D0B96336C274EF075D2517B68376F3E90808170599674760000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064475C2790657A918C2359DA54AC8200836F898180006930564E80367237 -91CE51B64E5F987563964E1A53F666F3814B591C6DB24E0058F9533B63D694F1 -4F9D4F0A886398905937905779FB4EEA80F075916C825B9C59E85F5D69058681 -501A5DF24E5977E34EE5827A6291661390915C794EBF5F7981C69038808475AB -4EA688D4610F6BC55FC64E4976CA6EA28BE38BAE8C0A8BD15F027FFC7FCC7ECE -8335836B56E06BB797F3963459FB541F94F66DEB5BC5996E5C395F1596900000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000537082F16A315A749E705E947F2883B984248425836787478FCE8D6276C8 -5F719896786C662054DF62E54F6381C375C85EB896CD8E0A86F9548F6CF36D8C -6C38607F52C775285E7D4F1860A05FE75C24753190AE94C072B96CB96E389149 -670953CB53F34F5191C98BF153C85E7C8FC26DE44E8E76C26986865E611A8206 -4F594FDE903E9C7C61096E1D6E1496854E885A3196E84E0E5C7F79B95B878BED -7FBD738957DF828B90C15401904755BB5CEA5FA161086B3272F180B28A890000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D745BD388D598848C6B9A6D9E336E0A51A4514357A38881539F63F48F95 -56ED54585706733F6E907F188FDC82D1613F6028966266F07EA68D8A8DC394A5 -5CB37CA4670860A6960580184E9190E75300966851418FD08574915D665597F5 -5B55531D78386742683D54C9707E5BB08F7D518D572854B1651266828D5E8D43 -810F846C906D7CDF51FF85FB67A365E96FA186A48E81566A90207682707671E5 -8D2362E952196CFD8D3C600E589E618E66FE8D60624E55B36E23672D8F670000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094E195F87728680569A8548B4E4D70B88BC86458658B5B857A84503A5BE8 -77BB6BE18A797C986CBE76CF65A98F975D2D5C5586386808536062187AD96E5B -7EFD6A1F7AE05F706F335F20638C6DA867564E085E108D264ED780C07634969C -62DB662D627E6CBC8D7571677F695146808753EC906E629854F286F08F998005 -951785178FD96D5973CD659F771F7504782781FB8D1E94884FA6679575B98BCA -9707632F9547963584B8632377415F8172F04E896014657462EF6B63653F0000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E2775C790D18BC1829D679D652F5431871877E580A281026C414E4B7EC7 -804C76F4690D6B966267503C4F84574063076B628DBE53EA65E87EB85FD7631A -63B781F381F47F6E5E1C5CD95236667A79E97A1A8D28709975D46EDE6CBB7A92 -4E2D76C55FE0949F88777EC879CD80BF91CD4EF24F17821F54685DDE6D328BCC -7CA58F7480985E1A549276B15B99663C9AA473E0682A86DB6731732A8BF88BDB -90107AF970DB716E62C477A956314E3B845767F152A986C08D2E94F87B510000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F4F6CE8795D9A7B6293722A62FD4E1378168F6C64B08D5A7BC668695E84 -88C55986649E58EE72B6690E95258FFD8D5857607F008C0651C6634962D95353 -684C74228301914C55447740707C6D4A517954A88D4459FF6ECB6DC45B5C7D2B -4ED47C7D6ED35B5081EA6E0D5B579B0368D58E2A5B977EFC603B7EB590B98D70 -594F63CD79DF8DB3535265CF79568BC5963B7EC494BB7E825634918967007F6A -5C0A907566285DE64F5067DE505A4F5C57505EA7000000000000000000000000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E8D4E0C51404E105EFF53454E154E984E1E9B325B6C56694E2879BA4E3F -53154E47592D723B536E6C1056DF80E499976BD3777E9F174E364E9F9F104E5C -4E694E9382885B5B556C560F4EC4538D539D53A353A553AE97658D5D531A53F5 -5326532E533E8D5C5366536352025208520E522D5233523F5240524C525E5261 -525C84AF527D528252815290529351827F544EBB4EC34EC94EC24EE84EE14EEB -4EDE4F1B4EF34F224F644EF54F254F274F094F2B4F5E4F6765384F5A4F5D0000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F5F4F574F324F3D4F764F744F914F894F834F8F4F7E4F7B4FAA4F7C4FAC -4F944FE64FE84FEA4FC54FDA4FE34FDC4FD14FDF4FF85029504C4FF3502C500F -502E502D4FFE501C500C50255028507E504350555048504E506C507B50A550A7 -50A950BA50D6510650ED50EC50E650EE5107510B4EDD6C3D4F584F654FCE9FA0 -6C467C74516E5DFD9EC999985181591452F9530D8A07531051EB591951554EA0 -51564EB3886E88A44EB5811488D279805B3488037FB851AB51B151BD51BC0000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051C7519651A251A58BA08BA68BA78BAA8BB48BB58BB78BC28BC38BCB8BCF -8BCE8BD28BD38BD48BD68BD88BD98BDC8BDF8BE08BE48BE88BE98BEE8BF08BF3 -8BF68BF98BFC8BFF8C008C028C048C078C0C8C0F8C118C128C148C158C168C19 -8C1B8C188C1D8C1F8C208C218C258C278C2A8C2B8C2E8C2F8C328C338C358C36 -5369537A961D962296219631962A963D963C964296499654965F9667966C9672 -96749688968D969796B09097909B909D909990AC90A190B490B390B690BA0000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090B890B090CF90C590BE90D090C490C790D390E690E290DC90D790DB90EB -90EF90FE91049122911E91239131912F913991439146520D594252A252AC52AD -52BE54FF52D052D652F053DF71EE77CD5EF451F551FC9B2F53B65F01755A5DEF -574C57A957A1587E58BC58C558D15729572C572A57335739572E572F575C573B -574257695785576B5786577C577B5768576D5776577357AD57A4578C57B257CF -57A757B4579357A057D557D857DA57D957D257B857F457EF57F857E457DD0000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000580B580D57FD57ED5800581E5819584458205865586C58815889589A5880 -99A89F1961FF8279827D827F828F828A82A88284828E82918297829982AB82B8 -82BE82B082C882CA82E3829882B782AE82CB82CC82C182A982B482A182AA829F -82C482CE82A482E1830982F782E4830F830782DC82F482D282D8830C82FB82D3 -8311831A83068314831582E082D5831C8351835B835C83088392833C83348331 -839B835E832F834F83478343835F834083178360832D833A8333836683650000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008368831B8369836C836A836D836E83B0837883B383B483A083AA8393839C -8385837C83B683A9837D83B8837B8398839E83A883BA83BC83C1840183E583D8 -58078418840B83DD83FD83D6841C84388411840683D483DF840F840383F883F9 -83EA83C583C0842683F083E1845C8451845A8459847384878488847A84898478 -843C844684698476848C848E8431846D84C184CD84D084E684BD84D384CA84BF -84BA84E084A184B984B4849784E584E3850C750D853884F08539851F853A0000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008556853B84FF84FC8559854885688564855E857A77A285438572857B85A4 -85A88587858F857985AE859C858585B985B785B085D385C185DC85FF86278605 -86298616863C5EFE5F08593C594180375955595A5958530F5C225C255C2C5C34 -624C626A629F62BB62CA62DA62D762EE632262F66339634B634363AD63F66371 -637A638E63B4636D63AC638A636963AE63BC63F263F863E063FF63C463DE63CE -645263C663BE64456441640B641B6420640C64266421645E6484646D64960000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647A64B764B8649964BA64C064D064D764E464E265096525652E5F0B5FD2 -75195F11535F53F153FD53E953E853FB541254165406544B5452545354545456 -54435421545754595423543254825494547754715464549A549B548454765466 -549D54D054AD54C254B454D254A754A654D354D4547254A354D554BB54BF54CC -54D954DA54DC54A954AA54A454DD54CF54DE551B54E7552054FD551454F35522 -5523550F55115527552A5567558F55B55549556D55415555553F5550553C0000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005537555655755576557755335530555C558B55D2558355B155B955885581 -559F557E55D65591557B55DF55BD55BE5594559955EA55F755C9561F55D155EB -55EC55D455E655DD55C455EF55E555F255F355CC55CD55E855F555E48F94561E -5608560C56015624562355FE56005627562D565856395657562C564D56625659 -565C564C5654568656645671566B567B567C5685569356AF56D456D756DD56E1 -56F556EB56F956FF5704570A5709571C5E0F5E195E145E115E315E3B5E3C0000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E375E445E545E5B5E5E5E615C8C5C7A5C8D5C905C965C885C985C995C91 -5C9A5C9C5CB55CA25CBD5CAC5CAB5CB15CA35CC15CB75CC45CD25CE45CCB5CE5 -5D025D035D275D265D2E5D245D1E5D065D1B5D585D3E5D345D3D5D6C5D5B5D6F -5D5D5D6B5D4B5D4A5D695D745D825D995D9D8C735DB75DC55F735F775F825F87 -5F895F8C5F955F995F9C5FA85FAD5FB55FBC88625F6172AD72B072B472B772B8 -72C372C172CE72CD72D272E872EF72E972F272F472F7730172F3730372FA0000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072FB731773137321730A731E731D7315732273397325732C733873317350 -734D73577360736C736F737E821B592598E7592459029963996799689969996A -996B996C99749977997D998099849987998A998D999099919993999499955E80 -5E915E8B5E965EA55EA05EB95EB55EBE5EB38D535ED25ED15EDB5EE85EEA81BA -5FC45FC95FD65FCF60035FEE60045FE15FE45FFE600560065FEA5FED5FF86019 -60356026601B600F600D6029602B600A603F602160786079607B607A60420000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000606A607D6096609A60AD609D60836092608C609B60EC60BB60B160DD60D8 -60C660DA60B4612061266115612360F46100610E612B614A617561AC619461A7 -61B761D461F55FDD96B395E995EB95F195F395F595F695FC95FE960396049606 -9608960A960B960C960D960F96129615961696179619961A4E2C723F62156C35 -6C546C5C6C4A6CA36C856C906C946C8C6C686C696C746C766C866CA96CD06CD4 -6CAD6CF76CF86CF16CD76CB26CE06CD66CFA6CEB6CEE6CB16CD36CEF6CFE0000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D396D276D0C6D436D486D076D046D196D0E6D2B6D4D6D2E6D356D1A6D4F -6D526D546D336D916D6F6D9E6DA06D5E6D936D946D5C6D606D7C6D636E1A6DC7 -6DC56DDE6E0E6DBF6DE06E116DE66DDD6DD96E166DAB6E0C6DAE6E2B6E6E6E4E -6E6B6EB26E5F6E866E536E546E326E256E446EDF6EB16E986EE06F2D6EE26EA5 -6EA76EBD6EBB6EB76ED76EB46ECF6E8F6EC26E9F6F626F466F476F246F156EF9 -6F2F6F366F4B6F746F2A6F096F296F896F8D6F8C6F786F726F7C6F7A6FD10000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FC96FA76FB96FB66FC26FE16FEE6FDE6FE06FEF701A7023701B70397035 -704F705E5B805B845B955B935BA55BB8752F9A9E64345BE45BEE89305BF08E47 -8B078FB68FD38FD58FE58FEE8FE48FE98FE68FF38FE890059004900B90269011 -900D9016902190359036902D902F9044905190529050906890589062905B66B9 -9074907D908290889083908B5F505F575F565F585C3B54AB5C505C595B715C63 -5C667FBC5F2A5F295F2D82745F3C9B3B5C6E59815983598D59A959AA59A30000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000599759CA59AB599E59A459D259B259AF59D759BE5A055A0659DD5A0859E3 -59D859F95A0C5A095A325A345A115A235A135A405A675A4A5A555A3C5A625A75 -80EC5AAA5A9B5A775A7A5ABE5AEB5AB25AD25AD45AB85AE05AE35AF15AD65AE6 -5AD85ADC5B095B175B165B325B375B405C155C1C5B5A5B655B735B515B535B62 -9A759A779A789A7A9A7F9A7D9A809A819A859A889A8A9A909A929A939A969A98 -9A9B9A9C9A9D9A9F9AA09AA29AA39AA59AA77E9F7EA17EA37EA57EA87EA90000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007EAD7EB07EBE7EC07EC17EC27EC97ECB7ECC7ED07ED47ED77EDB7EE07EE1 -7EE87EEB7EEE7EEF7EF17EF27F0D7EF67EFA7EFB7EFE7F017F027F037F077F08 -7F0B7F0C7F0F7F117F127F177F197F1C7F1B7F1F7F217F227F237F247F257F26 -7F277F2A7F2B7F2C7F2D7F2F7F307F317F327F337F355E7A757F5DDB753E9095 -738E739173AE73A2739F73CF73C273D173B773B373C073C973C873E573D9987C -740A73E973E773DE73BA73F2740F742A745B7426742574287430742E742C0000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000741B741A7441745C7457745574597477746D747E749C748E748074817487 -748B749E74A874A9749074A774D274BA97EA97EB97EC674C6753675E67486769 -67A56787676A6773679867A7677567A8679E67AD678B6777677C67F0680967D8 -680A67E967B0680C67D967B567DA67B367DD680067C367B867E2680E67C167FD -6832683368606861684E6862684468646883681D68556866684168676840683E -684A6849682968B5688F687468776893686B68C2696E68FC691F692068F90000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000692468F0690B6901695768E369106971693969606942695D6984696B6980 -69986978693469CC6987698869CE6989696669636979699B69A769BB69AB69AD -69D469B169C169CA69DF699569E0698D69FF6A2F69ED6A176A186A6569F26A44 -6A3E6AA06A506A5B6A356A8E6A796A3D6A286A586A7C6A916A906AA96A976AAB -733773526B816B826B876B846B926B936B8D6B9A6B9B6BA16BAA8F6B8F6D8F71 -8F728F738F758F768F788F778F798F7A8F7C8F7E8F818F828F848F878F8B0000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008F8D8F8E8F8F8F988F9A8ECE620B6217621B621F6222622162256224622C -81E774EF74F474FF750F75117513653465EE65EF65F0660A6619677266036615 -6600708566F7661D66346631663666358006665F66546641664F665666616657 -66776684668C66A7669D66BE66DB66DC66E666E98D328D338D368D3B8D3D8D40 -8D458D468D488D498D478D4D8D558D5989C789CA89CB89CC89CE89CF89D089D1 -726E729F725D7266726F727E727F7284728B728D728F72926308633263B00000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000643F64D880046BEA6BF36BFD6BF56BF96C056C076C066C0D6C156C186C19 -6C1A6C216C296C246C2A6C3265356555656B724D72527256723086625216809F -809C809380BC670A80BD80B180AB80AD80B480B780E780E880E980EA80DB80C2 -80C480D980CD80D7671080DD80EB80F180F480ED810D810E80F280FC67158112 -8C5A8136811E812C811881328148814C815381748159815A817181608169817C -817D816D8167584D5AB58188818281916ED581A381AA81CC672681CA81BB0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081C181A66B246B376B396B436B466B5998D198D298D398D598D998DA6BB3 -5F406BC289F365909F51659365BC65C665C465C365CC65CE65D265D67080709C -7096709D70BB70C070B770AB70B170E870CA711071137116712F71317173715C -716871457172714A7178717A719871B371B571A871A071E071D471E771F9721D -7228706C7118716671B9623E623D624362486249793B794079467949795B795C -7953795A796279577960796F7967797A7985798A799A79A779B35FD15FD00000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000603C605D605A606760416059606360AB6106610D615D61A9619D61CB61D1 -62068080807F6C936CF66DFC77F677F87800780978177818781165AB782D781C -781D7839783A783B781F783C7825782C78237829784E786D7856785778267850 -7847784C786A789B7893789A7887789C78A178A378B278B978A578D478D978C9 -78EC78F2790578F479137924791E79349F9B9EF99EFB9EFC76F17704770D76F9 -77077708771A77227719772D7726773577387750775177477743775A77680000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077627765777F778D777D7780778C7791779F77A077B077B577BD753A7540 -754E754B7548755B7572757975837F587F617F5F8A487F687F747F717F797F81 -7F7E76CD76E58832948594869487948B948A948C948D948F9490949494979495 -949A949B949C94A394A494AB94AA94AD94AC94AF94B094B294B494B694B794B8 -94B994BA94BC94BD94BF94C494C894C994CA94CB94CC94CD94CE94D094D194D2 -94D594D694D794D994D894DB94DE94DF94E094E294E494E594E794E894EA0000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094E994EB94EE94EF94F394F494F594F794F994FC94FD94FF950395029506 -95079509950A950D950E950F951295139514951595169518951B951D951E951F -9522952A952B9529952C953195329534953695379538953C953E953F95429535 -9544954595469549954C954E954F9552955395549556955795589559955B955E -955F955D95619562956495659566956795689569956A956B956C956F95719572 -9573953A77E777EC96C979D579ED79E379EB7A065D477A037A027A1E7A140000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A397A377A519ECF99A57A707688768E7693769976A474DE74E0752C9E20 -9E229E289E299E2A9E2B9E2C9E329E319E369E389E379E399E3A9E3E9E419E42 -9E449E469E479E489E499E4B9E4C9E4E9E519E559E579E5A9E5B9E5C9E5E9E63 -9E669E679E689E699E6A9E6B9E6C9E719E6D9E7375927594759675A0759D75AC -75A375B375B475B875C475B175B075C375C275D675CD75E375E875E675E475EB -75E7760375F175FC75FF761076007605760C7617760A76257618761576190000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000761B763C762276207640762D7630763F76357643763E7633764D765E7654 -765C7656766B766F7FCA7AE67A787A797A807A867A887A957AA67AA07AAC7AA8 -7AAD7AB3886488698872887D887F888288A288C688B788BC88C988E288CE88E3 -88E588F1891A88FC88E888FE88F0892189198913891B890A8934892B89368941 -8966897B758B80E576B276B477DC801280148016801C80208022802580268027 -802980288031800B803580438046804D80528069807189839878988098830000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009889988C988D988F9894989A989B989E989F98A198A298A598A6864D8654 -866C866E867F867A867C867B86A8868D868B86AC869D86A786A386AA869386A9 -86B686C486B586CE86B086BA86B186AF86C986CF86B486E986F186F286ED86F3 -86D0871386DE86F486DF86D886D18703870786F88708870A870D87098723873B -871E8725872E871A873E87488734873187298737873F87828722877D877E877B -87608770874C876E878B87538763877C876487598765879387AF87A887D20000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000087C68788878587AD8797878387AB87E587AC87B587B387CB87D387BD87D1 -87C087CA87DB87EA87E087EE8816881387FE880A881B88218839883C7F367F42 -7F447F4582107AFA7AFD7B087B037B047B157B0A7B2B7B0F7B477B387B2A7B19 -7B2E7B317B207B257B247B337B3E7B1E7B587B5A7B457B757B4C7B5D7B607B6E -7B7B7B627B727B717B907BA67BA77BB87BAC7B9D7BA87B857BAA7B9C7BA27BAB -7BB47BD17BC17BCC7BDD7BDA7BE57BE67BEA7C0C7BFE7BFC7C0F7C167C0B0000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007C1F7C2A7C267C387C417C4081FE82018202820481EC8844822182228223 -822D822F8228822B8238823B82338234823E82448249824B824F825A825F8268 -887E8885888888D888DF895E7F9D7F9F7FA77FAF7FB07FB27C7C65497C917C9D -7C9C7C9E7CA27CB27CBC7CBD7CC17CC77CCC7CCD7CC87CC57CD77CE8826E66A8 -7FBF7FCE7FD57FE57FE17FE67FE97FEE7FF37CF87D777DA67DAE7E477E9B9EB8 -9EB48D738D848D948D918DB18D678D6D8C478C49914A9150914E914F91640000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009162916191709169916F917D917E917291749179918C91859190918D9191 -91A291A391AA91AD91AE91AF91B591B491BA8C559E7E8DB88DEB8E058E598E69 -8DB58DBF8DBC8DBA8DC48DD68DD78DDA8DDE8DCE8DCF8DDB8DC68DEC8DF78DF8 -8DE38DF98DFB8DE48E098DFD8E148E1D8E1F8E2C8E2E8E238E2F8E3A8E408E39 -8E358E3D8E318E498E418E428E518E528E4A8E708E768E7C8E6F8E748E858E8F -8E948E908E9C8E9E8C788C828C8A8C858C988C94659B89D689DE89DA89DC0000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089E589EB89EF8A3E8B26975396E996F396EF970697019708970F970E972A -972D9730973E9F809F839F859F869F879F889F899F8A9F8C9EFE9F0B9F0D96B9 -96BC96BD96CE96D277BF96E0928E92AE92C8933E936A93CA938F943E946B9C7F -9C829C859C869C879C887A239C8B9C8E9C909C919C929C949C959C9A9C9B9C9E -9C9F9CA09CA19CA29CA39CA59CA69CA79CA89CA99CAB9CAD9CAE9CB09CB19CB2 -9CB39CB49CB59CB69CB79CBA9CBB9CBC9CBD9CC49CC59CC69CC79CCA9CCB0000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009CCC9CCD9CCE9CCF9CD09CD39CD49CD59CD79CD89CD99CDC9CDD9CDF9CE2 -977C978597919792979497AF97AB97A397B297B49AB19AB09AB79E589AB69ABA -9ABC9AC19AC09AC59AC29ACB9ACC9AD19B459B439B479B499B489B4D9B5198E8 -990D992E995599549ADF9AE19AE69AEF9AEB9AFB9AED9AF99B089B0F9B139B1F -9B239EBD9EBE7E3B9E829E879E889E8B9E9293D69E9D9E9F9EDB9EDC9EDD9EE0 -9EDF9EE29EE99EE79EE59EEA9EEF9F229F2C9F2F9F399F379F3D9F3E9F440000 diff --git a/src/runtime/tcl_library/encoding/euc-jp.enc b/src/runtime/tcl_library/encoding/euc-jp.enc deleted file mode 100644 index d4337d99..00000000 --- a/src/runtime/tcl_library/encoding/euc-jp.enc +++ /dev/null @@ -1,1353 +0,0 @@ -# Encoding file: euc-jp, multi-byte -M -003F 0 79 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF61FF62FF63FF64FF65FF66FF67FF68FF69FF6AFF6BFF6CFF6DFF6EFF6F -FF70FF71FF72FF73FF74FF75FF76FF77FF78FF79FF7AFF7BFF7CFF7DFF7EFF7F -FF80FF81FF82FF83FF84FF85FF86FF87FF88FF89FF8AFF8BFF8CFF8DFF8EFF8F -FF90FF91FF92FF93FF94FF95FF96FF97FF98FF99FF9AFF9BFF9CFF9DFF9EFF9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000300030013002FF0CFF0E30FBFF1AFF1BFF1FFF01309B309C00B4FF4000A8 -FF3EFFE3FF3F30FD30FE309D309E30034EDD30053006300730FC20152010FF0F -FF3C301C2016FF5C2026202520182019201C201DFF08FF0930143015FF3BFF3D -FF5BFF5D30083009300A300B300C300D300E300F30103011FF0B221200B100D7 -00F7FF1D2260FF1CFF1E22662267221E22342642264000B0203220332103FFE5 -FF0400A200A3FF05FF03FF06FF0AFF2000A72606260525CB25CF25CE25C70000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000025C625A125A025B325B225BD25BC203B3012219221902191219330130000 -00000000000000000000000000000000000000002208220B2286228722822283 -222A2229000000000000000000000000000000002227222800AC21D221D42200 -220300000000000000000000000000000000000000000000222022A523122202 -220722612252226A226B221A223D221D2235222B222C00000000000000000000 -00000000212B2030266F266D266A2020202100B6000000000000000025EF0000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19000000000000000000000000 -0000FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3A00000000000000000000 -0000FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5A00000000000000000000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000025002502250C251025182514251C252C25242534253C25012503250F2513 -251B251725232533252B253B254B2520252F25282537253F251D253025252538 -2542000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E9C55165A03963F54C0611B632859F690228475831C7A5060AA63E16E25 -65ED846682A69BF56893572765A162715B9B59D0867B98F47D627DBE9B8E6216 -7C9F88B75B895EB563096697684895C7978D674F4EE54F0A4F4D4F9D504956F2 -593759D45A015C0960DF610F61706613690570BA754F757079FB7DAD7DEF80C3 -840E88638B029055907A533B4E954EA557DF80B290C178EF4E0058F16EA29038 -7A328328828B9C2F5141537054BD54E156E059FB5F1598F26DEB80E4852D0000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009662967096A097FB540B53F35B8770CF7FBD8FC296E8536F9D5C7ABA4E11 -789381FC6E26561855046B1D851A9C3B59E553A96D6674DC958F56424E91904B -96F2834F990C53E155B65B305F71662066F368046C386CF36D29745B76C87A4E -983482F1885B8A6092ED6DB275AB76CA99C560A68B018D8A95B2698E53AD5186 -5712583059445BB45EF6602863A963F46CBF6F14708E7114715971D5733F7E01 -827682D185979060925B9D1B586965BC6C5A752551F9592E59655F805FDC0000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062BC65FA6A2A6B276BB4738B7FC189569D2C9D0E9EC45CA16C96837B5104 -5C4B61B681C6687672614E594FFA537860696E297A4F97F34E0B53164EEE4F55 -4F3D4FA14F7352A053EF5609590F5AC15BB65BE179D16687679C67B66B4C6CB3 -706B73C2798D79BE7A3C7B8782B182DB8304837783EF83D387668AB256298CA8 -8FE6904E971E868A4FC45CE862117259753B81E582BD86FE8CC096C5991399D5 -4ECB4F1A89E356DE584A58CA5EFB5FEB602A6094606261D0621262D065390000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B41666668B06D777070754C76867D7582A587F9958B968E8C9D51F152BE -591654B35BB35D16616869826DAF788D84CB88578A7293A79AB86D6C99A886D9 -57A367FF86CE920E5283568754045ED362E164B9683C68386BBB737278BA7A6B -899A89D28D6B8F0390ED95A3969497695B665CB3697D984D984E639B7B206A2B -6A7F68B69C0D6F5F5272559D607062EC6D3B6E076ED1845B89108F444E149C39 -53F6691B6A3A9784682A515C7AC384B291DC938C565B9D286822830584310000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007CA5520882C574E64E7E4F8351A05BD2520A52D852E75DFB559A582A59E6 -5B8C5B985BDB5E725E7960A3611F616361BE63DB656267D1685368FA6B3E6B53 -6C576F226F976F4574B0751876E3770B7AFF7BA17C217DE97F367FF0809D8266 -839E89B38ACC8CAB908494519593959195A2966597D3992882184E38542B5CB8 -5DCC73A9764C773C5CA97FEB8D0B96C19811985498584F014F0E5371559C5668 -57FA59475B095BC45C905E0C5E7E5FCC63EE673A65D765E2671F68CB68C40000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006A5F5E306BC56C176C7D757F79485B637A007D005FBD898F8A188CB48D77 -8ECC8F1D98E29A0E9B3C4E80507D510059935B9C622F628064EC6B3A72A07591 -79477FA987FB8ABC8B7063AC83CA97A05409540355AB68546A588A7078276775 -9ECD53745BA2811A865090064E184E454EC74F1153CA54385BAE5F1360256551 -673D6C426C726CE3707874037A767AAE7B087D1A7CFE7D6665E7725B53BB5C45 -5DE862D262E063196E20865A8A318DDD92F86F0179A69B5A4EA84EAB4EAC0000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F9B4FA050D151477AF6517151F653545321537F53EB55AC58835CE15F37 -5F4A602F6050606D631F65596A4B6CC172C272ED77EF80F881058208854E90F7 -93E197FF99579A5A4EF051DD5C2D6681696D5C4066F26975738968507C8150C5 -52E457475DFE932665A46B236B3D7434798179BD7B4B7DCA82B983CC887F895F -8B398FD191D1541F92804E5D503653E5533A72D7739677E982E68EAF99C699C8 -99D25177611A865E55B07A7A50765BD3904796854E326ADB91E75C515C480000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000063987A9F6C9397748F617AAA718A96887C8268177E706851936C52F2541B -85AB8A137FA48ECD90E15366888879414FC250BE521151445553572D73EA578B -59515F625F8460756176616761A963B2643A656C666F68426E1375667A3D7CFB -7D4C7D997E4B7F6B830E834A86CD8A088A638B668EFD981A9D8F82B88FCE9BE8 -5287621F64836FC09699684150916B206C7A6F547A747D5088408A2367084EF6 -503950265065517C5238526355A7570F58055ACC5EFA61B261F862F363720000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000691C6A29727D72AC732E7814786F7D79770C80A9898B8B198CE28ED29063 -9375967A98559A139E785143539F53B35E7B5F266E1B6E90738473FE7D438237 -8A008AFA96504E4E500B53E4547C56FA59D15B645DF15EAB5F276238654567AF -6E5672D07CCA88B480A180E183F0864E8A878DE8923796C798679F134E944E92 -4F0D53485449543E5A2F5F8C5FA1609F68A76A8E745A78818A9E8AA48B779190 -4E5E9BC94EA44F7C4FAF501950165149516C529F52B952FE539A53E354110000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000540E5589575157A2597D5B545B5D5B8F5DE55DE75DF75E785E835E9A5EB7 -5F186052614C629762D863A7653B6602664366F4676D6821689769CB6C5F6D2A -6D696E2F6E9D75327687786C7A3F7CE07D057D187D5E7DB18015800380AF80B1 -8154818F822A8352884C88618B1B8CA28CFC90CA91759271783F92FC95A4964D -980599999AD89D3B525B52AB53F7540858D562F76FE08C6A8F5F9EB9514B523B -544A56FD7A4091779D609ED273446F09817075115FFD60DA9AA872DB8FBC0000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B6498034ECA56F0576458BE5A5A606861C7660F6606683968B16DF775D5 -7D3A826E9B424E9B4F5053C955065D6F5DE65DEE67FB6C99747378028A509396 -88DF57505EA7632B50B550AC518D670054C9585E59BB5BB05F69624D63A1683D -6B736E08707D91C7728078157826796D658E7D3083DC88C18F09969B52645728 -67507F6A8CA151B45742962A583A698A80B454B25D0E57FC78959DFA4F5C524A -548B643E6628671467F57A847B567D22932F685C9BAD7B395319518A52370000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005BDF62F664AE64E6672D6BBA85A996D176909BD6634C93069BAB76BF6652 -4E09509853C25C7160E864926563685F71E673CA75237B977E8286958B838CDB -9178991065AC66AB6B8B4ED54ED44F3A4F7F523A53F853F255E356DB58EB59CB -59C959FF5B505C4D5E025E2B5FD7601D6307652F5B5C65AF65BD65E8679D6B62 -6B7B6C0F7345794979C17CF87D197D2B80A2810281F389968A5E8A698A668A8C -8AEE8CC78CDC96CC98FC6B6F4E8B4F3C4F8D51505B575BFA6148630166420000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B216ECB6CBB723E74BD75D478C1793A800C803381EA84948F9E6C509E7F -5F0F8B589D2B7AFA8EF85B8D96EB4E0353F157F759315AC95BA460896E7F6F06 -75BE8CEA5B9F85007BE0507267F4829D5C61854A7E1E820E51995C0463688D66 -659C716E793E7D1780058B1D8ECA906E86C790AA501F52FA5C3A6753707C7235 -914C91C8932B82E55BC25F3160F94E3B53D65B88624B67316B8A72E973E07A2E -816B8DA391529996511253D7546A5BFF63886A397DAC970056DA53CE54680000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005B975C315DDE4FEE610162FE6D3279C079CB7D427E4D7FD281ED821F8490 -884689728B908E748F2F9031914B916C96C6919C4EC04F4F514553415F93620E -67D46C416E0B73637E2691CD928353D459195BBF6DD1795D7E2E7C9B587E719F -51FA88538FF04FCA5CFB662577AC7AE3821C99FF51C65FAA65EC696F6B896DF3 -6E966F6476FE7D145DE190759187980651E6521D6240669166D96E1A5EB67DD2 -7F7266F885AF85F78AF852A953D959735E8F5F90605592E4966450B7511F0000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000052DD5320534753EC54E8554655315617596859BE5A3C5BB55C065C0F5C11 -5C1A5E845E8A5EE05F70627F628462DB638C63776607660C662D6676677E68A2 -6A1F6A356CBC6D886E096E58713C7126716775C77701785D7901796579F07AE0 -7B117CA77D39809683D6848B8549885D88F38A1F8A3C8A548A738C618CDE91A4 -9266937E9418969C97984E0A4E084E1E4E575197527057CE583458CC5B225E38 -60C564FE676167566D4472B675737A6384B88B7291B89320563157F498FE0000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062ED690D6B9671ED7E548077827289E698DF87558FB15C3B4F384FE14FB5 -55075A205BDD5BE95FC3614E632F65B0664B68EE699B6D786DF1753375B9771F -795E79E67D3381E382AF85AA89AA8A3A8EAB8F9B903291DD97074EBA4EC15203 -587558EC5C0B751A5C3D814E8A0A8FC59663976D7B258ACF9808916256F353A8 -9017543957825E2563A86C34708A77617C8B7FE088709042915493109318968F -745E9AC45D075D69657067A28DA896DB636E6749691983C5981796C088FE0000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F84647A5BF84E16702C755D662F51C4523652E259D35F8160276210653F -6574661F667468F268166B636E057272751F76DB7CBE805658F088FD897F8AA0 -8A938ACB901D91929752975965897A0E810696BB5E2D60DC621A65A566146790 -77F37A4D7C4D7E3E810A8CAC8D648DE18E5F78A9520762D963A5644262988A2D -7A837BC08AAC96EA7D76820C87494ED95148534353605BA35C025C165DDD6226 -624764B0681368346CC96D456D1767D36F5C714E717D65CB7A7F7BAD7DDA0000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E4A7FA8817A821B823985A68A6E8CCE8DF59078907792AD929195839BAE -524D55846F387136516879857E5581B37CCE564C58515CA863AA66FE66FD695A -72D9758F758E790E795679DF7C977D207D4486078A34963B90619F2050E75275 -53CC53E2500955AA58EE594F723D5B8B5C64531D60E360F3635C6383633F63BB -64CD65E966F95DE369CD69FD6F1571E54E8975E976F87A937CDF7DCF7D9C8061 -83498358846C84BC85FB88C58D709001906D9397971C9A1250CF5897618E0000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081D385358D0890204FC3507452475373606F6349675F6E2C8DB3901F4FD7 -5C5E8CCA65CF7D9A53528896517663C35B585B6B5C0A640D6751905C4ED6591A -592A6C708A51553E581559A560F0625367C182356955964099C49A284F535806 -5BFE80105CB15E2F5F856020614B623466FF6CF06EDE80CE817F82D4888B8CB8 -9000902E968A9EDB9BDB4EE353F059277B2C918D984C9DF96EDD702753535544 -5B856258629E62D36CA26FEF74228A1794386FC18AFE833851E786F853EA0000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053E94F4690548FB0596A81315DFD7AEA8FBF68DA8C3772F89C486A3D8AB0 -4E3953585606576662C563A265E66B4E6DE16E5B70AD77ED7AEF7BAA7DBB803D -80C686CB8A95935B56E358C75F3E65AD66966A806BB575378AC7502477E55730 -5F1B6065667A6C6075F47A1A7F6E81F48718904599B37BC9755C7AF97B5184C4 -901079E97A9283365AE177404E2D4EF25B995FE062BD663C67F16CE8866B8877 -8A3B914E92F399D06A177026732A82E784578CAF4E01514651CB558B5BF50000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E165E335E815F145F355F6B5FB461F2631166A2671D6F6E7252753A773A -80748139817887768ABF8ADC8D858DF3929A957798029CE552C5635776F46715 -6C8873CD8CC393AE96736D25589C690E69CC8FFD939A75DB901A585A680263B4 -69FB4F436F2C67D88FBB85267DB49354693F6F70576A58F75B2C7D2C722A540A -91E39DB44EAD4F4E505C507552438C9E544858245B9A5E1D5E955EAD5EF75F1F -608C62B5633A63D068AF6C407887798E7A0B7DE082478A028AE68E4490130000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090B8912D91D89F0E6CE5645864E265756EF476847B1B906993D16EBA54F2 -5FB964A48F4D8FED92445178586B59295C555E976DFB7E8F751C8CBC8EE2985B -70B94F1D6BBF6FB1753096FB514E54105835585759AC5C605F926597675C6E21 -767B83DF8CED901490FD934D7825783A52AA5EA6571F597460125012515A51AC -51CD520055105854585859575B955CF65D8B60BC6295642D6771684368BC68DF -76D76DD86E6F6D9B706F71C85F5375D879777B497B547B527CD67D7152300000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008463856985E48A0E8B048C468E0F9003900F94199676982D9A3095D850CD -52D5540C58025C0E61A7649E6D1E77B37AE580F48404905392855CE09D07533F -5F975FB36D9C7279776379BF7BE46BD272EC8AAD68036A6151F87A8169345C4A -9CF682EB5BC59149701E56785C6F60C765666C8C8C5A90419813545166C7920D -594890A351854E4D51EA85998B0E7058637A934B696299B47E04757753576960 -8EDF96E36C5D4E8C5C3C5F108FE953028CD1808986795EFF65E54E7351650000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000059825C3F97EE4EFB598A5FCD8A8D6FE179B079625BE78471732B71B15E74 -5FF5637B649A71C37C984E435EFC4E4B57DC56A260A96FC37D0D80FD813381BF -8FB2899786A45DF4628A64AD898767776CE26D3E743678345A467F7582AD99AC -4FF35EC362DD63926557676F76C3724C80CC80BA8F29914D500D57F95A926885 -6973716472FD8CB758F28CE0966A9019877F79E477E784294F2F5265535A62CD -67CF6CCA767D7B947C95823685848FEB66DD6F2072067E1B83AB99C19EA60000 -C8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051FD7BB178727BB880877B486AE85E61808C75517560516B92626E8C767A -91979AEA4F107F70629C7B4F95A59CE9567A585986E496BC4F345224534A53CD -53DB5E06642C6591677F6C3E6C4E724872AF73ED75547E41822C85E98CA97BC4 -91C67169981298EF633D6669756A76E478D0854386EE532A5351542659835E87 -5F7C60B26249627962AB65906BD46CCC75B276AE789179D87DCB7F7780A588AB -8AB98CBB907F975E98DB6A0B7C3850995C3E5FAE67876BD8743577097F8E0000 -C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009F3B67CA7A175339758B9AED5F66819D83F180985F3C5FC575627B46903C -686759EB5A9B7D10767E8B2C4FF55F6A6A196C376F0274E2796888688A558C79 -5EDF63CF75C579D282D7932892F2849C86ED9C2D54C15F6C658C6D5C70158CA7 -8CD3983B654F74F64E0D4ED857E0592B5A665BCC51A85E035E9C601662766577 -65A7666E6D6E72367B268150819A82998B5C8CA08CE68D74961C96444FAE64AB -6B66821E8461856A90E85C01695398A8847A85574F0F526F5FA95E45670D0000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000798F8179890789866DF55F1762556CB84ECF72699B925206543B567458B3 -61A4626E711A596E7C897CDE7D1B96F06587805E4E194F75517558405E635E73 -5F0A67C44E26853D9589965B7C73980150FB58C1765678A7522577A585117B86 -504F590972477BC77DE88FBA8FD4904D4FBF52C95A295F0197AD4FDD821792EA -570363556B69752B88DC8F147A4252DF58936155620A66AE6BCD7C3F83E95023 -4FF853055446583159495B9D5CF05CEF5D295E9662B16367653E65B9670B0000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006CD56CE170F978327E2B80DE82B3840C84EC870289128A2A8C4A90A692D2 -98FD9CF39D6C4E4F4EA1508D5256574A59A85E3D5FD85FD9623F66B4671B67D0 -68D251927D2180AA81A88B008C8C8CBF927E96325420982C531750D5535C58A8 -64B26734726777667A4691E652C36CA16B8658005E4C5954672C7FFB51E176C6 -646978E89B549EBB57CB59B96627679A6BCE54E969D95E55819C67959BAA67FE -9C52685D4EA64FE353C862B9672B6CAB8FC44FAD7E6D9EBF4E0761626E800000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F2B85135473672A9B455DF37B955CAC5BC6871C6E4A84D17A1481085999 -7C8D6C11772052D959227121725F77DB97279D61690B5A7F5A1851A5540D547D -660E76DF8FF792989CF459EA725D6EC5514D68C97DBF7DEC97629EBA64786A21 -830259845B5F6BDB731B76F27DB280178499513267289ED976EE676252FF9905 -5C24623B7C7E8CB0554F60B67D0B958053014E5F51B6591C723A803691CE5F25 -77E253845F797D0485AC8A338E8D975667F385AE9453610961086CB976520000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AED8F38552F4F51512A52C753CB5BA55E7D60A0618263D6670967DA6E67 -6D8C733673377531795088D58A98904A909190F596C4878D59154E884F594E0E -8A898F3F981050AD5E7C59965BB95EB863DA63FA64C166DC694A69D86D0B6EB6 -719475287AAF7F8A8000844984C989818B218E0A9065967D990A617E62916B32 -6C836D747FCC7FFC6DC07F8587BA88F8676583B1983C96F76D1B7D61843D916A -4E7153755D506B046FEB85CD862D89A75229540F5C65674E68A8740674830000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075E288CF88E191CC96E296785F8B73877ACB844E63A0756552896D416E9C -74097559786B7C9296867ADC9F8D4FB6616E65C5865C4E864EAE50DA4E2151CC -5BEE659968816DBC731F764277AD7A1C7CE7826F8AD2907C91CF96759818529B -7DD1502B539867976DCB71D0743381E88F2A96A39C579E9F746058416D997D2F -985E4EE44F364F8B51B752B15DBA601C73B2793C82D3923496B796F6970A9E97 -9F6266A66B74521752A370C888C25EC9604B61906F2371497C3E7DF4806F0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000084EE9023932C54429B6F6AD370898CC28DEF973252B45A415ECA5F046717 -697C69946D6A6F0F726272FC7BED8001807E874B90CE516D9E937984808B9332 -8AD6502D548C8A716B6A8CC4810760D167A09DF24E994E989C108A6B85C18568 -69006E7E78978155000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F0C4E104E154E2A4E314E364E3C4E3F4E424E564E584E824E858C6B4E8A -82125F0D4E8E4E9E4E9F4EA04EA24EB04EB34EB64ECE4ECD4EC44EC64EC24ED7 -4EDE4EED4EDF4EF74F094F5A4F304F5B4F5D4F574F474F764F884F8F4F984F7B -4F694F704F914F6F4F864F9651184FD44FDF4FCE4FD84FDB4FD14FDA4FD04FE4 -4FE5501A50285014502A502550054F1C4FF650215029502C4FFE4FEF50115006 -504350476703505550505048505A5056506C50785080509A508550B450B20000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000050C950CA50B350C250D650DE50E550ED50E350EE50F950F5510951015102 -511651155114511A5121513A5137513C513B513F51405152514C515451627AF8 -5169516A516E5180518256D8518C5189518F519151935195519651A451A651A2 -51A951AA51AB51B351B151B251B051B551BD51C551C951DB51E0865551E951ED -51F051F551FE5204520B5214520E5227522A522E52335239524F5244524B524C -525E5254526A527452695273527F527D528D529452925271528852918FA80000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008FA752AC52AD52BC52B552C152CD52D752DE52E352E698ED52E052F352F5 -52F852F9530653087538530D5310530F5315531A5323532F5331533353385340 -534653454E175349534D51D6535E5369536E5918537B53775382539653A053A6 -53A553AE53B053B653C37C1296D953DF66FC71EE53EE53E853ED53FA5401543D -5440542C542D543C542E54365429541D544E548F5475548E545F547154775470 -5492547B5480547654845490548654C754A254B854A554AC54C454C854A80000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054AB54C254A454BE54BC54D854E554E6550F551454FD54EE54ED54FA54E2 -553955405563554C552E555C55455556555755385533555D5599558054AF558A -559F557B557E5598559E55AE557C558355A9558755A855DA55C555DF55C455DC -55E455D4561455F7561655FE55FD561B55F9564E565071DF5634563656325638 -566B5664562F566C566A56865680568A56A05694568F56A556AE56B656B456C2 -56BC56C156C356C056C856CE56D156D356D756EE56F9570056FF570457090000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005708570B570D57135718571655C7571C572657375738574E573B5740574F -576957C057885761577F5789579357A057B357A457AA57B057C357C657D457D2 -57D3580A57D657E3580B5819581D587258215862584B58706BC05852583D5879 -588558B9589F58AB58BA58DE58BB58B858AE58C558D358D158D758D958D858E5 -58DC58E458DF58EF58FA58F958FB58FC58FD5902590A5910591B68A65925592C -592D59325938593E7AD259555950594E595A5958596259605967596C59690000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000059785981599D4F5E4FAB59A359B259C659E859DC598D59D959DA5A255A1F -5A115A1C5A095A1A5A405A6C5A495A355A365A625A6A5A9A5ABC5ABE5ACB5AC2 -5ABD5AE35AD75AE65AE95AD65AFA5AFB5B0C5B0B5B165B325AD05B2A5B365B3E -5B435B455B405B515B555B5A5B5B5B655B695B705B735B755B7865885B7A5B80 -5B835BA65BB85BC35BC75BC95BD45BD05BE45BE65BE25BDE5BE55BEB5BF05BF6 -5BF35C055C075C085C0D5C135C205C225C285C385C395C415C465C4E5C530000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C505C4F5B715C6C5C6E4E625C765C795C8C5C915C94599B5CAB5CBB5CB6 -5CBC5CB75CC55CBE5CC75CD95CE95CFD5CFA5CED5D8C5CEA5D0B5D155D175D5C -5D1F5D1B5D115D145D225D1A5D195D185D4C5D525D4E5D4B5D6C5D735D765D87 -5D845D825DA25D9D5DAC5DAE5DBD5D905DB75DBC5DC95DCD5DD35DD25DD65DDB -5DEB5DF25DF55E0B5E1A5E195E115E1B5E365E375E445E435E405E4E5E575E54 -5E5F5E625E645E475E755E765E7A9EBC5E7F5EA05EC15EC25EC85ED05ECF0000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005ED65EE35EDD5EDA5EDB5EE25EE15EE85EE95EEC5EF15EF35EF05EF45EF8 -5EFE5F035F095F5D5F5C5F0B5F115F165F295F2D5F385F415F485F4C5F4E5F2F -5F515F565F575F595F615F6D5F735F775F835F825F7F5F8A5F885F915F875F9E -5F995F985FA05FA85FAD5FBC5FD65FFB5FE45FF85FF15FDD60B35FFF60216060 -601960106029600E6031601B6015602B6026600F603A605A6041606A6077605F -604A6046604D6063604360646042606C606B60596081608D60E76083609A0000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006084609B60966097609260A7608B60E160B860E060D360B45FF060BD60C6 -60B560D8614D6115610660F660F7610060F460FA6103612160FB60F1610D610E -6147613E61286127614A613F613C612C6134613D614261446173617761586159 -615A616B6174616F61656171615F615D6153617561996196618761AC6194619A -618A619161AB61AE61CC61CA61C961F761C861C361C661BA61CB7F7961CD61E6 -61E361F661FA61F461FF61FD61FC61FE620062086209620D620C6214621B0000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000621E6221622A622E6230623262336241624E625E6263625B62606268627C -62826289627E62926293629662D46283629462D762D162BB62CF62FF62C664D4 -62C862DC62CC62CA62C262C7629B62C9630C62EE62F163276302630862EF62F5 -6350633E634D641C634F6396638E638063AB637663A3638F6389639F63B5636B -636963BE63E963C063C663E363C963D263F663C4641664346406641364266436 -651D64176428640F6467646F6476644E652A6495649364A564A9648864BC0000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064DA64D264C564C764BB64D864C264F164E7820964E064E162AC64E364EF -652C64F664F464F264FA650064FD6518651C650565246523652B653465356537 -65366538754B654865566555654D6558655E655D65726578658265838B8A659B -659F65AB65B765C365C665C165C465CC65D265DB65D965E065E165F16772660A -660365FB6773663566366634661C664F664466496641665E665D666466676668 -665F6662667066836688668E668966846698669D66C166B966C966BE66BC0000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000066C466B866D666DA66E0663F66E666E966F066F566F7670F6716671E6726 -67279738672E673F67366741673867376746675E676067596763676467896770 -67A9677C676A678C678B67A667A1678567B767EF67B467EC67B367E967B867E4 -67DE67DD67E267EE67B967CE67C667E76A9C681E684668296840684D6832684E -68B3682B685968636877687F689F688F68AD6894689D689B68836AAE68B96874 -68B568A068BA690F688D687E690168CA690868D86922692668E1690C68CD0000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068D468E768D569366912690468D768E3692568F968E068EF6928692A691A -6923692168C669796977695C6978696B6954697E696E69396974693D69596930 -6961695E695D6981696A69B269AE69D069BF69C169D369BE69CE5BE869CA69DD -69BB69C369A76A2E699169A0699C699569B469DE69E86A026A1B69FF6B0A69F9 -69F269E76A0569B16A1E69ED6A1469EB6A0A6A126AC16A236A136A446A0C6A72 -6A366A786A476A626A596A666A486A386A226A906A8D6AA06A846AA26AA30000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006A9786176ABB6AC36AC26AB86AB36AAC6ADE6AD16ADF6AAA6ADA6AEA6AFB -6B0586166AFA6B126B169B316B1F6B386B3776DC6B3998EE6B476B436B496B50 -6B596B546B5B6B5F6B616B786B796B7F6B806B846B836B8D6B986B956B9E6BA4 -6BAA6BAB6BAF6BB26BB16BB36BB76BBC6BC66BCB6BD36BDF6BEC6BEB6BF36BEF -9EBE6C086C136C146C1B6C246C236C5E6C556C626C6A6C826C8D6C9A6C816C9B -6C7E6C686C736C926C906CC46CF16CD36CBD6CD76CC56CDD6CAE6CB16CBE0000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006CBA6CDB6CEF6CD96CEA6D1F884D6D366D2B6D3D6D386D196D356D336D12 -6D0C6D636D936D646D5A6D796D596D8E6D956FE46D856DF96E156E0A6DB56DC7 -6DE66DB86DC66DEC6DDE6DCC6DE86DD26DC56DFA6DD96DE46DD56DEA6DEE6E2D -6E6E6E2E6E196E726E5F6E3E6E236E6B6E2B6E766E4D6E1F6E436E3A6E4E6E24 -6EFF6E1D6E386E826EAA6E986EC96EB76ED36EBD6EAF6EC46EB26ED46ED56E8F -6EA56EC26E9F6F416F11704C6EEC6EF86EFE6F3F6EF26F316EEF6F326ECC0000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F3E6F136EF76F866F7A6F786F816F806F6F6F5B6FF36F6D6F826F7C6F58 -6F8E6F916FC26F666FB36FA36FA16FA46FB96FC66FAA6FDF6FD56FEC6FD46FD8 -6FF16FEE6FDB7009700B6FFA70117001700F6FFE701B701A6F74701D7018701F -7030703E7032705170637099709270AF70F170AC70B870B370AE70DF70CB70DD -70D9710970FD711C711971657155718871667162714C7156716C718F71FB7184 -719571A871AC71D771B971BE71D271C971D471CE71E071EC71E771F571FC0000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000071F971FF720D7210721B7228722D722C72307232723B723C723F72407246 -724B72587274727E7282728172877292729672A272A772B972B272C372C672C4 -72CE72D272E272E072E172F972F7500F7317730A731C7316731D7334732F7329 -7325733E734E734F9ED87357736A7368737073787375737B737A73C873B373CE -73BB73C073E573EE73DE74A27405746F742573F87432743A7455743F745F7459 -7441745C746974707463746A7476747E748B749E74A774CA74CF74D473F10000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000074E074E374E774E974EE74F274F074F174F874F7750475037505750C750E -750D75157513751E7526752C753C7544754D754A7549755B7546755A75697564 -7567756B756D75787576758675877574758A758975827594759A759D75A575A3 -75C275B375C375B575BD75B875BC75B175CD75CA75D275D975E375DE75FE75FF -75FC760175F075FA75F275F3760B760D7609761F762776207621762276247634 -7630763B764776487646765C76587661766276687669766A7667766C76700000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000767276767678767C768076837688768B768E769676937699769A76B076B4 -76B876B976BA76C276CD76D676D276DE76E176E576E776EA862F76FB77087707 -770477297724771E77257726771B773777387747775A7768776B775B7765777F -777E7779778E778B779177A0779E77B077B677B977BF77BC77BD77BB77C777CD -77D777DA77DC77E377EE77FC780C781279267820792A7845788E78747886787C -789A788C78A378B578AA78AF78D178C678CB78D478BE78BC78C578CA78EC0000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078E778DA78FD78F47907791279117919792C792B794079607957795F795A -79557953797A797F798A799D79A79F4B79AA79AE79B379B979BA79C979D579E7 -79EC79E179E37A087A0D7A187A197A207A1F79807A317A3B7A3E7A377A437A57 -7A497A617A627A699F9D7A707A797A7D7A887A977A957A987A967AA97AC87AB0 -7AB67AC57AC47ABF90837AC77ACA7ACD7ACF7AD57AD37AD97ADA7ADD7AE17AE2 -7AE67AED7AF07B027B0F7B0A7B067B337B187B197B1E7B357B287B367B500000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007B7A7B047B4D7B0B7B4C7B457B757B657B747B677B707B717B6C7B6E7B9D -7B987B9F7B8D7B9C7B9A7B8B7B927B8F7B5D7B997BCB7BC17BCC7BCF7BB47BC6 -7BDD7BE97C117C147BE67BE57C607C007C077C137BF37BF77C177C0D7BF67C23 -7C277C2A7C1F7C377C2B7C3D7C4C7C437C547C4F7C407C507C587C5F7C647C56 -7C657C6C7C757C837C907CA47CAD7CA27CAB7CA17CA87CB37CB27CB17CAE7CB9 -7CBD7CC07CC57CC27CD87CD27CDC7CE29B3B7CEF7CF27CF47CF67CFA7D060000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D027D1C7D157D0A7D457D4B7D2E7D327D3F7D357D467D737D567D4E7D72 -7D687D6E7D4F7D637D937D897D5B7D8F7D7D7D9B7DBA7DAE7DA37DB57DC77DBD -7DAB7E3D7DA27DAF7DDC7DB87D9F7DB07DD87DDD7DE47DDE7DFB7DF27DE17E05 -7E0A7E237E217E127E317E1F7E097E0B7E227E467E667E3B7E357E397E437E37 -7E327E3A7E677E5D7E567E5E7E597E5A7E797E6A7E697E7C7E7B7E837DD57E7D -8FAE7E7F7E887E897E8C7E927E907E937E947E967E8E7E9B7E9C7F387F3A0000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007F457F4C7F4D7F4E7F507F517F557F547F587F5F7F607F687F697F677F78 -7F827F867F837F887F877F8C7F947F9E7F9D7F9A7FA37FAF7FB27FB97FAE7FB6 -7FB88B717FC57FC67FCA7FD57FD47FE17FE67FE97FF37FF998DC80068004800B -801280188019801C80218028803F803B804A804680528058805A805F80628068 -80738072807080768079807D807F808480868085809B8093809A80AD519080AC -80DB80E580D980DD80C480DA80D6810980EF80F1811B81298123812F814B0000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000968B8146813E8153815180FC8171816E81658166817481838188818A8180 -818281A0819581A481A3815F819381A981B081B581BE81B881BD81C081C281BA -81C981CD81D181D981D881C881DA81DF81E081E781FA81FB81FE820182028205 -8207820A820D821082168229822B82388233824082598258825D825A825F8264 -82628268826A826B822E827182778278827E828D829282AB829F82BB82AC82E1 -82E382DF82D282F482F382FA8393830382FB82F982DE830682DC830982D90000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000833583348316833283318340833983508345832F832B831783188385839A -83AA839F83A283968323838E8387838A837C83B58373837583A0838983A883F4 -841383EB83CE83FD840383D8840B83C183F7840783E083F2840D8422842083BD -8438850683FB846D842A843C855A84848477846B84AD846E848284698446842C -846F8479843584CA846284B984BF849F84D984CD84BB84DA84D084C184C684D6 -84A1852184FF84F485178518852C851F8515851484FC85408563855885480000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000085418602854B8555858085A485888591858A85A8856D8594859B85EA8587 -859C8577857E859085C985BA85CF85B985D085D585DD85E585DC85F9860A8613 -860B85FE85FA86068622861A8630863F864D4E558654865F86678671869386A3 -86A986AA868B868C86B686AF86C486C686B086C9882386AB86D486DE86E986EC -86DF86DB86EF8712870687088700870386FB87118709870D86F9870A8734873F -8737873B87258729871A8760875F8778874C874E877487578768876E87590000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000087538763876A880587A2879F878287AF87CB87BD87C087D096D687AB87C4 -87B387C787C687BB87EF87F287E0880F880D87FE87F687F7880E87D288118816 -8815882288218831883688398827883B8844884288528859885E8862886B8881 -887E889E8875887D88B5887288828897889288AE889988A2888D88A488B088BF -88B188C388C488D488D888D988DD88F9890288FC88F488E888F28904890C890A -89138943891E8925892A892B89418944893B89368938894C891D8960895E0000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089668964896D896A896F89748977897E89838988898A8993899889A189A9 -89A689AC89AF89B289BA89BD89BF89C089DA89DC89DD89E789F489F88A038A16 -8A108A0C8A1B8A1D8A258A368A418A5B8A528A468A488A7C8A6D8A6C8A628A85 -8A828A848AA88AA18A918AA58AA68A9A8AA38AC48ACD8AC28ADA8AEB8AF38AE7 -8AE48AF18B148AE08AE28AF78ADE8ADB8B0C8B078B1A8AE18B168B108B178B20 -8B3397AB8B268B2B8B3E8B288B418B4C8B4F8B4E8B498B568B5B8B5A8B6B0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B5F8B6C8B6F8B748B7D8B808B8C8B8E8B928B938B968B998B9A8C3A8C41 -8C3F8C488C4C8C4E8C508C558C628C6C8C788C7A8C828C898C858C8A8C8D8C8E -8C948C7C8C98621D8CAD8CAA8CBD8CB28CB38CAE8CB68CC88CC18CE48CE38CDA -8CFD8CFA8CFB8D048D058D0A8D078D0F8D0D8D109F4E8D138CCD8D148D168D67 -8D6D8D718D738D818D998DC28DBE8DBA8DCF8DDA8DD68DCC8DDB8DCB8DEA8DEB -8DDF8DE38DFC8E088E098DFF8E1D8E1E8E108E1F8E428E358E308E348E4A0000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008E478E498E4C8E508E488E598E648E608E2A8E638E558E768E728E7C8E81 -8E878E858E848E8B8E8A8E938E918E948E998EAA8EA18EAC8EB08EC68EB18EBE -8EC58EC88ECB8EDB8EE38EFC8EFB8EEB8EFE8F0A8F058F158F128F198F138F1C -8F1F8F1B8F0C8F268F338F3B8F398F458F428F3E8F4C8F498F468F4E8F578F5C -8F628F638F648F9C8F9F8FA38FAD8FAF8FB78FDA8FE58FE28FEA8FEF90878FF4 -90058FF98FFA901190159021900D901E9016900B90279036903590398FF80000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000904F905090519052900E9049903E90569058905E9068906F907696A89072 -9082907D90819080908A9089908F90A890AF90B190B590E290E4624890DB9102 -9112911991329130914A9156915891639165916991739172918B9189918291A2 -91AB91AF91AA91B591B491BA91C091C191C991CB91D091D691DF91E191DB91FC -91F591F6921E91FF9214922C92159211925E925792459249926492489295923F -924B9250929C92969293929B925A92CF92B992B792E9930F92FA9344932E0000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093199322931A9323933A9335933B935C9360937C936E935693B093AC93AD -939493B993D693D793E893E593D893C393DD93D093C893E4941A941494139403 -940794109436942B94359421943A944194529444945B94609462945E946A9229 -947094759477947D945A947C947E9481947F95829587958A9594959695989599 -95A095A895A795AD95BC95BB95B995BE95CA6FF695C395CD95CC95D595D495D6 -95DC95E195E595E296219628962E962F9642964C964F964B9677965C965E0000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000965D965F96669672966C968D96989695969796AA96A796B196B296B096B4 -96B696B896B996CE96CB96C996CD894D96DC970D96D596F99704970697089713 -970E9711970F971697199724972A97309739973D973E97449746974897429749 -975C976097649766976852D2976B977197799785977C9781977A9786978B978F -9790979C97A897A697A397B397B497C397C697C897CB97DC97ED9F4F97F27ADF -97F697F5980F980C9838982498219837983D9846984F984B986B986F98700000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000098719874987398AA98AF98B198B698C498C398C698E998EB990399099912 -991499189921991D991E99249920992C992E993D993E9942994999459950994B -99519952994C99559997999899A599AD99AE99BC99DF99DB99DD99D899D199ED -99EE99F199F299FB99F89A019A0F9A0599E29A199A2B9A379A459A429A409A43 -9A3E9A559A4D9A5B9A579A5F9A629A659A649A699A6B9A6A9AAD9AB09ABC9AC0 -9ACF9AD19AD39AD49ADE9ADF9AE29AE39AE69AEF9AEB9AEE9AF49AF19AF70000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009AFB9B069B189B1A9B1F9B229B239B259B279B289B299B2A9B2E9B2F9B32 -9B449B439B4F9B4D9B4E9B519B589B749B939B839B919B969B979B9F9BA09BA8 -9BB49BC09BCA9BB99BC69BCF9BD19BD29BE39BE29BE49BD49BE19C3A9BF29BF1 -9BF09C159C149C099C139C0C9C069C089C129C0A9C049C2E9C1B9C259C249C21 -9C309C479C329C469C3E9C5A9C609C679C769C789CE79CEC9CF09D099D089CEB -9D039D069D2A9D269DAF9D239D1F9D449D159D129D419D3F9D3E9D469D480000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D5D9D5E9D649D519D509D599D729D899D879DAB9D6F9D7A9D9A9DA49DA9 -9DB29DC49DC19DBB9DB89DBA9DC69DCF9DC29DD99DD39DF89DE69DED9DEF9DFD -9E1A9E1B9E1E9E759E799E7D9E819E889E8B9E8C9E929E959E919E9D9EA59EA9 -9EB89EAA9EAD97619ECC9ECE9ECF9ED09ED49EDC9EDE9EDD9EE09EE59EE89EEF -9EF49EF69EF79EF99EFB9EFC9EFD9F079F0876B79F159F219F2C9F3E9F4A9F52 -9F549F639F5F9F609F619F669F679F6C9F6A9F779F729F769F959F9C9FA00000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000582F69C79059746451DC7199000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -R -A1C1 301C FF5E -A1C2 2016 2225 -A1DD 2212 FF0D -A1F1 00A2 FFE0 -A1F2 00A3 FFE1 -A2CC 00AC FFE2 diff --git a/src/runtime/tcl_library/encoding/euc-kr.enc b/src/runtime/tcl_library/encoding/euc-kr.enc deleted file mode 100644 index 04332609..00000000 --- a/src/runtime/tcl_library/encoding/euc-kr.enc +++ /dev/null @@ -1,1533 +0,0 @@ -# Encoding file: euc-kr, multi-byte -M -003F 0 90 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300200B72025202600A8300300AD20152225FF3C223C20182019 -201C201D3014301530083009300A300B300C300D300E300F3010301100B100D7 -00F7226022642265221E223400B0203220332103212BFFE0FFE1FFE526422640 -222022A52312220222072261225200A7203B2606260525CB25CF25CE25C725C6 -25A125A025B325B225BD25BC219221902191219321943013226A226B221A223D -221D2235222B222C2208220B2286228722822283222A222922272228FFE20000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000021D221D42200220300B4FF5E02C702D802DD02DA02D900B802DB00A100BF -02D0222E2211220F00A42109203025C125C025B725B626642660266126652667 -2663229925C825A325D025D1259225A425A525A825A725A625A92668260F260E -261C261E00B62020202121952197219921962198266D2669266A266C327F321C -211633C7212233C233D821210000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FF04FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFFE6FF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000313131323133313431353136313731383139313A313B313C313D313E313F -3140314131423143314431453146314731483149314A314B314C314D314E314F -3150315131523153315431553156315731583159315A315B315C315D315E315F -3160316131623163316431653166316731683169316A316B316C316D316E316F -3170317131723173317431753176317731783179317A317B317C317D317E317F -3180318131823183318431853186318731883189318A318B318C318D318E0000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000217021712172217321742175217621772178217900000000000000000000 -2160216121622163216421652166216721682169000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000025002502250C251025182514251C252C25242534253C25012503250F2513 -251B251725232533252B253B254B2520252F25282537253F251D253025252538 -254225122511251A251925162515250E250D251E251F25212522252625272529 -252A252D252E25312532253525362539253A253D253E25402541254325442545 -2546254725482549254A00000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00003395339633972113339833C433A333A433A533A63399339A339B339C339D -339E339F33A033A133A233CA338D338E338F33CF3388338933C833A733A833B0 -33B133B233B333B433B533B633B733B833B93380338133823383338433BA33BB -33BC33BD33BE33BF33903391339233933394212633C033C1338A338B338C33D6 -33C533AD33AE33AF33DB33A933AA33AB33AC33DD33D033D333C333C933DC33C6 -0000000000000000000000000000000000000000000000000000000000000000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000C600D000AA0126000001320000013F014100D8015200BA00DE0166014A -00003260326132623263326432653266326732683269326A326B326C326D326E -326F3270327132723273327432753276327732783279327A327B24D024D124D2 -24D324D424D524D624D724D824D924DA24DB24DC24DD24DE24DF24E024E124E2 -24E324E424E524E624E724E824E9246024612462246324642465246624672468 -2469246A246B246C246D246E00BD2153215400BC00BE215B215C215D215E0000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000E6011100F001270131013301380140014200F8015300DF00FE0167014B -01493200320132023203320432053206320732083209320A320B320C320D320E -320F3210321132123213321432153216321732183219321A321B249C249D249E -249F24A024A124A224A324A424A524A624A724A824A924AA24AB24AC24AD24AE -24AF24B024B124B224B324B424B5247424752476247724782479247A247B247C -247D247E247F24802481248200B900B200B32074207F20812082208320840000 -AA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -AB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -AC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AC00AC01AC04AC07AC08AC09AC0AAC10AC11AC12AC13AC14AC15AC16AC17 -AC19AC1AAC1BAC1CAC1DAC20AC24AC2CAC2DAC2FAC30AC31AC38AC39AC3CAC40 -AC4BAC4DAC54AC58AC5CAC70AC71AC74AC77AC78AC7AAC80AC81AC83AC84AC85 -AC86AC89AC8AAC8BAC8CAC90AC94AC9CAC9DAC9FACA0ACA1ACA8ACA9ACAAACAC -ACAFACB0ACB8ACB9ACBBACBCACBDACC1ACC4ACC8ACCCACD5ACD7ACE0ACE1ACE4 -ACE7ACE8ACEAACECACEFACF0ACF1ACF3ACF5ACF6ACFCACFDAD00AD04AD060000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AD0CAD0DAD0FAD11AD18AD1CAD20AD29AD2CAD2DAD34AD35AD38AD3CAD44 -AD45AD47AD49AD50AD54AD58AD61AD63AD6CAD6DAD70AD73AD74AD75AD76AD7B -AD7CAD7DAD7FAD81AD82AD88AD89AD8CAD90AD9CAD9DADA4ADB7ADC0ADC1ADC4 -ADC8ADD0ADD1ADD3ADDCADE0ADE4ADF8ADF9ADFCADFFAE00AE01AE08AE09AE0B -AE0DAE14AE30AE31AE34AE37AE38AE3AAE40AE41AE43AE45AE46AE4AAE4CAE4D -AE4EAE50AE54AE56AE5CAE5DAE5FAE60AE61AE65AE68AE69AE6CAE70AE780000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AE79AE7BAE7CAE7DAE84AE85AE8CAEBCAEBDAEBEAEC0AEC4AECCAECDAECF -AED0AED1AED8AED9AEDCAEE8AEEBAEEDAEF4AEF8AEFCAF07AF08AF0DAF10AF2C -AF2DAF30AF32AF34AF3CAF3DAF3FAF41AF42AF43AF48AF49AF50AF5CAF5DAF64 -AF65AF79AF80AF84AF88AF90AF91AF95AF9CAFB8AFB9AFBCAFC0AFC7AFC8AFC9 -AFCBAFCDAFCEAFD4AFDCAFE8AFE9AFF0AFF1AFF4AFF8B000B001B004B00CB010 -B014B01CB01DB028B044B045B048B04AB04CB04EB053B054B055B057B0590000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B05DB07CB07DB080B084B08CB08DB08FB091B098B099B09AB09CB09FB0A0 -B0A1B0A2B0A8B0A9B0ABB0ACB0ADB0AEB0AFB0B1B0B3B0B4B0B5B0B8B0BCB0C4 -B0C5B0C7B0C8B0C9B0D0B0D1B0D4B0D8B0E0B0E5B108B109B10BB10CB110B112 -B113B118B119B11BB11CB11DB123B124B125B128B12CB134B135B137B138B139 -B140B141B144B148B150B151B154B155B158B15CB160B178B179B17CB180B182 -B188B189B18BB18DB192B193B194B198B19CB1A8B1CCB1D0B1D4B1DCB1DD0000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B1DFB1E8B1E9B1ECB1F0B1F9B1FBB1FDB204B205B208B20BB20CB214B215 -B217B219B220B234B23CB258B25CB260B268B269B274B275B27CB284B285B289 -B290B291B294B298B299B29AB2A0B2A1B2A3B2A5B2A6B2AAB2ACB2B0B2B4B2C8 -B2C9B2CCB2D0B2D2B2D8B2D9B2DBB2DDB2E2B2E4B2E5B2E6B2E8B2EBB2ECB2ED -B2EEB2EFB2F3B2F4B2F5B2F7B2F8B2F9B2FAB2FBB2FFB300B301B304B308B310 -B311B313B314B315B31CB354B355B356B358B35BB35CB35EB35FB364B3650000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B367B369B36BB36EB370B371B374B378B380B381B383B384B385B38CB390 -B394B3A0B3A1B3A8B3ACB3C4B3C5B3C8B3CBB3CCB3CEB3D0B3D4B3D5B3D7B3D9 -B3DBB3DDB3E0B3E4B3E8B3FCB410B418B41CB420B428B429B42BB434B450B451 -B454B458B460B461B463B465B46CB480B488B49DB4A4B4A8B4ACB4B5B4B7B4B9 -B4C0B4C4B4C8B4D0B4D5B4DCB4DDB4E0B4E3B4E4B4E6B4ECB4EDB4EFB4F1B4F8 -B514B515B518B51BB51CB524B525B527B528B529B52AB530B531B534B5380000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B540B541B543B544B545B54BB54CB54DB550B554B55CB55DB55FB560B561 -B5A0B5A1B5A4B5A8B5AAB5ABB5B0B5B1B5B3B5B4B5B5B5BBB5BCB5BDB5C0B5C4 -B5CCB5CDB5CFB5D0B5D1B5D8B5ECB610B611B614B618B625B62CB634B648B664 -B668B69CB69DB6A0B6A4B6ABB6ACB6B1B6D4B6F0B6F4B6F8B700B701B705B728 -B729B72CB72FB730B738B739B73BB744B748B74CB754B755B760B764B768B770 -B771B773B775B77CB77DB780B784B78CB78DB78FB790B791B792B796B7970000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B798B799B79CB7A0B7A8B7A9B7ABB7ACB7ADB7B4B7B5B7B8B7C7B7C9B7EC -B7EDB7F0B7F4B7FCB7FDB7FFB800B801B807B808B809B80CB810B818B819B81B -B81DB824B825B828B82CB834B835B837B838B839B840B844B851B853B85CB85D -B860B864B86CB86DB86FB871B878B87CB88DB8A8B8B0B8B4B8B8B8C0B8C1B8C3 -B8C5B8CCB8D0B8D4B8DDB8DFB8E1B8E8B8E9B8ECB8F0B8F8B8F9B8FBB8FDB904 -B918B920B93CB93DB940B944B94CB94FB951B958B959B95CB960B968B9690000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B96BB96DB974B975B978B97CB984B985B987B989B98AB98DB98EB9ACB9AD -B9B0B9B4B9BCB9BDB9BFB9C1B9C8B9C9B9CCB9CEB9CFB9D0B9D1B9D2B9D8B9D9 -B9DBB9DDB9DEB9E1B9E3B9E4B9E5B9E8B9ECB9F4B9F5B9F7B9F8B9F9B9FABA00 -BA01BA08BA15BA38BA39BA3CBA40BA42BA48BA49BA4BBA4DBA4EBA53BA54BA55 -BA58BA5CBA64BA65BA67BA68BA69BA70BA71BA74BA78BA83BA84BA85BA87BA8C -BAA8BAA9BAABBAACBAB0BAB2BAB8BAB9BABBBABDBAC4BAC8BAD8BAD9BAFC0000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BB00BB04BB0DBB0FBB11BB18BB1CBB20BB29BB2BBB34BB35BB36BB38BB3B -BB3CBB3DBB3EBB44BB45BB47BB49BB4DBB4FBB50BB54BB58BB61BB63BB6CBB88 -BB8CBB90BBA4BBA8BBACBBB4BBB7BBC0BBC4BBC8BBD0BBD3BBF8BBF9BBFCBBFF -BC00BC02BC08BC09BC0BBC0CBC0DBC0FBC11BC14BC15BC16BC17BC18BC1BBC1C -BC1DBC1EBC1FBC24BC25BC27BC29BC2DBC30BC31BC34BC38BC40BC41BC43BC44 -BC45BC49BC4CBC4DBC50BC5DBC84BC85BC88BC8BBC8CBC8EBC94BC95BC970000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BC99BC9ABCA0BCA1BCA4BCA7BCA8BCB0BCB1BCB3BCB4BCB5BCBCBCBDBCC0 -BCC4BCCDBCCFBCD0BCD1BCD5BCD8BCDCBCF4BCF5BCF6BCF8BCFCBD04BD05BD07 -BD09BD10BD14BD24BD2CBD40BD48BD49BD4CBD50BD58BD59BD64BD68BD80BD81 -BD84BD87BD88BD89BD8ABD90BD91BD93BD95BD99BD9ABD9CBDA4BDB0BDB8BDD4 -BDD5BDD8BDDCBDE9BDF0BDF4BDF8BE00BE03BE05BE0CBE0DBE10BE14BE1CBE1D -BE1FBE44BE45BE48BE4CBE4EBE54BE55BE57BE59BE5ABE5BBE60BE61BE640000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BE68BE6ABE70BE71BE73BE74BE75BE7BBE7CBE7DBE80BE84BE8CBE8DBE8F -BE90BE91BE98BE99BEA8BED0BED1BED4BED7BED8BEE0BEE3BEE4BEE5BEECBF01 -BF08BF09BF18BF19BF1BBF1CBF1DBF40BF41BF44BF48BF50BF51BF55BF94BFB0 -BFC5BFCCBFCDBFD0BFD4BFDCBFDFBFE1C03CC051C058C05CC060C068C069C090 -C091C094C098C0A0C0A1C0A3C0A5C0ACC0ADC0AFC0B0C0B3C0B4C0B5C0B6C0BC -C0BDC0BFC0C0C0C1C0C5C0C8C0C9C0CCC0D0C0D8C0D9C0DBC0DCC0DDC0E40000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C0E5C0E8C0ECC0F4C0F5C0F7C0F9C100C104C108C110C115C11CC11DC11E -C11FC120C123C124C126C127C12CC12DC12FC130C131C136C138C139C13CC140 -C148C149C14BC14CC14DC154C155C158C15CC164C165C167C168C169C170C174 -C178C185C18CC18DC18EC190C194C196C19CC19DC19FC1A1C1A5C1A8C1A9C1AC -C1B0C1BDC1C4C1C8C1CCC1D4C1D7C1D8C1E0C1E4C1E8C1F0C1F1C1F3C1FCC1FD -C200C204C20CC20DC20FC211C218C219C21CC21FC220C228C229C22BC22D0000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C22FC231C232C234C248C250C251C254C258C260C265C26CC26DC270C274 -C27CC27DC27FC281C288C289C290C298C29BC29DC2A4C2A5C2A8C2ACC2ADC2B4 -C2B5C2B7C2B9C2DCC2DDC2E0C2E3C2E4C2EBC2ECC2EDC2EFC2F1C2F6C2F8C2F9 -C2FBC2FCC300C308C309C30CC30DC313C314C315C318C31CC324C325C328C329 -C345C368C369C36CC370C372C378C379C37CC37DC384C388C38CC3C0C3D8C3D9 -C3DCC3DFC3E0C3E2C3E8C3E9C3EDC3F4C3F5C3F8C408C410C424C42CC4300000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C434C43CC43DC448C464C465C468C46CC474C475C479C480C494C49CC4B8 -C4BCC4E9C4F0C4F1C4F4C4F8C4FAC4FFC500C501C50CC510C514C51CC528C529 -C52CC530C538C539C53BC53DC544C545C548C549C54AC54CC54DC54EC553C554 -C555C557C558C559C55DC55EC560C561C564C568C570C571C573C574C575C57C -C57DC580C584C587C58CC58DC58FC591C595C597C598C59CC5A0C5A9C5B4C5B5 -C5B8C5B9C5BBC5BCC5BDC5BEC5C4C5C5C5C6C5C7C5C8C5C9C5CAC5CCC5CE0000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C5D0C5D1C5D4C5D8C5E0C5E1C5E3C5E5C5ECC5EDC5EEC5F0C5F4C5F6C5F7 -C5FCC5FDC5FEC5FFC600C601C605C606C607C608C60CC610C618C619C61BC61C -C624C625C628C62CC62DC62EC630C633C634C635C637C639C63BC640C641C644 -C648C650C651C653C654C655C65CC65DC660C66CC66FC671C678C679C67CC680 -C688C689C68BC68DC694C695C698C69CC6A4C6A5C6A7C6A9C6B0C6B1C6B4C6B8 -C6B9C6BAC6C0C6C1C6C3C6C5C6CCC6CDC6D0C6D4C6DCC6DDC6E0C6E1C6E80000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C6E9C6ECC6F0C6F8C6F9C6FDC704C705C708C70CC714C715C717C719C720 -C721C724C728C730C731C733C735C737C73CC73DC740C744C74AC74CC74DC74F -C751C752C753C754C755C756C757C758C75CC760C768C76BC774C775C778C77C -C77DC77EC783C784C785C787C788C789C78AC78EC790C791C794C796C797C798 -C79AC7A0C7A1C7A3C7A4C7A5C7A6C7ACC7ADC7B0C7B4C7BCC7BDC7BFC7C0C7C1 -C7C8C7C9C7CCC7CEC7D0C7D8C7DDC7E4C7E8C7ECC800C801C804C808C80A0000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C810C811C813C815C816C81CC81DC820C824C82CC82DC82FC831C838C83C -C840C848C849C84CC84DC854C870C871C874C878C87AC880C881C883C885C886 -C887C88BC88CC88DC894C89DC89FC8A1C8A8C8BCC8BDC8C4C8C8C8CCC8D4C8D5 -C8D7C8D9C8E0C8E1C8E4C8F5C8FCC8FDC900C904C905C906C90CC90DC90FC911 -C918C92CC934C950C951C954C958C960C961C963C96CC970C974C97CC988C989 -C98CC990C998C999C99BC99DC9C0C9C1C9C4C9C7C9C8C9CAC9D0C9D1C9D30000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C9D5C9D6C9D9C9DAC9DCC9DDC9E0C9E2C9E4C9E7C9ECC9EDC9EFC9F0C9F1 -C9F8C9F9C9FCCA00CA08CA09CA0BCA0CCA0DCA14CA18CA29CA4CCA4DCA50CA54 -CA5CCA5DCA5FCA60CA61CA68CA7DCA84CA98CABCCABDCAC0CAC4CACCCACDCACF -CAD1CAD3CAD8CAD9CAE0CAECCAF4CB08CB10CB14CB18CB20CB21CB41CB48CB49 -CB4CCB50CB58CB59CB5DCB64CB78CB79CB9CCBB8CBD4CBE4CBE7CBE9CC0CCC0D -CC10CC14CC1CCC1DCC21CC22CC27CC28CC29CC2CCC2ECC30CC38CC39CC3B0000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CC3CCC3DCC3ECC44CC45CC48CC4CCC54CC55CC57CC58CC59CC60CC64CC66 -CC68CC70CC75CC98CC99CC9CCCA0CCA8CCA9CCABCCACCCADCCB4CCB5CCB8CCBC -CCC4CCC5CCC7CCC9CCD0CCD4CCE4CCECCCF0CD01CD08CD09CD0CCD10CD18CD19 -CD1BCD1DCD24CD28CD2CCD39CD5CCD60CD64CD6CCD6DCD6FCD71CD78CD88CD94 -CD95CD98CD9CCDA4CDA5CDA7CDA9CDB0CDC4CDCCCDD0CDE8CDECCDF0CDF8CDF9 -CDFBCDFDCE04CE08CE0CCE14CE19CE20CE21CE24CE28CE30CE31CE33CE350000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CE58CE59CE5CCE5FCE60CE61CE68CE69CE6BCE6DCE74CE75CE78CE7CCE84 -CE85CE87CE89CE90CE91CE94CE98CEA0CEA1CEA3CEA4CEA5CEACCEADCEC1CEE4 -CEE5CEE8CEEBCEECCEF4CEF5CEF7CEF8CEF9CF00CF01CF04CF08CF10CF11CF13 -CF15CF1CCF20CF24CF2CCF2DCF2FCF30CF31CF38CF54CF55CF58CF5CCF64CF65 -CF67CF69CF70CF71CF74CF78CF80CF85CF8CCFA1CFA8CFB0CFC4CFE0CFE1CFE4 -CFE8CFF0CFF1CFF3CFF5CFFCD000D004D011D018D02DD034D035D038D03C0000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D044D045D047D049D050D054D058D060D06CD06DD070D074D07CD07DD081 -D0A4D0A5D0A8D0ACD0B4D0B5D0B7D0B9D0C0D0C1D0C4D0C8D0C9D0D0D0D1D0D3 -D0D4D0D5D0DCD0DDD0E0D0E4D0ECD0EDD0EFD0F0D0F1D0F8D10DD130D131D134 -D138D13AD140D141D143D144D145D14CD14DD150D154D15CD15DD15FD161D168 -D16CD17CD184D188D1A0D1A1D1A4D1A8D1B0D1B1D1B3D1B5D1BAD1BCD1C0D1D8 -D1F4D1F8D207D209D210D22CD22DD230D234D23CD23DD23FD241D248D25C0000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D264D280D281D284D288D290D291D295D29CD2A0D2A4D2ACD2B1D2B8D2B9 -D2BCD2BFD2C0D2C2D2C8D2C9D2CBD2D4D2D8D2DCD2E4D2E5D2F0D2F1D2F4D2F8 -D300D301D303D305D30CD30DD30ED310D314D316D31CD31DD31FD320D321D325 -D328D329D32CD330D338D339D33BD33CD33DD344D345D37CD37DD380D384D38C -D38DD38FD390D391D398D399D39CD3A0D3A8D3A9D3ABD3ADD3B4D3B8D3BCD3C4 -D3C5D3C8D3C9D3D0D3D8D3E1D3E3D3ECD3EDD3F0D3F4D3FCD3FDD3FFD4010000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D408D41DD440D444D45CD460D464D46DD46FD478D479D47CD47FD480D482 -D488D489D48BD48DD494D4A9D4CCD4D0D4D4D4DCD4DFD4E8D4ECD4F0D4F8D4FB -D4FDD504D508D50CD514D515D517D53CD53DD540D544D54CD54DD54FD551D558 -D559D55CD560D565D568D569D56BD56DD574D575D578D57CD584D585D587D588 -D589D590D5A5D5C8D5C9D5CCD5D0D5D2D5D8D5D9D5DBD5DDD5E4D5E5D5E8D5EC -D5F4D5F5D5F7D5F9D600D601D604D608D610D611D613D614D615D61CD6200000 -C8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D624D62DD638D639D63CD640D645D648D649D64BD64DD651D654D655D658 -D65CD667D669D670D671D674D683D685D68CD68DD690D694D69DD69FD6A1D6A8 -D6ACD6B0D6B9D6BBD6C4D6C5D6C8D6CCD6D1D6D4D6D7D6D9D6E0D6E4D6E8D6F0 -D6F5D6FCD6FDD700D704D711D718D719D71CD720D728D729D72BD72DD734D735 -D738D73CD744D747D749D750D751D754D756D757D758D759D760D761D763D765 -D769D76CD770D774D77CD77DD781D788D789D78CD790D798D799D79BD79D0000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F3D4F73504750F952A053EF547554E556095AC15BB6668767B667B767EF -6B4C73C275C27A3C82DB8304885788888A368CC88DCF8EFB8FE699D5523B5374 -5404606A61646BBC73CF811A89BA89D295A34F83520A58BE597859E65E725E79 -61C763C0674667EC687F6F97764E770B78F57A087AFF7C21809D826E82718AEB -95934E6B559D66F76E3478A37AED845B8910874E97A852D8574E582A5D4C611F -61BE6221656267D16A446E1B751875B376E377B07D3A90AF945194529F950000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053235CAC753280DB92409598525B580859DC5CA15D175EB75F3A5F4A6177 -6C5F757A75867CE07D737DB17F8C81548221859189418B1B92FC964D9C474ECB -4EF7500B51F1584F6137613E6168653969EA6F1175A5768676D67B8782A584CB -F90093A7958B55805BA25751F9017CB37FB991B5502853BB5C455DE862D2636E -64DA64E76E2070AC795B8DDD8E1EF902907D924592F84E7E4EF650655DFE5EFA -61066957817186548E4793759A2B4E5E5091677068405109528D52926AA20000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077BC92109ED452AB602F8FF2504861A963ED64CA683C6A846FC0818889A1 -96945805727D72AC75047D797E6D80A9898B8B7490639D5162896C7A6F547D50 -7F3A8A23517C614A7B9D8B199257938C4EAC4FD3501E50BE510652C152CD537F -577058835E9A5F91617661AC64CE656C666F66BB66F468976D87708570F1749F -74A574CA75D9786C78EC7ADF7AF67D457D938015803F811B83968B668F159015 -93E1980398389A5A9BE84FC25553583A59515B635C4660B86212684268B00000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068E86EAA754C767878CE7A3D7CFB7E6B7E7C8A088AA18C3F968E9DC453E4 -53E9544A547156FA59D15B645C3B5EAB62F765376545657266A067AF69C16CBD -75FC7690777E7A3F7F94800380A1818F82E682FD83F085C1883188B48AA5F903 -8F9C932E96C798679AD89F1354ED659B66F2688F7A408C379D6056F057645D11 -660668B168CD6EFE7428889E9BE46C68F9049AA84F9B516C5171529F5B545DE5 -6050606D62F163A7653B73D97A7A86A38CA2978F4E325BE16208679C74DC0000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079D183D38A878AB28DE8904E934B98465ED369E885FF90EDF90551A05B98 -5BEC616368FA6B3E704C742F74D87BA17F5083C589C08CAB95DC9928522E605D -62EC90024F8A5149532158D95EE366E06D38709A72C273D67B5080F1945B5366 -639B7F6B4E565080584A58DE602A612762D069D09B415B8F7D1880B18F5F4EA4 -50D154AC55AC5B0C5DA05DE7652A654E68216A4B72E1768E77EF7D5E7FF981A0 -854E86DF8F038F4E90CA99039A559BAB4E184E454E5D4EC74FF1517752FE0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000534053E353E5548E5614577557A25BC75D875ED061FC62D8655167B867E9 -69CB6B506BC66BEC6C426E9D707872D77396740377BF77E97A767D7F800981FC -8205820A82DF88628B338CFC8EC0901190B1926492B699D29A459CE99DD79F9C -570B5C4083CA97A097AB9EB4541B7A987FA488D98ECD90E158005C4863987A9F -5BAE5F137A797AAE828E8EAC5026523852F85377570862F363726B0A6DC37737 -53A5735785688E7695D5673A6AC36F708A6D8ECC994BF90666776B788CB40000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B3CF90753EB572D594E63C669FB73EA78457ABA7AC57CFE8475898F8D73 -903595A852FB574775477B6083CC921EF9086A58514B524B5287621F68D86975 -969950C552A452E461C365A4683969FF747E7B4B82B983EB89B28B398FD19949 -F9094ECA599764D266116A8E7434798179BD82A9887E887F895FF90A93264F0B -53CA602562716C727D1A7D664E98516277DC80AF4F014F0E5176518055DC5668 -573B57FA57FC5914594759935BC45C905D0E5DF15E7E5FCC628065D765E30000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000671E671F675E68CB68C46A5F6B3A6C236C7D6C826DC773987426742A7482 -74A37578757F788178EF794179477948797A7B957D007DBA7F888006802D808C -8A188B4F8C488D779321932498E299519A0E9A0F9A659E927DCA4F76540962EE -685491D155AB513AF90BF90C5A1C61E6F90D62CF62FFF90EF90FF910F911F912 -F91390A3F914F915F916F917F9188AFEF919F91AF91BF91C6696F91D7156F91E -F91F96E3F920634F637A5357F921678F69606E73F9227537F923F924F9250000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D0DF926F927887256CA5A18F928F929F92AF92BF92C4E43F92D51675948 -67F08010F92E59735E74649A79CA5FF5606C62C8637B5BE75BD752AAF92F5974 -5F296012F930F931F9327459F933F934F935F936F937F93899D1F939F93AF93B -F93CF93DF93EF93FF940F941F942F9436FC3F944F94581BF8FB260F1F946F947 -8166F948F9495C3FF94AF94BF94CF94DF94EF94FF950F9515AE98A25677B7D10 -F952F953F954F955F956F95780FDF958F9595C3C6CE5533F6EBA591A83360000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E394EB64F4655AE571858C75F5665B765E66A806BB56E4D77ED7AEF7C1E -7DDE86CB88929132935B64BB6FBE737A75B890545556574D61BA64D466C76DE1 -6E5B6F6D6FB975F0804381BD854189838AC78B5A931F6C9375537B548E0F905D -5510580258585E626207649E68E075767CD687B39EE84EE35788576E59275C0D -5CB15E365F85623464E173B381FA888B8CB8968A9EDB5B855FB760B350125200 -52305716583558575C0E5C605CF65D8B5EA65F9260BC63116389641768430000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068F96AC26DD86E216ED46FE471FE76DC777979B17A3B840489A98CED8DF3 -8E4890039014905390FD934D967697DC6BD27006725872A27368776379BF7BE4 -7E9B8B8058A960C7656665FD66BE6C8C711E71C98C5A98134E6D7A814EDD51AC -51CD52D5540C61A76771685068DF6D1E6F7C75BC77B37AE580F484639285515C -6597675C679375D87AC78373F95A8C469017982D5C6F81C0829A9041906F920D -5F975D9D6A5971C8767B7B4985E48B0491279A30558761F6F95B76697F850000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000863F87BA88F8908FF95C6D1B70D973DE7D61843DF95D916A99F1F95E4E82 -53756B046B12703E721B862D9E1E524C8FA35D5064E5652C6B166FEB7C437E9C -85CD896489BD62C981D8881F5ECA67176D6A72FC7405746F878290DE4F865D0D -5FA0840A51B763A075654EAE5006516951C968816A117CAE7CB17CE7826F8AD2 -8F1B91CF4FB6513752F554425EEC616E623E65C56ADA6FFE792A85DC882395AD -9A629A6A9E979ECE529B66C66B77701D792B8F6297426190620065236F230000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000714974897DF4806F84EE8F269023934A51BD521752A36D0C70C888C25EC9 -65826BAE6FC27C3E73754EE44F3656F9F95F5CBA5DBA601C73B27B2D7F9A7FCE -8046901E923496F6974898189F614F8B6FA779AE91B496B752DEF960648864C4 -6AD36F5E7018721076E780018606865C8DEF8F0597329B6F9DFA9E75788C797F -7DA083C993049E7F9E938AD658DF5F046727702774CF7C60807E512170287262 -78CA8CC28CDA8CF496F74E8650DA5BEE5ED6659971CE764277AD804A84FC0000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000907C9B279F8D58D85A415C626A136DDA6F0F763B7D2F7E37851E893893E4 -964B528965D267F369B46D416E9C700F7409746075597624786B8B2C985E516D -622E96784F96502B5D196DEA7DB88F2A5F8B61446817F961968652D2808B51DC -51CC695E7A1C7DBE83F196754FDA52295398540F550E5C6560A7674E68A86D6C -728172F874067483F96275E27C6C7F797FB8838988CF88E191CC91D096E29BC9 -541D6F7E71D0749885FA8EAA96A39C579E9F67976DCB743381E89716782C0000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007ACB7B207C926469746A75F278BC78E899AC9B549EBB5BDE5E556F20819C -83AB90884E07534D5A295DD25F4E6162633D666966FC6EFF6F2B7063779E842C -8513883B8F1399459C3B551C62B9672B6CAB8309896A977A4EA159845FD85FD9 -671B7DB27F548292832B83BD8F1E909957CB59B95A925BD06627679A68856BCF -71647F758CB78CE390819B4581088C8A964C9A409EA55B5F6C13731B76F276DF -840C51AA8993514D519552C968C96C94770477207DBF7DEC97629EB56EC50000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000851151A5540D547D660E669D69276E9F76BF7791831784C2879F91699298 -9CF488824FAE519252DF59C65E3D61556478647966AE67D06A216BCD6BDB725F -72617441773877DB801782BC83058B008B288C8C67286C90726776EE77667A46 -9DA96B7F6C92592267268499536F589359995EDF63CF663467736E3A732B7AD7 -82D7932852D95DEB61AE61CB620A62C764AB65E069596B666BCB712173F7755D -7E46821E8302856A8AA38CBF97279D6158A89ED85011520E543B554F65870000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C767D0A7D0B805E868A958096EF52FF6C95726954735A9A5C3E5D4B5F4C -5FAE672A68B669636E3C6E4477097C737F8E85878B0E8FF797619EF45CB760B6 -610D61AB654F65FB65FC6C116CEF739F73C97DE195945BC6871C8B10525D535A -62CD640F64B267346A386CCA73C0749E7B947C957E1B818A823685848FEB96F9 -99C14F34534A53CD53DB62CC642C6500659169C36CEE6F5873ED7554762276E4 -76FC78D078FB792C7D46822C87E08FD4981298EF52C362D464A56E246F510000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000767C8DCB91B192629AEE9B435023508D574A59A85C285E475F77623F653E -65B965C16609678B699C6EC278C57D2180AA8180822B82B384A1868C8A2A8B17 -90A696329F90500D4FF3F96357F95F9862DC6392676F6E43711976C380CC80DA -88F488F589198CE08F29914D966A4F2F4F705E1B67CF6822767D767E9B445E61 -6A0A716971D4756AF9647E41854385E998DC4F107B4F7F7095A551E15E0668B5 -6C3E6C4E6CDB72AF7BC483036CD5743A50FB528858C164D86A9774A776560000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078A7861795E29739F965535E5F018B8A8FA88FAF908A522577A59C499F08 -4E19500251755C5B5E77661E663A67C468C570B3750175C579C97ADD8F279920 -9A084FDD582158315BF6666E6B656D116E7A6F7D73E4752B83E988DC89138B5C -8F144F0F50D55310535C5B935FA9670D798F8179832F8514890789868F398F3B -99A59C12672C4E764FF859495C015CEF5CF0636768D270FD71A2742B7E2B84EC -8702902292D29CF34E0D4ED84FEF50855256526F5426549057E0592B5A660000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005B5A5B755BCC5E9CF9666276657765A76D6E6EA572367B267C3F7F368150 -8151819A8240829983A98A038CA08CE68CFB8D748DBA90E891DC961C964499D9 -9CE7531752065429567458B35954596E5FFF61A4626E66106C7E711A76C67C89 -7CDE7D1B82AC8CC196F0F9674F5B5F175F7F62C25D29670B68DA787C7E439D6C -4E1550995315532A535159835A625E8760B2618A624962796590678769A76BD4 -6BD66BD76BD86CB8F968743575FA7812789179D579D87C837DCB7FE180A50000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000813E81C283F2871A88E88AB98B6C8CBB9119975E98DB9F3B56AC5B2A5F6C -658C6AB36BAF6D5C6FF17015725D73AD8CA78CD3983B61916C3780589A014E4D -4E8B4E9B4ED54F3A4F3C4F7F4FDF50FF53F253F8550655E356DB58EB59625A11 -5BEB5BFA5C045DF35E2B5F99601D6368659C65AF67F667FB68AD6B7B6C996CD7 -6E23700973457802793E7940796079C17BE97D177D728086820D838E84D186C7 -88DF8A508A5E8B1D8CDC8D668FAD90AA98FC99DF9E9D524AF9696714F96A0000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005098522A5C7165636C5573CA7523759D7B97849C917897304E7764926BBA -715E85A94E09F96B674968EE6E17829F8518886B63F76F81921298AF4E0A50B7 -50CF511F554655AA56175B405C195CE05E385E8A5EA05EC260F368516A616E58 -723D724072C076F879657BB17FD488F389F48A738C618CDE971C585E74BD8CFD -55C7F96C7A617D2282727272751F7525F96D7B19588558FB5DBC5E8F5EB65F90 -60556292637F654D669166D966F8681668F27280745E7B6E7D6E7DD67F720000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000080E5821285AF897F8A93901D92E49ECD9F205915596D5E2D60DC66146673 -67906C506DC56F5F77F378A984C691CB932B4ED950CA514855845B0B5BA36247 -657E65CB6E32717D74017444748774BF766C79AA7DDA7E557FA8817A81B38239 -861A87EC8A758DE3907892919425994D9BAE53685C5169546CC46D296E2B820C -859B893B8A2D8AAA96EA9F67526166B96BB27E9687FE8D0D9583965D651D6D89 -71EEF96E57CE59D35BAC602760FA6210661F665F732973F976DB77017B6C0000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008056807281658AA091924E1652E26B726D177A057B397D30F96F8CB053EC -562F58515BB55C0F5C115DE2624063836414662D68B36CBC6D886EAF701F70A4 -71D27526758F758E76197B117BE07C2B7D207D39852C856D86078A34900D9061 -90B592B797F69A374FD75C6C675F6D917C9F7E8C8B168D16901F5B6B5DFD640D -84C0905C98E173875B8B609A677E6DDE8A1F8AA69001980C5237F9707051788E -9396887091D74FEE53D755FD56DA578258FD5AC25B885CAB5CC05E2561010000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000620D624B6388641C653665786A396B8A6C346D196F3171E772E973787407 -74B27626776179C07A577AEA7CB97D8F7DAC7E617F9E81298331849084DA85EA -88968AB08B908F3890429083916C929692B9968B96A796A896D6970098089996 -9AD39B1A53D4587E59195B705BBF6DD16F5A719F742174B9808583FD5DE15F87 -5FAA604265EC6812696F6A536B896D356DF373E376FE77AC7B4D7D148123821C -834084F485638A628AC49187931E980699B4620C88538FF092655D075D270000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005D69745F819D87686FD562FE7FD2893689724E1E4E5850E752DD5347627F -66077E698805965E4F8D5319563659CB5AA45C385C4E5C4D5E025F11604365BD -662F664267BE67F4731C77E2793A7FC5849484CD89968A668A698AE18C558C7A -57F45BD45F0F606F62ED690D6B966E5C71847BD287558B588EFE98DF98FE4F38 -4F814FE1547B5A205BB8613C65B0666871FC7533795E7D33814E81E3839885AA -85CE87038A0A8EAB8F9BF9718FC559315BA45BE660895BE95C0B5FC36C810000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9726DF1700B751A82AF8AF64EC05341F97396D96C0F4E9E4FC45152555E -5A255CE86211725982BD83AA86FE88598A1D963F96C599139D099D5D580A5CB3 -5DBD5E4460E1611563E16A026E2591029354984E9C109F775B895CB86309664F -6848773C96C1978D98549B9F65A18B018ECB95BC55355CA95DD65EB56697764C -83F495C758D362BC72CE9D284EF0592E600F663B6B8379E79D26539354C057C3 -5D16611B66D66DAF788D827E969897445384627C63966DB27E0A814B984D0000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006AFB7F4C9DAF9E1A4E5F503B51B6591C60F963F66930723A8036F97491CE -5F31F975F9767D0482E5846F84BB85E58E8DF9774F6FF978F97958E45B436059 -63DA6518656D6698F97A694A6A236D0B7001716C75D2760D79B37A70F97B7F8A -F97C8944F97D8B9391C0967DF97E990A57045FA165BC6F01760079A68A9E99AD -9B5A9F6C510461B662916A8D81C6504358305F6671098A008AFA5B7C86164FFA -513C56B4594463A96DF95DAA696D51864E884F59F97FF980F9815982F9820000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9836B5F6C5DF98474B57916F9858207824583398F3F8F5DF9869918F987 -F988F9894EA6F98A57DF5F796613F98BF98C75AB7E798B6FF98D90069A5B56A5 -582759F85A1F5BB4F98E5EF6F98FF9906350633BF991693D6C876CBF6D8E6D93 -6DF56F14F99270DF71367159F99371C371D5F994784F786FF9957B757DE3F996 -7E2FF997884D8EDFF998F999F99A925BF99B9CF6F99CF99DF99E60856D85F99F -71B1F9A0F9A195B153ADF9A2F9A3F9A467D3F9A5708E71307430827682D20000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9A695BB9AE59E7D66C4F9A771C18449F9A8F9A9584BF9AAF9AB5DB85F71 -F9AC6620668E697969AE6C386CF36E366F416FDA701B702F715071DF7370F9AD -745BF9AE74D476C87A4E7E93F9AFF9B082F18A608FCEF9B19348F9B29719F9B3 -F9B44E42502AF9B5520853E166F36C6D6FCA730A777F7A6282AE85DD8602F9B6 -88D48A638B7D8C6BF9B792B3F9B8971398104E944F0D4FC950B25348543E5433 -55DA586258BA59675A1B5BE4609FF9B961CA655665FF666468A76C5A6FB30000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000070CF71AC73527B7D87088AA49C329F075C4B6C8373447389923A6EAB7465 -761F7A697E15860A514058C564C174EE751576707FC1909596CD99546E2674E6 -7AA97AAA81E586D987788A1B5A495B8C5B9B68A169006D6373A97413742C7897 -7DE97FEB81188155839E8C4C962E981166F05F8065FA67896C6A738B502D5A03 -6B6A77EE59165D6C5DCD7325754FF9BAF9BB50E551F9582F592D599659DA5BE5 -F9BCF9BD5DA262D76416649364FEF9BE66DCF9BF6A48F9C071FF7464F9C10000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A887AAF7E477E5E80008170F9C287EF89818B209059F9C390809952617E -6B326D747E1F89258FB14FD150AD519752C757C758895BB95EB8614269956D8C -6E676EB6719474627528752C8073833884C98E0A939493DEF9C44E8E4F515076 -512A53C853CB53F35B875BD35C24611A618265F4725B7397744076C279507991 -79B97D067FBD828B85D5865E8FC2904790F591EA968596E896E952D65F6765ED -6631682F715C7A3690C1980A4E91F9C56A526B9E6F907189801882B885530000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000904B969596F297FB851A9B314E90718A96C45143539F54E15713571257A3 -5A9B5AC45BC36028613F63F46C856D396E726E907230733F745782D188818F45 -9060F9C6966298589D1B67088D8A925E4F4D504950DE5371570D59D45A015C09 -617066906E2D7232744B7DEF80C3840E8466853F875F885B89188B02905597CB -9B4F4E734F915112516AF9C7552F55A95B7A5BA55E7C5E7D5EBE60A060DF6108 -610963C465386709F9C867D467DAF9C9696169626CB96D27F9CA6E38F9CB0000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FE173367337F9CC745C7531F9CD7652F9CEF9CF7DAD81FE843888D58A98 -8ADB8AED8E308E42904A903E907A914991C9936EF9D0F9D15809F9D26BD38089 -80B2F9D3F9D45141596B5C39F9D5F9D66F6473A780E48D07F9D79217958FF9D8 -F9D9F9DAF9DB807F620E701C7D68878DF9DC57A0606961476BB78ABE928096B1 -4E59541F6DEB852D967097F398EE63D66CE3909151DD61C981BA9DF94F9D501A -51005B9C610F61FF64EC69056BC5759177E37FA98264858F87FB88638ABC0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B7091AB4E8C4EE54F0AF9DDF9DE593759E8F9DF5DF25F1B5F5B6021F9E0 -F9E1F9E2F9E3723E73E5F9E4757075CDF9E579FBF9E6800C8033808482E18351 -F9E7F9E88CBD8CB39087F9E9F9EA98F4990CF9EBF9EC703776CA7FCA7FCC7FFC -8B1A4EBA4EC152035370F9ED54BD56E059FB5BC55F155FCD6E6EF9EEF9EF7D6A -8335F9F086938A8DF9F1976D9777F9F2F9F34E004F5A4F7E58F965E56EA29038 -93B099B94EFB58EC598A59D96041F9F4F9F57A14F9F6834F8CC3516553440000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9F7F9F8F9F94ECD52695B5582BF4ED4523A54A859C959FF5B505B575B5C -606361486ECB7099716E738674F775B578C17D2B800581EA8328851785C98AEE -8CC796CC4F5C52FA56BC65AB6628707C70B872357DBD828D914C96C09D725B71 -68E76B986F7A76DE5C9166AB6F5B7BB47C2A883696DC4E084ED75320583458BB -58EF596C5C075E335E845F35638C66B267566A1F6AA36B0C6F3F7246F9FA7350 -748B7AE07CA7817881DF81E7838A846C8523859485CF88DD8D1391AC95770000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000969C518D54C957285BB0624D6750683D68936E3D6ED3707D7E2188C18CA1 -8F099F4B9F4E722D7B8F8ACD931A4F474F4E5132548059D05E9562B56775696E -6A176CAE6E1A72D9732A75BD7BB87D3582E783F9845785F78A5B8CAF8E879019 -90B896CE9F5F52E3540A5AE15BC2645865756EF472C4F9FB76847A4D7B1B7C4D -7E3E7FDF837B8B2B8CCA8D648DE18E5F8FEA8FF9906993D14F434F7A50B35168 -5178524D526A5861587C59605C085C555EDB609B623068136BBF6C086FB10000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000714E742075307538755176727B4C7B8B7BAD7BC67E8F8A6E8F3E8F49923F -92939322942B96FB985A986B991E5207622A62986D5976647ACA7BC07D765360 -5CBE5E976F3870B97C9897119B8E9EDE63A5647A87764E014E954EAD505C5075 -544859C35B9A5E405EAD5EF75F8160C5633A653F657465CC6676667867FE6968 -6A896B636C406DC06DE86E1F6E5E701E70A1738E73FD753A775B7887798E7A0B -7A7D7CBE7D8E82478A028AEA8C9E912D914A91D8926692CC9320970697560000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000975C98029F0E52365291557C58245E1D5F1F608C63D068AF6FDF796D7B2C -81CD85BA88FD8AF88E44918D9664969B973D984C9F4A4FCE514651CB52A95632 -5F145F6B63AA64CD65E9664166FA66F9671D689D68D769FD6F156F6E716771E5 -722A74AA773A7956795A79DF7A207A957C977CDF7D447E70808785FB86A48A54 -8ABF8D998E819020906D91E3963B96D59CE565CF7C078DB393C35B585C0A5352 -62D9731D50275B975F9E60B0616B68D56DD9742E7A2E7D427D9C7E31816B0000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008E2A8E35937E94184F5057505DE65EA7632B7F6A4E3B4F4F4F8F505A59DD -80C4546A546855FE594F5B995DDE5EDA665D673167F1682A6CE86D326E4A6F8D -70B773E075877C4C7D027D2C7DA2821F86DB8A3B8A858D708E8A8F339031914E -9152944499D07AF97CA54FCA510151C657C85BEF5CFB66596A3D6D5A6E966FEC -710C756F7AE388229021907596CB99FF83014E2D4EF2884691CD537D6ADB696B -6C41847A589E618E66FE62EF70DD751175C77E5284B88B498D084E4B53EA0000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054AB573057405FD763016307646F652F65E8667A679D67B36B626C606C9A -6F2C77E57825794979577D1980A2810281F3829D82B787188A8CF9FC8D048DBE -907276F47A197A377E548077550755D45875632F64226649664B686D699B6B84 -6D256EB173CD746874A1755B75B976E1771E778B79E67E097E1D81FB852F8897 -8A3A8CD18EEB8FB0903293AD9663967397074F8453F159EA5AC95E19684E74C6 -75BE79E97A9281A386ED8CEA8DCC8FED659F6715F9FD57F76F577DDD8F2F0000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093F696C65FB561F26F844E144F98501F53C955DF5D6F5DEE6B216B6478CB -7B9AF9FE8E498ECA906E6349643E77407A84932F947F9F6A64B06FAF71E674A8 -74DA7AC47C127E827CB27E988B9A8D0A947D9910994C52395BDF64E6672D7D2E -50ED53C358796158615961FA65AC7AD98B928B9650095021527555315A3C5EE0 -5F706134655E660C663666A269CD6EC46F32731676217A938139825983D684BC -50B557F05BC05BE85F6963A178267DB583DC852191C791F5518A67F57B560000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008CAC51C459BB60BD8655501CF9FF52545C3A617D621A62D364F265A56ECC -7620810A8E60965F96BB4EDF5343559859295DDD64C56CC96DFA73947A7F821B -85A68CE48E10907791E795E1962197C651F854F255865FB964A46F887DB48F1F -8F4D943550C95C166CBE6DFB751B77BB7C3D7C648A798AC2581E59BE5E166377 -7252758A776B8ADC8CBC8F125EF366746DF8807D83C18ACB97519BD6FA005243 -66FF6D956EEF7DE08AE6902E905E9AD4521D527F54E86194628462DB68A20000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006912695A6A3570927126785D7901790E79D27A0D8096827882D583498549 -8C828D859162918B91AE4FC356D171ED77D7870089F85BF85FD6675190A853E2 -585A5BF560A4618164607E3D80708525928364AE50AC5D146700589C62BD63A8 -690E69786A1E6E6B76BA79CB82BB84298ACF8DA88FFD9112914B919C93109318 -939A96DB9A369C0D4E11755C795D7AFA7B517BC97E2E84C48E598E748EF89010 -6625693F744351FA672E9EDC51455FE06C9687F2885D887760B481B584030000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008D0553D6543956345A365C31708A7FE0805A810681ED8DA391899A5F9DF2 -50744EC453A060FB6E2C5C644F88502455E45CD95E5F606568946CBB6DC471BE -75D475F476617A1A7A497DC77DFB7F6E81F486A98F1C96C999B39F52524752C5 -98ED89AA4E0367D26F064FB55BE267956C886D78741B782791DD937C87C479E4 -7A315FEB4ED654A4553E58AE59A560F0625362D6673669558235964099B199DD -502C53535544577CFA016258FA0264E2666B67DD6FC16FEF742274388A170000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094385451560657665F48619A6B4E705870AD7DBB8A95596A812B63A27708 -803D8CAA5854642D69BB5B955E116E6FFA038569514C53F0592A6020614B6B86 -6C706CF07B1E80CE82D48DC690B098B1FA0464C76FA464916504514E5410571F -8A0E615F6876FA0575DB7B527D71901A580669CC817F892A9000983950785957 -59AC6295900F9B2A615D727995D657615A465DF4628A64AD64FA67776CE26D3E -722C743678347F7782AD8DDB981752245742677F724874E38CA98FA692110000 -F8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000962A516B53ED634C4F695504609665576C9B6D7F724C72FD7A1789878C9D -5F6D6F8E70F981A8610E4FBF504F624172477BC77DE87FE9904D97AD9A198CB6 -576A5E7367B0840D8A5554205B165E635EE25F0A658380BA853D9589965B4F48 -5305530D530F548654FA57035E036016629B62B16355FA066CE16D6675B17832 -80DE812F82DE846184B2888D8912900B92EA98FD9B915E4566B466DD70117206 -FA074FF5527D5F6A615367536A196F0274E2796888688C7998C798C49A430000 -F9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054C17A1F69538AF78C4A98A899AE5F7C62AB75B276AE88AB907F96425339 -5F3C5FC56CCC73CC7562758B7B4682FE999D4E4F903C4E0B4F5553A6590F5EC8 -66306CB37455837787668CC09050971E9C1558D15B7886508B149DB45BD26068 -608D65F16C576F226FA3701A7F557FF095919592965097D352728F4451FD542B -54B85563558A6ABB6DB57DD88266929C96779E79540854C876D286E495A495D4 -965C4EA24F0959EE5AE65DF760526297676D68416C866E2F7F38809B822A0000 -FA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FA08FA0998054EA5505554B35793595A5B695BB361C869776D77702387F9 -89E38A728AE7908299ED9AB852BE683850165E78674F8347884C4EAB541156AE -73E6911597FF9909995799995653589F865B8A3161B26AF6737B8ED26B4796AA -9A57595572008D6B97694FD45CF45F2661F8665B6CEB70AB738473B973FE7729 -774D7D437D627E2382378852FA0A8CE29249986F5B517A74884098015ACC4FE0 -5354593E5CFD633E6D7972F98105810783A292CF98304EA851445211578B0000 -FB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F626CC26ECE7005705070AF719273E97469834A87A28861900890A293A3 -99A8516E5F5760E0616766B385598E4A91AF978B4E4E4E92547C58D558FA597D -5CB55F2762366248660A66676BEB6D696DCF6E566EF86F946FE06FE9705D72D0 -7425745A74E07693795C7CCA7E1E80E182A6846B84BF864E865F87748B778C6A -93AC9800986560D1621691775A5A660F6DF76E3E743F9B425FFD60DA7B0F54C4 -5F186C5E6CD36D2A70D87D0586798A0C9D3B5316548C5B056A3A706B75750000 -FC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000798D79BE82B183EF8A718B418CA89774FA0B64F4652B78BA78BB7A6B4E38 -559A59505BA65E7B60A363DB6B61666568536E19716574B07D0890849A699C25 -6D3B6ED1733E8C4195CA51F05E4C5FA8604D60F66130614C6643664469A56CC1 -6E5F6EC96F62714C749C76877BC17C27835287579051968D9EC3532F56DE5EFB -5F8A6062609461F7666667036A9C6DEE6FAE7070736A7E6A81BE833486D48AA8 -8CC4528373725B966A6B940454EE56865B5D6548658566C9689F6D8D6DC60000 -FD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000723B80B491759A4D4FAF5019539A540E543C558955C55E3F5F8C673D7166 -73DD900552DB52F3586458CE7104718F71FB85B08A13668885A855A76684714A -8431534955996BC15F595FBD63EE668971478AF18F1D9EBE4F11643A70CB7566 -866760648B4E9DF8514751F653086D3680F89ED166156B23709875D554035C79 -7D078A166B206B3D6B46543860706D3D7FD5820850D651DE559C566B56CD59EC -5B095E0C619961986231665E66E6719971B971BA72A779A77A007FB28A700000 diff --git a/src/runtime/tcl_library/encoding/gb12345.enc b/src/runtime/tcl_library/encoding/gb12345.enc deleted file mode 100644 index 3f3f4d25..00000000 --- a/src/runtime/tcl_library/encoding/gb12345.enc +++ /dev/null @@ -1,1414 +0,0 @@ -# Encoding file: gb12345, double-byte -D -233F 0 83 -21 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300230FB02C902C700A8300330052015FF5E2225202620182019 -201C201D3014301530083009300A300B300C300D300E300F3016301730103011 -00B100D700F72236222722282211220F222A222922082237221A22A522252220 -23122299222B222E2261224C2248223D221D2260226E226F22642265221E2235 -22342642264000B0203220332103FF0400A4FFE0FFE1203000A7211626062605 -25CB25CF25CE25C725C625A125A025B325B2203B219221902191219330130000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -22 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000024882489248A248B248C248D248E248F2490249124922493249424952496 -249724982499249A249B247424752476247724782479247A247B247C247D247E -247F248024812482248324842485248624872460246124622463246424652466 -2467246824690000000032203221322232233224322532263227322832290000 -00002160216121622163216421652166216721682169216A216B000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -23 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FFE5FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFF3CFF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -24 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -25 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -26 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -27 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -28 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000010100E101CE00E0011300E9011B00E8012B00ED01D000EC014D00F301D2 -00F2016B00FA01D400F901D601D801DA01DC00FC00EA00000000000000000000 -0000000000000000000031053106310731083109310A310B310C310D310E310F -3110311131123113311431153116311731183119311A311B311C311D311E311F -3120312131223123312431253126312731283129000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000002500250125022503250425052506250725082509250A250B -250C250D250E250F2510251125122513251425152516251725182519251A251B -251C251D251E251F2520252125222523252425252526252725282529252A252B -252C252D252E252F2530253125322533253425352536253725382539253A253B -253C253D253E253F2540254125422543254425452546254725482549254A254B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000554A963F57C3632854CE550954C0769A764C85F977EE827E7919611B9698 -978D6C285B894FFA630966975CB880FA68489AAF660276CE51F9655671AC7FF1 -895650B2596561CA6FB382AD634C625253ED54277B06516B75A45DF462D48DCB -9776628A801958E997387F777238767D67CF767E64FA4F70655762DC7A176591 -73ED642C6273822C9812677F7248626E62CC4F3474E3534A8FA67D4690A65E6B -6886699C81807D8168D278C5868C938A508D8B1782DE80DE5305891252650000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -31 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000858496F94FDD582198FD5BF662B1583166B48C799B917206676F789160B2 -535153178F2980CC8C9D92C7500D72FD5099618A711988AB595482EF672C7B28 -5D297DB3752D6CF58E668FF8903C9F3B6BD491197B465F7C78A784D6853D7562 -65836BD65E635E8775F99589655D5F0A5FC58F9F58C181C2907F965B97AD908A -7DE88CB662414FBF8B8A535E8FA88FAF8FAE904D6A195F6A819888689C49618B -522B765F5F6C658C70156FF18CD364EF517551B067C44E1979C9990570B30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -32 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075C55E7673BB83E064AD64A592626CE2535A52C3640F92517B944F2F5E1B -82368116818A6E246CCA99C16355535C54FA88DC57E04E0D5E036B657C3F90E8 -601664E6731C88C16750624D8CA1776C8E2991C75F6983DC8521991053C38836 -6B98615A615871E684BC825950096EC485CF64CD7CD969FD66F9834953A07B56 -5074518C6E2C5C648E6D63D253C9832C833667E578B4643D5BDF5C945DEE8A6B -62C667F48C7A6519647B87EC995E8B927E8F93DF752395E1986B660C73160000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -33 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000583456175E389577511F81785EE0655E66A2553150218D8562849214671D -56326F6E5DE2543570928ECA626F64A463A35FB96F8890F481E38FB058756668 -5FF16C8996738D81896F64917A3157CE6A59621054484E587A0B61F26F848AA0 -627F901E9A0179E4540375F4630153196C6090725F1B99B3803B9F524F885C3A -8D647FC565A571BE5145885D87F25D075BF562BD916C75878E8A7A2061017C4C -4EC77DA27785919C81ED521D51FA6A7153A88E8792E496DB6EC19664695A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -34 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000790E513277D7641089F8865563E35DDD7A7F693D50B3823955984E327621 -7A975E625E8A95D652755439708A6376931857826625693F918755076DF37D14 -882262337DBD75B5832878C196CC8FAD614874F78A5E6B64523A8CDC6B218070 -847156F153065F9E53E251D17C97918B7C074FC38EA57BE17AC464675D1450AC -810676017CB96DEC7FE067515B585BF878CB64AE641363AA632B932F642D9054 -7B5476296253592754466B7950A362345E366B864EE38CB8888B5F85902E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -35 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006020803D64D44E3955AE913264A381BD65E66C2E4F46619A6DE18A955F48 -86CB757664CB9EE885696A94520064178E4850125CF679B15C0E52307A3B60BC -905376D75FB75F9776848E6C71C8767B7B4977AA51F3912758244F4E6EF48FEA -65757B1B72C46ECC7FDF5AE162B55E95573084827B2C5E1D5F1F905E7DE0985B -63826EC778989EDE5178975B588A96FB4F4375385E9760E659606FB16BBF7889 -53FC96D551CB52016389540A91E38ABF8DCC7239789F87768FED8ADC758A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -36 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E0176EF53EE91D898029F0E93205B9A8A024E22677151AC846361C252D5 -68DF4F97606B51CD6D1E515C62969B2596618C46901775D890FD77636BD272A2 -73688B80583577798CED675C934D809A5EA66E2159927AEF77ED935B6BB565B7 -7DDE58065151968A5C0D58A956788E726566981356E4920D76FE9041638754C6 -591A596A579B8EB267358DFA8235524160F058AE86FE5CE89D5D4FC4984D8A1B -5A2560E15384627C904F910299136069800C51528033723E990C6D314E8C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -37 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008CB3767C7F707B4F4F104E4F95A56CD573D085E95E06756A7FFB6A0A792C -91E97E4151E1716953CD8FD47BC48CA972AF98EF6CDB574A82B365B980AA623F -963259A84EFF8A2A7D21653E83F2975E556198DB80A5532A8AB9542080BA5EE2 -6CB88CBB82AC915A54296C1B52067D1B58B3711A6C7E7C89596E4EFD5FFF61A4 -7CDE8C505C01695387025CF092D298A8760B70FD902299AE7E2B8AF759499CF3 -4F5B5426592B6577819A5B75627662C28F3B5E456C1F7B264F0F4FD8670D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -38 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D6E6DAA798F88B15F17752B64AB8F144FEF91DC65A7812F81515E9C8150 -8D74526F89868CE65FA950854ED8961C723681798CA05BCC8A0396445A667E1B -54905676560E8A7265396982922384CB6E895E797518674667D17AFF809D8D95 -611F79C665628D1B5CA1525B92FC7F38809B7DB15D176E2F67607BD9768B9AD8 -818F7F947CD5641E93AC7A3F544A54E56B4C64F162089D3F80F3759952729769 -845B683C86E495A39694927B500B54047D6668398DDF801566F45E9A7FB90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -39 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000057C2803F68975DE5653B529F606D9F944F9B8EAC516C5BAB5F13978F6C5E -62F18CA25171920E52FE6E9D82DF72D757A269CB8CFC591F8F9C83C754957B8D -4F306CBD5B6459D19F1353E488319AA88C3780A16545986756FA96C7522E74DC -526E5BE1630289024E5662D0602A68FA95DC5B9851A089C07BA199287F506163 -704C8CAB51495EE3901B7470898F572D78456B789F9C95A88ECC9B3C8A6D7678 -68426AC38DEA8CB4528A8F256EDA68CD934B90ED570B679C88F9904E54C80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009AB85B696D776C264EA55BB399ED916361A890AF97D3542B6DB55BD251FD -558A7F557FF064BC634D65F161BE608D710A6C576F22592F676D822A58D5568E -8C6A6BEB90DD597D8017865F6D695475559D837783CF683879BE548C4F555408 -76D28C8995A16CB36DB88D6B89109DB48CC0563F9ED175D55F8872E0606854FC -4EA86A2A886160528F5F54C470D886799D3B6D2A5B8F5F187D0555894FAF7334 -543C539A50195F8C547C4E4E5FFD745A58FA846B80E1877472D07CCA6E560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F27864E552C8B774E926EEC623782B1562983EF733E6ED1756B52835316 -8A7169D05F8A61F76DEE58DE6B6174B0685390847DE963DB60A3559A76138C62 -71656E195BA65E7B8352614C9EC478FA87577C27768751F060F6714C66435E4C -604D8B0A707063EE8F1D5FBD606286D456DE6BC160946167534960E066668CC4 -7A62670371F4532F8AF18AA87E6A8477660F5A5A9B426E3E6DF78C416D3B4F19 -706B7372621660D1970D8CA8798D64CA573E57FA6A5F75787A3D7A4D7B950000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000808C99518FF96FC08B4F9DC459EC7E3E7DDD5409697568D88F2F7C4D96C6 -53CA602575BE6C7253735AC97D1A64E05E7E810A5DF1858A628051805B634F0E -796D529160B86FDF5BC45BC28A088A1865E25FCC969B59937E7C7D00560967B7 -593E4F735BB652A083A298308CC87532924050477A3C50F967B699D55AC16BB2 -76E358055C167B8B9593714E517C80A9827159787DD87E6D6AA267EC78B19E7C -63C064BF7C215109526A51CF85A66ABB94528E108CE4898B93757BAD4EF60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000050658266528D991E6F386FFA6F975EFA50F559DC5C076F3F6C5F75868523 -69F3596C8B1B532091AC964D854969127901712681A04EA490CA6F869A555B0C -56BC652A927877EF50E5811A72E189D299037E737D5E527F655991758F4E8F03 -53EB7A9663ED63A5768679F88857968E622A52AB7BC0685467706377776B7AED -6F547D5089E359D0621285C982A5754C501F4ECB75A58AA15C4A5DFE7B4B65A4 -91D14ECA6D25895F7DCA932650C58B3990329773664979818FD171FC6D780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000076E152C1834651628396775B66769BE84EAC9A5A7CBE7CB37D934E958B66 -666F9838975C5883656C93E15F9175D997567ADF7AF651C870AF7A9863EA7A76 -7CFE739697ED4E4570784E5D915253A96551820A81FC8205548E5C31759A97A0 -62D872D975BD5C4599D283CA5C40548077E982096CAE805A62D264DA5DE85177 -8DDD8E1E92F84FF153E561FC70AC528763509D515A1F5026773753777D796485 -652B628963985014723589BA51B38A237D76574783CC921E8ECD541B5CFB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004FCA7AE36D5A90E199FF55805496536154AF958B63E9697751F16168520A -582A52D8574E780D770B5EB761777CE0625B62974EA27095800362F770E49760 -577782DB67EF68F578D5984679D16BBB54B353EF6E34514B523B5BA28AB280AF -554358BE61C75751542D7A7A60505B5463A7647353E362635BC767AF54ED7A9F -82E691775EAB89328A8757AE630E8DE880EF584A7B7751085FEB5BEC6B3E5321 -7B5072C268467926773666E051B5866776D45DCB7ABA8475594E9B4150800000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -40 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000994B61276F7057646606634656F062EC64F45ED395CA578362C95587881F -81D88FA35566840A4F868CF485CD5A6A6B0465147C4395CC862D703E8B95652C -89BD61F67E9C721B6FEB7405699472FC5ECA90CE67176D6A648852DE72628001 -4F6C59E5916A70D96F8752D26A0296F79433857E78CA7D2F512158D864C2808B -985E6CEA68F1695E51B7539868A872819ECE7C6C72F896E270557406674E88CF -9BC979AE83898354540F68179E9753B252F5792B6B77522950884F8B4FD00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -41 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075E27ACB7C92701D96B8529B748354E95006806F84EE9023942E5EC96190 -6F237C3E658281C993C8620071497DF47CE751C968817CB1826F51698F1B91CF -667E4EAE8AD264A9804A50DA764271CE5BE5907C6F664E86648294105ED66599 -521788C270C852A373757433679778F7971681E891309C576DCB51DB8CC3541D -62CE73B283F196F69F6192344F367F9A51CC974896755DBA981853E64EE46E9C -740969B4786B993E7559528976246D4167F3516D9F8D807E56A87C607ABF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -42 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000968658DF650F96B46A135A41645F7C0D6F0F964B860676E798715EEC7210 -64C46EF7865C9B6F9E93788C97328DEF8CC29E7F6F5E798493329678622E9A62 -541592C14FA365C55C655C627E37616E6C2F5F8B73876FFE7DD15DD265235B7F -706453754E8263A0756563848F2A502B4F966DEA7DB88AD6863F87BA7F85908F -947C7C6E9A3E88F8843D6D1B99F17D615ABD9EBB746A78BC879E99AC99E1561B -55CE57CB8CB79EA58CE390818109779E9945883B6EFF851366FC61626F2B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -43 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B3E8292832B76F26C135FD983BD732B830593286BDB77DB925A536F8302 -51925E3D8C8C8CBF9EBD73AB679A68859176970971646CA177095A9293826BCF -7F8E66275BD059B95A9A958060B65011840C84996AAC76DF9333731B59225B5F -772F919A97617CDC8FF78B0E5F4C7C7379D889936CCC871C5BC65E4268C97720 -7DBF5195514D52C95A297DEC976282D763CF778485D079D26E3A5EDF59998511 -6EC56C1162BF76BF654F61AB95A9660E879F9CF49298540D547D8B2C64780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -44 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647986116A21819C78E864699B5462B9672B83AB58A89ED86CAB6F205BDE -964C8B00725F67D062C77261755D59C66BCD589366AE5E5552DF6155672876EE -776672677A4662FF54EA5450920990A35A1C7D0D6C164E435976801059485357 -753796E356CA6493816660F19B276DD65462991251855AE980FD59AE9713502A -6CE55C3C64EC4F60533F81A990066EBA852B62C85E7478BE6506637B5FF55A18 -91C09CE55C3F634F80765B7D5699947793B36D8560A86AB8737051DD5BE70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -45 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064F06FD8725B626D92157D1081BF6FC38FB25F04597452AA601259736696 -86507627632A61E67CEF8AFE54E66B509DD76BC685D5561450766F1A556A8DB4 -722C5E156015743662CD6392724C5F986E436D3E65006F5876E478D076FC7554 -522453DB4E539F9065C1802A80D6629B5486522870AE888D8DD16CE1547880DA -57F988F48CE0966A914D4F696C9B567476C6783062A870F96F8E5F6D84EC68DA -787C7BF781A8670B9D6C636778B0576F78129739627962AB528874356BD70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -46 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005564813E75B276AE533975DE50FB5C418B6C7BC7504F72479A1998C46F02 -74E27968648777A562FC983B8CA754C180584E52576A860B840D5E73619174F6 -8A555C4F57616F5198175A4678349B448FEB7C95525664B292EA50D583868461 -83E984B257D46A385703666E6D668B5C66DD7011671F6B3A68F2621A59BB4E03 -51C46F0667D26C8F517668CB59476B6775665D0E81CD9F4A65D7794879419A0E -8D778C484E5E4F0155535951780C56686C238FC468C46C7D6CE38A1663900000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -47 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060706D3D727D626691FA925B534390777C3D4EDF8B194E7E9ED493229257 -524D6F5B90636DFA8B7458795D4C6B206B4969CD55C681547F8C58BB85945F3A -64366A47936C657260846A4B77A755AC50D15DE7979864AC7FF95CED4FCF7AC5 -520783044E14602F7ACA6B3D4FB589AA79E6743452E482B964D279BD5BE26C81 -97528F156C2B50BE537F6E0564CE66746C3060C598038ACB617674CA7AAE79CB -4E1890B174036C4256DA914B6CC58DA8534086C666F28EC05C489A456E200000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -48 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053D65A369F728DA353BB570898746B0A919B6CC9516875CA62F372AC5238 -52F87F3A7094763853749D7269B778BA96C088D97FA4713671C3518967D374E4 -58E4651856B78B93995264FE7E5E60F971B158EC4EC14EBA5FCD97CC4EFB8A8D -5203598A7D0962544ECD65E5620E833884C969AE878D71946EB65BB97D685197 -63C967D480898339881551125B7A59828FB14E736C5D516589258EDF962E854A -745E92ED958F6F6482E55F316492705185A9816E9C13585E8CFD4E0953C10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -49 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000050986563685155D355AA64149A3763835AC2745F82726F8068EE50E7838E -78026BBA52396C997D1750BB5565715E7BE966EC73CA82EB67495C715220717D -886B9583965D64C58D0D81B355846C5562477E55589250B755468CDE664C4E0A -5C1A88F368A2634E7A0D71D2828D52FA97F65C1154E890B57D3959628CD286C7 -820C63688D66651D5C0461FE6D89793E8A2D78377533547B4F388EAB6DF15A20 -7D33795E6C885BE95B38751A814E614E6EF28072751F7525727253477E690000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000770176DB526952DD80565E2B5931734565BD6FD58A695C388671534177F3 -62FE66424EC098DF87555BE68B5853F277E24F7F5C4E99DB59CB5F0F793A58EB -4E1667FF4E8B62ED8A93901D52E2662F55DC566C90694ED54F8D91CB98FE6C0F -5E0260435BA489968A666536624B99965B8858FD6388552E53D776267378852C -6A1E68B36B8A62928F3853D482126DD1758F66F88D165B70719F85AF669166D9 -7F7287009ECD9F205C6C88538FF06A39675F620D7AEA58855EB665786F310000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060555237800D6454887075295E25681362F4971C96D9723D8AB06C347761 -7A0E542E77AC9806821C8AAC78A96714720D65AF64955636601D79C153F87D72 -6B7B80865BFA55E356DB4F3A4F3C98FC5DF39B068073616B980C90015B8B8A1F -8AA6641C825864FB55FD860791654FD77D20901F7C9F50F358516EAF5BBF8A34 -80859178849C7B9796D6968B96A87D8F9AD3788E6B727A57904296A7795F5B6B -640D7B0B84D168AD55067E2E74637D2293966240584C4ED65B83597958540000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000737A64BB8E4B8E0F80CE82D462AC81FA6CF0915E592A614B6C70574D6524 -8CAA7671705858C76A8075F06F6D8B5A8AC757666BEF889278B363A2560670AD -6E6F5858642A580268E0819B55107CD650188EBA6DCC8D9F71D9638F6FE46ED4 -7E278404684390036DD896768A0E5957727985E49A3075BC8B0468AF52548E22 -92BB63D0984C8E44557C9AD466FF568F60D56D9552435C4959296DFB586B7530 -751C606C821481466311689D8FE2773A8DF38CBC94355E165EF3807D70F40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C405EF7505C4EAD5EAD633A8247901A6850916E77B3540C92855F647AE5 -687663457B527D7175DB50776295982D900F51F879C37A8157165F9290145857 -5C60571F541051546E4D571863A8983D817F8715892A9000541E5C6F81C062D6 -625881319D15964099B199DD6A6259A562D3553E631654C786D97AAA5A0374E6 -896A6B6A59168C4C5F4E706373A998114E3870F75B8C7897633D665A769660CB -5B9B5A49842C81556C6A738B4EA167897DB25F8065FA671B5FD859845A010000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005DCD5FAE537197CB90556845570D552F60DF72326FF07DAD8466840E59D4 -504950DE5C3E7DEF672A851A5473754F80C355829B4F4F4D6E2D8B025C096170 -885B761F6E29868A6587805E7D0B543B7A697D0A554F55E17FC174EE64BE8778 -6E267AA9621165A1536763E16C835DEB55DA93A270CF6C618AA35C4B7121856A -68A7543E54346BCB6B664E9463425348821E4F0D4FAE5862620A972766647269 -52FF52D9609F8AA4661471996790897F785277FD6670563B5438932B72A70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A00606F5E0C6089819D591560DC718470EF6EAA6C5072806A8489725E2D -7FD25AB3559C92916D177CFB969962327D30778E87665323971E8F4466875CFD -4FE072F94E0B53A6590F56876380934151484ED99BAE7E9654B88CE2929C8237 -95916D8E5F265ACC986F96AA73FE737B7E23817A99217FA161B2967796507DAB -76F853A2947299997BB189446E5891097FD479658A7360F397FF4EAB98055DF7 -6A6150CF54118C61856D785D9704524A54EE56C292B76D885BB56DC666C90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C0F5B5D68218096562F7B11654869544E9B6B47874E978B5354633E643A -90AA659C81058AE75BEB68B0537887F961C86CC470098B1D5C5185AA82AF92C5 -6B238F9B65B05FFB5FC34FE191C1661F8165732960FA82085211578B5F6290A2 -884C91925E78674F602759D3514451F680F853086C7996C4718A4F114FEE7F9E -673D55C592B979C088967D89589F620C9700865A561898085F908A3184C49157 -53D965ED5E8F755C60647D6E5A7F7DD27E8C8ED255A75BA361F865CB73840000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009078766C77297D629774859B5B787A7496EA884052DB718F5FAA65EC8A62 -5C0B99B45DE16B896C5B8A138A0A905C8FC558D362BC9D099D2854404E2B82BD -7259869C5D1688596DAF96C5555E4E9E8A1D710954BD95B970DF6DF99E7D56B4 -781487125CA95EF68A00985495BB708E6CBF594463A9773C884D6F1482775830 -71D553AD786F96C155015F6671305BB48AFA9A576B83592E9D2679E7694A63DA -4F6F760D7F8A6D0B967D6C274EF07662990A6A236F3E90808170599674760000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -52 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006447582F90657A918B2159DA54AC820085E5898180006930564E8036723A -91CE51B64E5F98016396696D844966F3814B591C6DB24E0058F991AB63D692A5 -4F9D4F0A886398245937907A79FB510080F075916C825B9C59E85F5D690587FB -501A5DF24E5977E34EE585DD6291661390915C7951045F7981C69038808475AB -4EA688D4610F6BC561B67FA976CA6EA28A638B708ABC8B6F5F027FFC7FCC7E79 -8335852D56E06BB797F3967059FB541F92806DEB5BC598F25C395F1596B10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000537082F16AFB5B309DF961C97E93746987A271DF719288058FCE8D0F76C8 -5F717A4E786C662055B264C150AD81C376705EB896CD8E3486F9548F6CF36D8C -6C38607F52C775285E7D512A60A061825C24753190F5923E73366CB96E389149 -670953CB53F34F5191C98A9853C85E7C8FC26DE44E8E76C26986865E611A8F3F -99184FDE903E9B5A61096E1D6F0196854E885A3196E882075DBC79B95B878A9E -7FBD738957DF828B9B315401904755BB5CEA5FA161086B32734480B28B7D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D745BD388D598108C6B99AD9D1B6DF551A4514357A38881539F63F48F45 -571254E15713733F6E907DE3906082D198586028966266F07D048D8A8E8D9470 -5CB37CA4670860A695B2801896F29116530096955141904B85F49196668897F5 -5B55531D783896DC683D54C9707E5BB08F09518D572854B1652266AB8D0A8D1C -81DF846C906D7CDF947F85FB68D765E96FA186A48E81566A902076827AC871E5 -8CAC64C752476FA48CCA600E589E618E66FE8D08624E55B36E23672D8ECB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -55 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000935895987728680569A8548B4E4D70B88A5064589F4B5B857A8450B55BE8 -77BB6C088A797C986CBE76DE65AC8F3E5D845C55863868E7536062307AD96E5B -7DBB6A1F7AE05F706F335F35638C6F3267564E085E338CEC4ED781397634969C -62DB662D627E6CBC8D9971677F695146808753EC906E629854F287C48F4D8005 -937A851790196D5973CD659F771F7504782781FB8C9E91DD5075679575B98A3A -9707632F93AE966384B86399775C5F817319722D6014657462EF6B63653F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E407665912D8B49829D679D652F5431871877E580A281026C414E4B7E54 -807776F4690D6B9657F7503C4F84574063076B628DBE887965E87D195FD7646F -64F281F381F47F6E5E5F5CD95236667A79E97A1A8CEA709975D46EEF6CBB7A92 -4E2D76C55FE0941888777D427A2E816B91CD4EF28846821F54685DDE6D328B05 -7CA58EF880985E1A549276BA5B99665D9A5F73E0682A86DB6731732A8AF88A85 -90107AF971ED716E62C477DA56D14E3B845767F152A986C08CAF94447BC90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F4F6CE8795D99D06293722A62FD5C0878DA8F4964B08CFA7BC66A01838A -88DD599D649E58EF72C0690E93108FFD8D05589C7DB48AC46E96634962D95353 -684C74228301914C55447740707C6FC1517954A88CC759FF6ECB6DC45B5C7D2B -4ED47C7D6ED35B5081EA6F2C5B579B0368D58E2A5B977D9C7E3D7E3191128D70 -594F63CD79DF8DB3535265CF79568A5B963B7D44947D7E825634918967007F6A -5C0A907566285DE64F5067DE505A4F5C57505EA7000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E8D4E0C51404E105EFF53454E154E984E1E9B325B6C56694E2879BA4E3F -53154E47592D723B536E6C1056DF80E499976BD3777E9F174E364E9F9F104E5C -4E694E9382885B5B55C7560F4EC45399539D53B453A553AE97688D0B531A53F5 -532D5331533E8CFE5366536352025208520E52445233528C5274524C525E5261 -525C84AF527D528252815290529351827F544EBB4EC34EC94EC24EE84EE14EEB -4EDE50B44EF34F224F644EF5500050964F094F474F5E4F6765384F5A4F5D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F5F4F574F324F3D4F764F744F914F894F834F8F4F7E4F7B51154F7C5102 -4F945114513C51374FC54FDA4FE34FDC4FD14FDF4FF85029504C4FF3502C500F -502E502D4FFE501C500C5025502850E8504350555048504E506C50C2513B5110 -513A50BA50D6510650ED50EC50E650EE5107510B4EDD6C3D4F5850C94FCE9FA0 -6C467CF4516E5DFD9ECC999856C5591452F9530D8A0753109CEC591951554EA0 -51564EB3886E88A4893B81E088D279805B3488037FB851AB51B151BD51BC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051C7519651A251A58A018A108A0C8A158B338A4E8A258A418A368A468A54 -8A588A528A868A848A7F8A708A7C8A758A6C8A6E8ACD8AE28A618A9A8AA58A91 -8A928ACF8AD18AC98ADB8AD78AC28AB68AF68AEB8B148B018AE48AED8AFC8AF3 -8AE68AEE8ADE8B288B9C8B168B1A8B108B2B8B2D8B568B598B4E8B9E8B6B8B96 -5369537A961D962296219631962A963D963C964296589654965F9689966C9672 -96749688968D969796B09097909B913A9099911490A190B490B390B691340000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090B890B090DF90C590BE913690C490C79106914890E290DC90D790DB90EB -90EF90FE91049122911E91239131912F91399143914682BB595052F152AC52AD -52BE54FF52D052D652F053DF71EE77CD5EF451F551FC9B2F53B65F01755A5DF0 -574C580A57A1587E58BC58C558D15729572C572A573358D9572E572F58E2573B -5742576958E0576B58DA577C577B5768576D5776577357E157A4578C584F57CF -57A75816579357A057D55852581D586457D257B857F457EF57F857E457DD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000580B580D57FD57ED5800581E5819584458205865586C58815889589A5880 -99A89F1961FF8279827D827F828F828A82A88284828E8291858C829982AB8553 -82BE82B085F682CA82E3829882B782AE83A7840784EF82A982B482A182AA829F -82C482E782A482E1830982F782E48622830782DC82F482D282D8830C82FB82D3 -8526831A8306584B716282E082D5831C8351855884FD83088392833C83348331 -839B854E832F834F8347834385888340831785BA832D833A833372966ECE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008541831B85CE855284C08452846483B083788494843583A083AA8393839C -8385837C859F83A9837D8555837B8398839E83A89DAF849383C1840183E583D8 -58078418840B83DD83FD83D6841C84388411840683D483DF840F840383F883F9 -83EA83C583C07E0883F083E1845C8451845A8459847385468488847A85628478 -843C844684698476851E848E8431846D84C184CD84D09A4084BD84D384CA84BF -84BA863A84A184B984B4849793A38577850C750D853884F0861E851F85FA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008556853B84FF84FC8559854885688564855E857A77A285438604857B85A4 -85A88587858F857985EA859C858585B985B785B0861A85C185DC85FF86278605 -86298616863C5EFE5F08593C596980375955595A5958530F5C225C255C2C5C37 -624C636B647662BB62CA62DA62D762EE649F62F66339634B634363AD63F66371 -637A638E6451636D63AC638A636963AE645C63F263F863E064B363C463DE63CE -645263C663BE65046441640B641B6420640C64266421645E6516646D64960000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647A64F764FC6499651B64C064D064D764E464E265096525652E5F0B5FD2 -75195F11535F53F1563053E953E853FB541254165406544B563856C8545456A6 -54435421550454BC5423543254825494547754715464549A5680548454765466 -565D54D054AD54C254B4566054A754A6563555F6547254A3566654BB54BF54CC -567254DA568C54A954AA54A4566554CF54DE561C54E7562E54FD551454F355E9 -5523550F55115527552A5616558F55B5554956C055415555553F5550553C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005537555655755576557755335530555C558B55D2558355B155B955885581 -559F557E55D65591557B55DF560D56B35594559955EA55F755C9561F55D156C1 -55EC55D455E655DD55C455EF55E555F2566F55CC55CD55E855F555E48F61561E -5608560C560156B6562355FE56005627562D565856395657562C564D56625659 -5695564C5654568656645671566B567B567C5685569356AF56D456D756DD56E1 -570756EB56F956FF5704570A5709571C5E435E195E145E115E6C5E585E570000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E375E445E545E5B5E5E5E615C8C5C7A5C8D5C905D875C885CF45C995C91 -5D505C9C5CB55CA25D2C5CAC5CAB5CB15CA35CC15CB75DA75CD25DA05CCB5D22 -5D975D0D5D275D265D2E5D245D1E5D065D1B5DB85D3E5D345D3D5D6C5D5B5D6F -5D815D6B5D4B5D4A5D695D745D825D995D9D8C735DB75DD45F735F775F825F87 -5F89540E5FA05F995F9C5FA85FAD5FB55FBC88625F6172AD72B072B473777341 -72C372C172CE72CD72D272E8736A72E9733B72F472F7730172F3736B72FA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072FB731773137380730A731E731D737C732273397325732C733873317350 -734D73577360736C736F737E821B592598E75924590298E0993398E9993C98EA -98EB98ED98F4990999114F59991B9937993F994399489949994A994C99625E80 -5EE15E8B5E965EA55EA05EB95EB55EBE5EB38CE15ED25ED15EDB5EE85EEA81BA -5FC45FC95FD661FA61AE5FEE616A5FE15FE4613E60B561345FEA5FED5FF86019 -60356026601B600F600D6029602B600A61CC6021615F61E860FB613760420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000606A60F26096609A6173609D60836092608C609B611C60BB60B160DD60D8 -60C660DA60B4612061926115612360F46100610E612B614A617561AC619461A7 -61B761D461F55FDD96B39582958695C8958E9594958C95E595AD95AB9B2E95AC -95BE95B69B2995BF95BD95BC95C395CB95D495D095D595DE4E2C723F62156C35 -6C546C5C6C4A70436C856C906C946C8C6C686C696C746C766C866F596CD06CD4 -6CAD702770186CF16CD76CB26CE06CD66FFC6CEB6CEE6CB16CD36CEF6D870000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D396D276D0C6D796E5E6D076D046D196D0E6D2B6FAE6D2E6D356D1A700F -6EF86F6F6D336D916D6F6DF66F7F6D5E6D936D946D5C6D606D7C6D636E1A6DC7 -6DC56DDE70066DBF6DE06FA06DE66DDD6DD9700B6DAB6E0C6DAE6E2B6E6E6E4E -6E6B6EB26E5F6E866E536E546E326E256E4470676EB16E9870446F2D70056EA5 -6EA76EBD6EBB6EB76F776EB46ECF6E8F6EC26E9F6F627020701F6F246F156EF9 -6F2F6F3670326F746F2A6F096F296F896F8D6F8C6F786F726F7C6F7A70280000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FC96FA76FB96FB66FC26FE16FEE6FDE6FE06FEF701A7023701B70397035 -705D705E5B805B845B955B935BA55BB8752F9A2B64345BE45BEE89305BF08E47 -8B078FB68FD38FD58FE58FEE8FE490878FE690158FE890059004900B90909011 -900D9016902190359036902D902F9044905190529050906890589062905B66B9 -9074907D908290889083908B5F505F575F565F585C3B54AB5C505C595B715C63 -5C687FBC5F335F295F2D82745F3C9B3B5C6E59815983598D5AF55AD759A30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000599759CA5B00599E59A459D259B259AF59D759BE5A6D5B0859DD5B4C59E3 -59D859F95A0C5A095AA75AFB5A115A235A135A405A675A4A5A555A3C5A625B0B -80EC5AAA5A9B5A775A7A5ABE5AEB5AB25B215B2A5AB85AE05AE35B195AD65AE6 -5AD85ADC5B095B175B165B325B375B405C155C1C5B5A5B655B735B515B535B62 -99D499DF99D99A369A5B99D199D89A4D9A4A99E29A6A9A0F9A0D9A059A429A2D -9A169A419A2E9A389A439A449A4F9A659A647CF97D067D027D077D087E8A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D1C7D157D137D3A7D327D317E107D3C7D407D3F7D5D7D4E7D737D867D83 -7D887DBE7DBA7DCB7DD47DC47D9E7DAC7DB97DA37DB07DC77DD97DD77DF97DF2 -7E627DE67DF67DF17E0B7DE17E097E1D7E1F7E1E7E2D7E0A7E117E7D7E397E35 -7E327E467E457E887E5A7E527E6E7E7E7E707E6F7E985E7A757F5DDB753E9095 -738E74A3744B73A2739F73CF73C274CF73B773B373C073C973C873E573D9980A -740A73E973E773DE74BD743F7489742A745B7426742574287430742E742C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -68 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000741B741A7441745C74577455745974A6746D747E749C74D4748074817487 -748B749E74A874A9749074A774DA74BA97D997DE97DC674C6753675E674869AA -6AEA6787676A677367986898677568D66A05689F678B6777677C67F06ADB67D8 -6AF367E967B06AE867D967B567DA67B367DD680067C367B867E26ADF67C16A89 -68326833690F6A48684E6968684469BF6883681D68556A3A68416A9C68406B12 -684A6849682968B5688F687468776893686B6B1E696E68FC6ADD69E768F90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B0F68F0690B6901695768E369106971693969606942695D6B16696B6980 -69986978693469CC6AEC6ADA69CE6AF8696669636979699B69A769BB69AB69AD -69D469B169C169CA6AB369956AE7698D69FF6AA369ED6A176A186A6569F26A44 -6A3E6AA06A506A5B6A356A8E6AD36A3D6A286A586ADE6A916A906AA96A976AAB -733773526B816B826BA46B846B9E6BAE6B8D6BAB6B9B6BAF6BAA8ED48EDB8EF2 -8EFB8F648EF98EFC8EEB8EE48F628EFA8EFE8F0A8F078F058F128F268F1E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008F1F8F1C8F338F468F548ECE62146227621B621F62226221622562246229 -81E7750C74F474FF750F75117513653465EE65EF65F0660A66C7677266036615 -6600708566F7661D66346631663666358006665F66C46641664F668966616657 -66776684668C66D6669D66BE66DB66DC66E666E98CC18CB08CBA8CBD8D048CB2 -8CC58D108CD18CDA8CD58CEB8CE78CFB899889AC89A189BF89A689AF89B289B7 -726E729F725D7266726F727E727F7284728B728D728F72926308633263B00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000643F64D880046BEA6BF36BFD6BFF6BF96C056C0C6C066C0D6C156C186C19 -6C1A6C216C2C6C246C2A6C3265356555656B725872527256723086625216809F -809C809380BC670A80BD80B180AB80AD80B480B76727815680E981DA80DB80C2 -80C480D980CD80D7671080DD811B80F180F480ED81BE810E80F280FC67158112 -8C5A8161811E812C811881328148814C815381748159815A817181608169817C -817D816D8167584D5AB58188818281CF6ED581A381AA81CC672681CA81BB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081C181A66B5F6B376B396B436B466B5998AE98AF98B698BC98C698C86BB3 -5F408F4289F365909F4F659565BC65C665C465C365CC65CE65D265D6716C7152 -7096719770BB70C070B770AB70B171C170CA7110711371DC712F71317173715C -716871457172714A7178717A719871B371B571A871A071E071D471E771F9721D -7228706C71FE716671B9623E623D624362486249793B794079467949795B795C -7953795A79B079577960798E7967797A79AA798A799A79A779B35FD15FD00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000061DF605D605A606760416059606361646106610D615D61A9619D61CB61E3 -62078080807F6C936FA96DFC78EF77F878AD780978687818781165AB782D78B8 -781D7839792A7931781F783C7825782C78237829784E786D786478FD78267850 -7847784C786A78E77893789A788778E378A178A378B278B978A578D478D978C9 -78EC78F2790578F479137924791E79349F959EF99EFB9EFC76F17704779876F9 -77077708771A77227719772D772677357738775E77BC77477743775A77680000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077627765777F778D777D7780778C7791779F77A077B077B577BD753A7540 -754E754B7548755B7572757975837F587F617F5F8A487F687F867F717F797F88 -7F7E76CD76E5883291D291D391D491D991D791D591F791E791E4934691F591F9 -9208922692459211921092019227920492259200923A9266923792339255923D -9238925E926C926D923F9460923092499248924D922E9239943892AC92A0927A -92AA92EE92CF940392E3943A92B192A693A7929692CC92A993F59293927F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093A9929A931A92AB9283940B92A892A39412933892F193D792E592F092EF -92E892BC92DD92F69426942792C392DF92E6931293069369931B934093019315 -932E934393079308931F93199365934793769354936493AA9370938493E493D8 -9428938793CC939893B893BF93A693B093B5944C93E293DC93DD93CD93DE93C3 -93C793D19414941D93F794659413946D9420947993F99419944A9432943F9454 -9463937E77E777EC96C979D579ED79E379EB7A065D477A037A027A1E7A140000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -70 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A397A377A619ECF99A57A707688768E7693769976A474DE74E0752C9CE9 -9CF69D079D069D239D879E159D1D9D1F9DE59D2F9DD99D309D429E1E9D539E1D -9D609D529DF39D5C9D619D939D6A9D6F9D899D989D9A9DC09DA59DA99DC29DBC -9E1A9DD39DDA9DEF9DE69DF29DF89E0C9DFA9E1B7592759476647658759D7667 -75A375B375B475B875C475B175B075C375C2760275CD75E3764675E675E47647 -75E7760375F175FC75FF761076007649760C761E760A7625763B761576190000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -71 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000761B763C762276207640762D7630766D76357643766E7633764D76697654 -765C76567672766F7FCA7AE67A787A797A807A867A887A957AC77AA07AAC7AA8 -7AB67AB3886488698872887D887F888288A2896088B788BC88C9893388CE895D -894788F1891A88FC88E888FE88F08921891989138938890A8964892B89368941 -8966897B758B80E576B876B477DC801280148016801C8020802E80258026802C -802980288031800B803580438046807980528075807189839807980E980F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009821981C6F4198269837984E98539873986298599865986C9870864D8654 -866C87E38806867A867C867B86A8868D868B8706869D86A786A386AA869386A9 -86B686C486B5882386B086BA86B186AF86C987F686B486E986FA87EF86ED8784 -86D0871386DE881086DF86D886D18703870786F88708870A870D87098723873B -871E8725872E871A873E87C88734873187298737873F87828722877D8811877B -87608770874C876E878B8753876387BB876487598765879387AF87CE87D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000087C68788878587AD8797878387AB87E587AC87B587B387CB87D387BD87D1 -87C087CA87DB87EA87E087EE8816881387FE880A881B88218839883C7F367F4C -7F447F4582107AFA7AFD7B087BE47B047B677B0A7B2B7B0F7B477B387B2A7B19 -7B2E7B317B207B257B247B337C697B1E7B587BF37B457B757B4C7B8F7B607B6E -7B7B7B627B727B717B907C007BCB7BB87BAC7B9D7C5C7B857C1E7B9C7BA27C2B -7BB47C237BC17BCC7BDD7BDA7BE57BE67BEA7C0C7BFE7BFC7C0F7C6A7C0B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007C1F7C2A7C267C387C5F7C4081FE82018202820481EC8844822182228264 -822D822F8228822B8238826B82338234823E82448249824B824F825A825F8268 -887E88CA888888D888DF895E7F9D7FA57FA77FAF7FB07FB27C7C65497C917CF2 -7CF67C9E7CA27CB27CBC7CBD7CDD7CC77CCC7CCD7CC87CC57CD77CE8826E66A8 -7FBF7FCE7FD57FE57FE17FE67FE97FEE7FF37CF87E367DA67DAE7E477E9B9EA9 -9EB48D738D848D948D918DB28D678D6D8C478C49914A9150914E914F91640000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -75 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009162916191709169916F91C591C3917291749179918C91859190918D9191 -91A291A391AA91AD91AE91AF91B591B491BA8C559E7A8E898DEB8E058E598E69 -8DB58DBF8DBC8DBA8E4C8DD68DD78DDA8E928DCE8DCF8DDB8DC68DEC8E7A8E55 -8DE38E9A8E8B8DE48E098DFD8E148E1D8E1F8E938E2E8E238E918E3A8E408E39 -8E358E3D8E318E498E418E428EA18E638E4A8E708E768E7C8E6F8E748E858EAA -8E948E908EA68E9E8C788C828C8A8C858C988C94659B89D689F489DA89DC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -76 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089E589EB89F68A3E8B26975A96E9974296EF9706973D9708970F970E972A -97449730973E9F549F5F9F599F609F5C9F669F6C9F6A9F779EFD9EFF9F0996B9 -96BC96BD96CE96D277BF8B8E928E947E92C893E8936A93CA938F943E946B9B77 -9B749B819B839B8E9C787A4C9B929C5F9B909BAD9B9A9BAA9B9E9C6D9BAB9B9D -9C589BC19C7A9C319C399C239C379BC09BCA9BC79BFD9BD69BEA9BEB9BE19BE4 -9BE79BDD9BE29BF09BDB9BF49BD49C5D9C089C109C0D9C129C099BFF9C200000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009C329C2D9C289C259C299C339C3E9C489C3B9C359C459C569C549C529C67 -977C978597C397BD979497C997AB97A397B297B49AB19AB09AB79DBB9AB69ABA -9ABC9AC19AC09ACF9AC29AD69AD59AD19B459B439B589B4E9B489B4D9B519957 -995C992E995599549ADF9AE19AE69AEF9AEB9AFB9AED9AF99B089B0F9B229B1F -9B234E489EBE7E3B9E829E879E889E8B9E9293D69E9D9E9F9EDB9EDC9EDD9EE0 -9EDF9EE29EF79EE79EE59EF29EEF9F229F2C9F2F9F399F379F3D9F3E9F440000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -78 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000896C95C693365F4685147E94538251B24E119F635679515A6DC09F156597 -56419AEE83034E3089075E727A4098B35E7F95A49B0D52128FF45F597A6B98E2 -51E050A24EF7835085915118636E6372524B5938774F8721814A7E8D91CC66C6 -5E1877AD9E7556C99EF46FDB61DE77C770309EB5884A95E282F951ED62514EC6 -673497C67C647E3497A69EAF786E820D672F677E56CC53F098B16AAF7F4E6D82 -7CF04E074FC27E6B9E7956AE9B1A846F53F690C179A67C72613F4E919AD20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -79 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075C796BB53EA7DFB88FD79CD78437B5151C6000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/gb1988.enc b/src/runtime/tcl_library/encoding/gb1988.enc deleted file mode 100644 index 8254684f..00000000 --- a/src/runtime/tcl_library/encoding/gb1988.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: gb1988, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -002000210022002300A500250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D203E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF61FF62FF63FF64FF65FF66FF67FF68FF69FF6AFF6BFF6CFF6DFF6EFF6F -FF70FF71FF72FF73FF74FF75FF76FF77FF78FF79FF7AFF7BFF7CFF7DFF7EFF7F -FF80FF81FF82FF83FF84FF85FF86FF87FF88FF89FF8AFF8BFF8CFF8DFF8EFF8F -FF90FF91FF92FF93FF94FF95FF96FF97FF98FF99FF9AFF9BFF9CFF9DFF9EFF9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/gb2312-raw.enc b/src/runtime/tcl_library/encoding/gb2312-raw.enc deleted file mode 100644 index 813d7a6f..00000000 --- a/src/runtime/tcl_library/encoding/gb2312-raw.enc +++ /dev/null @@ -1,1380 +0,0 @@ -# Encoding file: gb2312, double-byte -D -233F 0 81 -21 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300230FB02C902C700A8300330052015FF5E2225202620182019 -201C201D3014301530083009300A300B300C300D300E300F3016301730103011 -00B100D700F72236222722282211220F222A222922082237221A22A522252220 -23122299222B222E2261224C2248223D221D2260226E226F22642265221E2235 -22342642264000B0203220332103FF0400A4FFE0FFE1203000A7211626062605 -25CB25CF25CE25C725C625A125A025B325B2203B219221902191219330130000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -22 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000024882489248A248B248C248D248E248F2490249124922493249424952496 -249724982499249A249B247424752476247724782479247A247B247C247D247E -247F248024812482248324842485248624872460246124622463246424652466 -2467246824690000000032203221322232233224322532263227322832290000 -00002160216121622163216421652166216721682169216A216B000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -23 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FFE5FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFF3CFF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -24 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -25 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -26 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -27 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -28 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000010100E101CE00E0011300E9011B00E8012B00ED01D000EC014D00F301D2 -00F2016B00FA01D400F901D601D801DA01DC00FC00EA00000000000000000000 -0000000000000000000031053106310731083109310A310B310C310D310E310F -3110311131123113311431153116311731183119311A311B311C311D311E311F -3120312131223123312431253126312731283129000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000002500250125022503250425052506250725082509250A250B -250C250D250E250F2510251125122513251425152516251725182519251A251B -251C251D251E251F2520252125222523252425252526252725282529252A252B -252C252D252E252F2530253125322533253425352536253725382539253A253B -253C253D253E253F2540254125422543254425452546254725482549254A254B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000554A963F57C3632854CE550954C07691764C853C77EE827E788D72319698 -978D6C285B894FFA630966975CB880FA684880AE660276CE51F9655671AC7FF1 -888450B2596561CA6FB382AD634C625253ED54277B06516B75A45DF462D48DCB -9776628A8019575D97387F627238767D67CF767E64464F708D2562DC7A176591 -73ED642C6273822C9881677F7248626E62CC4F3474E3534A529E7ECA90A65E2E -6886699C81807ED168D278C5868C9551508D8C2482DE80DE5305891252650000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -31 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000858496F94FDD582199715B9D62B162A566B48C799C8D7206676F789160B2 -535153178F8880CC8D1D94A1500D72C8590760EB711988AB595482EF672C7B28 -5D297EF7752D6CF58E668FF8903C9F3B6BD491197B145F7C78A784D6853D6BD5 -6BD96BD65E015E8775F995ED655D5F0A5FC58F9F58C181C2907F965B97AD8FB9 -7F168D2C62414FBF53D8535E8FA88FA98FAB904D68075F6A819888689CD6618B -522B762A5F6C658C6FD26EE85BBE6448517551B067C44E1979C9997C70B30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -32 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075C55E7673BB83E064AD62E894B56CE2535A52C3640F94C27B944F2F5E1B -82368116818A6E246CCA9A736355535C54FA886557E04E0D5E036B657C3F90E8 -601664E6731C88C16750624D8D22776C8E2991C75F6983DC8521991053C28695 -6B8B60ED60E8707F82CD82314ED36CA785CF64CD7CD969FD66F9834953957B56 -4FA7518C6D4B5C428E6D63D253C9832C833667E578B4643D5BDF5C945DEE8BE7 -62C667F48C7A640063BA8749998B8C177F2094F24EA7961098A4660C73160000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -33 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000573A5C1D5E38957F507F80A05382655E7545553150218D856284949E671D -56326F6E5DE2543570928F66626F64A463A35F7B6F8890F481E38FB05C186668 -5FF16C8996488D81886C649179F057CE6A59621054484E587A0B60E96F848BDA -627F901E9A8B79E4540375F4630153196C608FDF5F1B9A70803B9F7F4F885C3A -8D647FC565A570BD514551B2866B5D075BA062BD916C75748E0C7A2061017B79 -4EC77EF877854E1181ED521D51FA6A7153A88E87950496CF6EC19664695A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -34 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000784050A877D7641089E6590463E35DDD7A7F693D4F20823955984E3275AE -7A975E625E8A95EF521B5439708A6376952457826625693F918755076DF37EAF -882262337EF075B5832878C196CC8F9E614874F78BCD6B64523A8D506B21806A -847156F153064ECE4E1B51D17C97918B7C074FC38E7F7BE17A9C64675D1450AC -810676017CB96DEC7FE067515B585BF878CB64AE641363AA632B9519642D8FBE -7B5476296253592754466B7950A362345E266B864EE38D37888B5F85902E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -35 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006020803D62C54E39535590F863B880C665E66C2E4F4660EE6DE18BDE5F39 -86CB5F536321515A83616863520063638E4850125C9B79775BFC52307A3B60BC -905376D75FB75F9776848E6C706F767B7B4977AA51F3909358244F4E6EF48FEA -654C7B1B72C46DA47FDF5AE162B55E95573084827B2C5E1D5F1F90127F1498A0 -63826EC7789870B95178975B57AB75354F4375385E9760E659606DC06BBF7889 -53FC96D551CB52016389540A94938C038DCC7239789F87768FED8C0D53E00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -36 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E0176EF53EE948998769F0E952D5B9A8BA24E224E1C51AC846361C252A8 -680B4F97606B51BB6D1E515C6296659796618C46901775D890FD77636BD2728A -72EC8BFB583577798D4C675C9540809A5EA66E2159927AEF77ED953B6BB565AD -7F0E58065151961F5BF958A954288E726566987F56E4949D76FE9041638754C6 -591A593A579B8EB267358DFA8235524160F0581586FE5CE89E454FC4989D8BB9 -5A2560765384627C904F9102997F6069800C513F80335C1499756D314E8C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -37 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008D3053D17F5A7B4F4F104E4F96006CD573D085E95E06756A7FFB6A0A77FE -94927E4151E170E653CD8FD483038D2972AF996D6CDB574A82B365B980AA623F -963259A84EFF8BBF7EBA653E83F2975E556198DE80A5532A8BFD542080BA5E9F -6CB88D3982AC915A54296C1B52067EB7575F711A6C7E7C89594B4EFD5FFF6124 -7CAA4E305C0167AB87025CF0950B98CE75AF70FD902251AF7F1D8BBD594951E4 -4F5B5426592B657780A45B75627662C28F905E456C1F7B264F0F4FD8670D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -38 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D6E6DAA798F88B15F17752B629A8F854FEF91DC65A7812F81515E9C8150 -8D74526F89868D4B590D50854ED8961C723681798D1F5BCC8BA3964459877F1A -54905676560E8BE565396982949976D66E895E727518674667D17AFF809D8D76 -611F79C665628D635188521A94A27F38809B7EB25C976E2F67607BD9768B9AD8 -818F7F947CD5641E95507A3F544A54E56B4C640162089E3D80F3759952729769 -845B683C86E49601969494EC4E2A54047ED968398DDF801566F45E9A7FB90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -39 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000057C2803F68975DE5653B529F606D9F9A4F9B8EAC516C5BAB5F135DE96C5E -62F18D21517194A952FE6C9F82DF72D757A267848D2D591F8F9C83C754957B8D -4F306CBD5B6459D19F1353E486CA9AA88C3780A16545987E56FA96C7522E74DC -52505BE1630289024E5662D0602A68FA51735B9851A089C27BA199867F5060EF -704C8D2F51495E7F901B747089C4572D78455F529F9F95FA8F689B3C8BE17678 -684267DC8DEA8D35523D8F8A6EDA68CD950590ED56FD679C88F98FC754C80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009AB85B696D776C264EA55BB39A87916361A890AF97E9542B6DB55BD251FD -558A7F557FF064BC634D65F161BE608D710A6C576C49592F676D822A58D5568E -8C6A6BEB90DD597D801753F76D695475559D837783CF683879BE548C4F555408 -76D28C8996026CB36DB88D6B89109E648D3A563F9ED175D55F8872E0606854FC -4EA86A2A886160528F7054C470D886799E3F6D2A5B8F5F187EA255894FAF7334 -543C539A5019540E547C4E4E5FFD745A58F6846B80E1877472D07CCA6E560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F27864E552C62A44E926CAA623782B154D7534E733E6ED1753B52125316 -8BDD69D05F8A60006DEE574F6B2273AF68538FD87F13636260A3552475EA8C62 -71156DA35BA65E7B8352614C9EC478FA87577C27768751F060F6714C66435E4C -604D8C0E707063258F895FBD606286D456DE6BC160946167534960E066668D3F -79FD4F1A70E96C478BB38BF27ED88364660F5A5A9B426D516DF78C416D3B4F19 -706B83B7621660D1970D8D27797851FB573E57FA673A75787A3D79EF7B950000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000808C99658FF96FC08BA59E2159EC7EE97F095409678168D88F917C4D96C6 -53CA602575BE6C7253735AC97EA7632451E0810A5DF184DF628051805B634F0E -796D524260B86D4E5BC45BC28BA18BB065E25FCC964559937EE77EAA560967B7 -59394F735BB652A0835A988A8D3E753294BE50477A3C4EF767B69A7E5AC16B7C -76D1575A5C167B3A95F4714E517C80A9827059787F04832768C067EC78B17877 -62E363617B804FED526A51CF835069DB92748DF58D3189C1952E7BAD4EF60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000506582305251996F6E106E856DA75EFA50F559DC5C066D466C5F7586848B -686859568BB253209171964D854969127901712680F64EA490CA6D479A845A07 -56BC640594F077EB4FA5811A72E189D2997A7F347EDE527F655991758F7F8F83 -53EB7A9663ED63A5768679F888579636622A52AB8282685467706377776B7AED -6D017ED389E359D0621285C982A5754C501F4ECB75A58BEB5C4A5DFE7B4B65A4 -91D14ECA6D25895F7D2795264EC58C288FDB9773664B79818FD170EC6D780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C3D52B283465162830E775B66769CB84EAC60CA7CBE7CB37ECF4E958B66 -666F988897595883656C955C5F8475C997567ADF7ADE51C070AF7A9863EA7A76 -7EA0739697ED4E4570784E5D915253A9655165E781FC8205548E5C31759A97A0 -62D872D975BD5C459A7983CA5C40548077E94E3E6CAE805A62D2636E5DE85177 -8DDD8E1E952F4FF153E560E770AC526763509E435A1F5026773753777EE26485 -652B628963985014723589C951B38BC07EDD574783CC94A7519B541B5CFB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004FCA7AE36D5A90E19A8F55805496536154AF5F0063E9697751EF6168520A -582A52D8574E780D770B5EB761777CE0625B62974EA27095800362F770E49760 -577782DB67EF68F578D5989779D158F354B353EF6E34514B523B5BA28BFE80AF -554357A660735751542D7A7A60505B5463A762A053E362635BC767AF54ED7A9F -82E691775E9388E4593857AE630E8DE880EF57577B774FA95FEB5BBD6B3E5321 -7B5072C2684677FF773665F751B54E8F76D45CBF7AA58475594E9B4150800000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -40 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000998861276E8357646606634656F062EC62695ED39614578362C955878721 -814A8FA3556683B167658D5684DD5A6A680F62E67BEE961151706F9C8C3063FD -89C861D27F0670C26EE57405699472FC5ECA90CE67176D6A635E52B372628001 -4F6C59E5916A70D96D9D52D24E5096F7956D857E78CA7D2F5121579264C2808B -7C7B6CEA68F1695E51B7539868A872819ECE7BF172F879BB6F137406674E91CC -9CA4793C83898354540F68174E3D538952B1783E5386522950884F8B4FD00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -41 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075E27ACB7C926CA596B6529B748354E94FE9805483B28FDE95705EC9601C -6D9F5E18655B813894FE604B70BC7EC37CAE51C968817CB1826F4E248F8691CF -667E4EAE8C0564A9804A50DA759771CE5BE58FBD6F664E86648295635ED66599 -521788C270C852A3730E7433679778F797164E3490BB9CDE6DCB51DB8D41541D -62CE73B283F196F69F8494C34F367F9A51CC707596755CAD988653E64EE46E9C -740969B4786B998F7559521876246D4167F3516D9F99804B54997B3C7ABF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -42 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009686578462E29647697C5A0464027BD36F0F964B82A6536298855E907089 -63B35364864F9C819E93788C97328DEF8D429E7F6F5E79845F559646622E9A74 -541594DD4FA365C55C655C617F1586516C2F5F8B73876EE47EFF5CE6631B5B6A -6EE653754E7163A0756562A18F6E4F264ED16CA67EB68BBA841D87BA7F57903B -95237BA99AA188F8843D6D1B9A867EDC59889EBB739B780186829A6C9A82561B -541757CB4E709EA653568FC881097792999286EE6EE1851366FC61626F2B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -43 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008C298292832B76F26C135FD983BD732B8305951A6BDB77DB94C6536F8302 -51925E3D8C8C8D384E4873AB679A68859176970971646CA177095A9295416BCF -7F8E66275BD059B95A9A95E895F74EEC840C84996AAC76DF9530731B68A65B5F -772F919A97617CDC8FF78C1C5F257C7379D889C56CCC871C5BC65E4268C97720 -7EF55195514D52C95A297F05976282D763CF778485D079D26E3A5E9959998511 -706D6C1162BF76BF654F60AF95FD660E879F9E2394ED540D547D8C2C64780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -44 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647986116A21819C78E864699B5462B9672B83AB58A89ED86CAB6F205BDE -964C8C0B725F67D062C772614EA959C66BCD589366AE5E5552DF6155672876EE -776672677A4662FF54EA545094A090A35A1C7EB36C164E435976801059485357 -753796BE56CA63208111607C95F96DD65462998151855AE980FD59AE9713502A -6CE55C3C62DF4F60533F817B90066EBA852B62C85E7478BE64B5637B5FF55A18 -917F9E1F5C3F634F80425B7D556E954A954D6D8560A867E072DE51DD5B810000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -45 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062E76CDE725B626D94AE7EBD81136D53519C5F04597452AA601259736696 -8650759F632A61E67CEF8BFA54E66B279E256BB485D5545550766CA4556A8DB4 -722C5E156015743662CD6392724C5F986E436D3E65006F5876D878D076FC7554 -522453DB4E535E9E65C1802A80D6629B5486522870AE888D8DD16CE1547880DA -57F988F48D54966A914D4F696C9B55B776C6783062A870F96F8E5F6D84EC68DA -787C7BF781A8670B9E4F636778B0576F78129739627962AB528874356BD70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -46 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005564813E75B276AE533975DE50FB5C418B6C7BC7504F72479A9798D86F02 -74E27968648777A562FC98918D2B54C180584E52576A82F9840D5E7351ED74F6 -8BC45C4F57616CFC98875A4678349B448FEB7C955256625194FA4EC683868461 -83E984B257D467345703666E6D668C3166DD7011671F6B3A6816621A59BB4E03 -51C46F0667D26C8F517668CB59476B6775665D0E81109F5065D7794879419A91 -8D775C824E5E4F01542F5951780C56686C148FC45F036C7D6CE38BAB63900000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -47 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060706D3D72756266948E94C553438FC17B7E4EDF8C264E7E9ED494B194B3 -524D6F5C90636D458C3458115D4C6B206B4967AA545B81547F8C589985375F3A -62A26A47953965726084686577A74E544FA85DE7979864AC7FD85CED4FCF7A8D -520783044E14602F7A8394A64FB54EB279E6743452E482B964D279BD5BDD6C81 -97528F7B6C22503E537F6E0564CE66746C3060C598778BF75E86743C7A7779CB -4E1890B174036C4256DA914B6CC58D8B533A86C666F28EAF5C489A716E200000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -48 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053D65A369F8B8DA353BB570898A76743919B6CC9516875CA62F372AC5238 -529D7F3A7094763853749E4A69B7786E96C088D97FA4713671C3518967D374E4 -58E4651856B78BA9997662707ED560F970ED58EC4EC14EBA5FCD97E74EFB8BA4 -5203598A7EAB62544ECD65E5620E833884C98363878D71946EB65BB97ED25197 -63C967D480898339881551125B7A59828FB14E736C5D516589258F6F962E854A -745E951095F06DA682E55F3164926D128428816E9CC3585E8D5B4E0953C10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -49 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F1E6563685155D34E2764149A9A626B5AC2745F82726DA968EE50E7838E -7802674052396C997EB150BB5565715E7B5B665273CA82EB67495C715220717D -886B95EA965564C58D6181B355846C5562477F2E58924F2455468D4F664C4E0A -5C1A88F368A2634E7A0D70E7828D52FA97F65C1154E890B57ECD59628D4A86C7 -820C820D8D6664445C0461516D89793E8BBE78377533547B4F388EAB6DF15A20 -7EC5795E6C885BA15A76751A80BE614E6E1758F0751F7525727253477EF30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000770176DB526980DC57235E08593172EE65BD6E7F8BD75C388671534177F3 -62FE65F64EC098DF86805B9E8BC653F277E24F7F5C4E9A7659CB5F0F793A58EB -4E1667FF4E8B62ED8A93901D52BF662F55DC566C90024ED54F8D91CA99706C0F -5E0260435BA489C68BD56536624B99965B885BFF6388552E53D77626517D852C -67A268B36B8A62928F9353D482126DD1758F4E668D4E5B70719F85AF669166D9 -7F7287009ECD9F205C5E672F8FF06811675F620D7AD658855EB665706F310000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060555237800D6454887075295E05681362F4971C53CC723D8C016C347761 -7A0E542E77AC987A821C8BF47855671470C165AF64955636601D79C153F84E1D -6B7B80865BFA55E356DB4F3A4F3C99725DF3677E80386002988290015B8B8BBC -8BF5641C825864DE55FD82CF91654FD77D20901F7C9F50F358516EAF5BBF8BC9 -80839178849C7B97867D968B968F7EE59AD3788E5C817A57904296A7795F5B59 -635F7B0B84D168AD55067F2974107D2295016240584C4ED65B83597958540000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000736D631E8E4B8E0F80CE82D462AC53F06CF0915E592A60016C70574D644A -8D2A762B6EE9575B6A8075F06F6D8C2D8C0857666BEF889278B363A253F970AD -6C645858642A580268E0819B55107CD650188EBA6DCC8D9F70EB638F6D9B6ED4 -7EE68404684390036DD896768BA85957727985E4817E75BC8A8A68AF52548E22 -951163D098988E44557C4F5366FF568F60D56D9552435C4959296DFB586B7530 -751C606C82148146631167618FE2773A8DF38D3494C15E165385542C70C30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C405EF7505C4EAD5EAD633A8247901A6850916E77B3540C94DC5F647AE5 -687663457B527EDF75DB507762955934900F51F879C37A8156FE5F9290146D82 -5C60571F541051546E4D56E263A89893817F8715892A9000541E5C6F81C062D6 -625881319E3596409A6E9A7C692D59A562D3553E631654C786D96D3C5A0374E6 -889C6B6A59168C4C5F2F6E7E73A9987D4E3870F75B8C7897633D665A769660CB -5B9B5A494E0781556C6A738B4EA167897F515F8065FA671B5FD859845A010000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005DCD5FAE537197E68FDD684556F4552F60DF4E3A6F4D7EF482C7840E59D4 -4F1F4F2A5C3E7EAC672A851A5473754F80C355829B4F4F4D6E2D8C135C096170 -536B761F6E29868A658795FB7EB9543B7A337D0A95EE55E17FC174EE631D8717 -6DA17A9D621165A1536763E16C835DEB545C94A84E4C6C618BEC5C4B65E0829C -68A7543E54346BCB6B664E9463425348821E4F0D4FAE575E620A96FE66647269 -52FF52A1609F8BEF661471996790897F785277FD6670563B54389521727A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A00606F5E0C6089819D591560DC718470EF6EAA6C5072806A8488AD5E2D -4E605AB3559C94E36D177CFB9699620F7EC6778E867E5323971E8F9666875CE1 -4FA072ED4E0B53A6590F54136380952851484ED99C9C7EA454B88D2488548237 -95F26D8E5F265ACC663E966973B0732E53BF817A99857FA15BAA967796507EBF -76F853A2957699997BB189446E584E617FD479658BE660F354CD4EAB98795DF7 -6A6150CF54118C618427785D9704524A54EE56A395006D885BB56DC666530000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C0F5B5D6821809655787B11654869544E9B6B47874E978B534F631F643A -90AA659C80C18C10519968B0537887F961C86CC46CFB8C225C5185AA82AF950C -6B238F9B65B05FFB5FC34FE18845661F8165732960FA51745211578B5F6290A2 -884C91925E78674F602759D3514451F680F853086C7996C4718A4F114FEE7F9E -673D55C5950879C088967EE3589F620C9700865A5618987B5F908BB884C49157 -53D965ED5E8F755C60647D6E5A7F7EEA7EED8F6955A75BA360AC65CB73840000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009009766377297EDA9774859B5B667A7496EA884052CB718F5FAA65EC8BE2 -5BFB9A6F5DE16B896C5B8BAD8BAF900A8FC5538B62BC9E269E2D54404E2B82BD -7259869C5D1688596DAF96C554D14E9A8BB6710954BD960970DF6DF976D04E25 -781487125CA95EF68A00989C960E708E6CBF594463A9773C884D6F1482735830 -71D5538C781A96C155015F6671305BB48C1A9A8C6B83592E9E2F79E76768626C -4F6F75A17F8A6D0B96336C274EF075D2517B68376F3E90808170599674760000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -52 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064475C2790657A918C2359DA54AC8200836F898180006930564E80367237 -91CE51B64E5F987563964E1A53F666F3814B591C6DB24E0058F9533B63D694F1 -4F9D4F0A886398905937905779FB4EEA80F075916C825B9C59E85F5D69058681 -501A5DF24E5977E34EE5827A6291661390915C794EBF5F7981C69038808475AB -4EA688D4610F6BC55FC64E4976CA6EA28BE38BAE8C0A8BD15F027FFC7FCC7ECE -8335836B56E06BB797F3963459FB541F94F66DEB5BC5996E5C395F1596900000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000537082F16A315A749E705E947F2883B984248425836787478FCE8D6276C8 -5F719896786C662054DF62E54F6381C375C85EB896CD8E0A86F9548F6CF36D8C -6C38607F52C775285E7D4F1860A05FE75C24753190AE94C072B96CB96E389149 -670953CB53F34F5191C98BF153C85E7C8FC26DE44E8E76C26986865E611A8206 -4F594FDE903E9C7C61096E1D6E1496854E885A3196E84E0E5C7F79B95B878BED -7FBD738957DF828B90C15401904755BB5CEA5FA161086B3272F180B28A890000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D745BD388D598848C6B9A6D9E336E0A51A4514357A38881539F63F48F95 -56ED54585706733F6E907F188FDC82D1613F6028966266F07EA68D8A8DC394A5 -5CB37CA4670860A6960580184E9190E75300966851418FD08574915D665597F5 -5B55531D78386742683D54C9707E5BB08F7D518D572854B1651266828D5E8D43 -810F846C906D7CDF51FF85FB67A365E96FA186A48E81566A90207682707671E5 -8D2362E952196CFD8D3C600E589E618E66FE8D60624E55B36E23672D8F670000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -55 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094E195F87728680569A8548B4E4D70B88BC86458658B5B857A84503A5BE8 -77BB6BE18A797C986CBE76CF65A98F975D2D5C5586386808536062187AD96E5B -7EFD6A1F7AE05F706F335F20638C6DA867564E085E108D264ED780C07634969C -62DB662D627E6CBC8D7571677F695146808753EC906E629854F286F08F998005 -951785178FD96D5973CD659F771F7504782781FB8D1E94884FA6679575B98BCA -9707632F9547963584B8632377415F8172F04E896014657462EF6B63653F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E2775C790D18BC1829D679D652F5431871877E580A281026C414E4B7EC7 -804C76F4690D6B966267503C4F84574063076B628DBE53EA65E87EB85FD7631A -63B781F381F47F6E5E1C5CD95236667A79E97A1A8D28709975D46EDE6CBB7A92 -4E2D76C55FE0949F88777EC879CD80BF91CD4EF24F17821F54685DDE6D328BCC -7CA58F7480985E1A549276B15B99663C9AA473E0682A86DB6731732A8BF88BDB -90107AF970DB716E62C477A956314E3B845767F152A986C08D2E94F87B510000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F4F6CE8795D9A7B6293722A62FD4E1378168F6C64B08D5A7BC668695E84 -88C55986649E58EE72B6690E95258FFD8D5857607F008C0651C6634962D95353 -684C74228301914C55447740707C6D4A517954A88D4459FF6ECB6DC45B5C7D2B -4ED47C7D6ED35B5081EA6E0D5B579B0368D58E2A5B977EFC603B7EB590B98D70 -594F63CD79DF8DB3535265CF79568BC5963B7EC494BB7E825634918967007F6A -5C0A907566285DE64F5067DE505A4F5C57505EA7000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E8D4E0C51404E105EFF53454E154E984E1E9B325B6C56694E2879BA4E3F -53154E47592D723B536E6C1056DF80E499976BD3777E9F174E364E9F9F104E5C -4E694E9382885B5B556C560F4EC4538D539D53A353A553AE97658D5D531A53F5 -5326532E533E8D5C5366536352025208520E522D5233523F5240524C525E5261 -525C84AF527D528252815290529351827F544EBB4EC34EC94EC24EE84EE14EEB -4EDE4F1B4EF34F224F644EF54F254F274F094F2B4F5E4F6765384F5A4F5D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F5F4F574F324F3D4F764F744F914F894F834F8F4F7E4F7B4FAA4F7C4FAC -4F944FE64FE84FEA4FC54FDA4FE34FDC4FD14FDF4FF85029504C4FF3502C500F -502E502D4FFE501C500C50255028507E504350555048504E506C507B50A550A7 -50A950BA50D6510650ED50EC50E650EE5107510B4EDD6C3D4F584F654FCE9FA0 -6C467C74516E5DFD9EC999985181591452F9530D8A07531051EB591951554EA0 -51564EB3886E88A44EB5811488D279805B3488037FB851AB51B151BD51BC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051C7519651A251A58BA08BA68BA78BAA8BB48BB58BB78BC28BC38BCB8BCF -8BCE8BD28BD38BD48BD68BD88BD98BDC8BDF8BE08BE48BE88BE98BEE8BF08BF3 -8BF68BF98BFC8BFF8C008C028C048C078C0C8C0F8C118C128C148C158C168C19 -8C1B8C188C1D8C1F8C208C218C258C278C2A8C2B8C2E8C2F8C328C338C358C36 -5369537A961D962296219631962A963D963C964296499654965F9667966C9672 -96749688968D969796B09097909B909D909990AC90A190B490B390B690BA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090B890B090CF90C590BE90D090C490C790D390E690E290DC90D790DB90EB -90EF90FE91049122911E91239131912F913991439146520D594252A252AC52AD -52BE54FF52D052D652F053DF71EE77CD5EF451F551FC9B2F53B65F01755A5DEF -574C57A957A1587E58BC58C558D15729572C572A57335739572E572F575C573B -574257695785576B5786577C577B5768576D5776577357AD57A4578C57B257CF -57A757B4579357A057D557D857DA57D957D257B857F457EF57F857E457DD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000580B580D57FD57ED5800581E5819584458205865586C58815889589A5880 -99A89F1961FF8279827D827F828F828A82A88284828E82918297829982AB82B8 -82BE82B082C882CA82E3829882B782AE82CB82CC82C182A982B482A182AA829F -82C482CE82A482E1830982F782E4830F830782DC82F482D282D8830C82FB82D3 -8311831A83068314831582E082D5831C8351835B835C83088392833C83348331 -839B835E832F834F83478343835F834083178360832D833A8333836683650000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008368831B8369836C836A836D836E83B0837883B383B483A083AA8393839C -8385837C83B683A9837D83B8837B8398839E83A883BA83BC83C1840183E583D8 -58078418840B83DD83FD83D6841C84388411840683D483DF840F840383F883F9 -83EA83C583C0842683F083E1845C8451845A8459847384878488847A84898478 -843C844684698476848C848E8431846D84C184CD84D084E684BD84D384CA84BF -84BA84E084A184B984B4849784E584E3850C750D853884F08539851F853A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008556853B84FF84FC8559854885688564855E857A77A285438572857B85A4 -85A88587858F857985AE859C858585B985B785B085D385C185DC85FF86278605 -86298616863C5EFE5F08593C594180375955595A5958530F5C225C255C2C5C34 -624C626A629F62BB62CA62DA62D762EE632262F66339634B634363AD63F66371 -637A638E63B4636D63AC638A636963AE63BC63F263F863E063FF63C463DE63CE -645263C663BE64456441640B641B6420640C64266421645E6484646D64960000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647A64B764B8649964BA64C064D064D764E464E265096525652E5F0B5FD2 -75195F11535F53F153FD53E953E853FB541254165406544B5452545354545456 -54435421545754595423543254825494547754715464549A549B548454765466 -549D54D054AD54C254B454D254A754A654D354D4547254A354D554BB54BF54CC -54D954DA54DC54A954AA54A454DD54CF54DE551B54E7552054FD551454F35522 -5523550F55115527552A5567558F55B55549556D55415555553F5550553C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005537555655755576557755335530555C558B55D2558355B155B955885581 -559F557E55D65591557B55DF55BD55BE5594559955EA55F755C9561F55D155EB -55EC55D455E655DD55C455EF55E555F255F355CC55CD55E855F555E48F94561E -5608560C56015624562355FE56005627562D565856395657562C564D56625659 -565C564C5654568656645671566B567B567C5685569356AF56D456D756DD56E1 -56F556EB56F956FF5704570A5709571C5E0F5E195E145E115E315E3B5E3C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E375E445E545E5B5E5E5E615C8C5C7A5C8D5C905C965C885C985C995C91 -5C9A5C9C5CB55CA25CBD5CAC5CAB5CB15CA35CC15CB75CC45CD25CE45CCB5CE5 -5D025D035D275D265D2E5D245D1E5D065D1B5D585D3E5D345D3D5D6C5D5B5D6F -5D5D5D6B5D4B5D4A5D695D745D825D995D9D8C735DB75DC55F735F775F825F87 -5F895F8C5F955F995F9C5FA85FAD5FB55FBC88625F6172AD72B072B472B772B8 -72C372C172CE72CD72D272E872EF72E972F272F472F7730172F3730372FA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072FB731773137321730A731E731D7315732273397325732C733873317350 -734D73577360736C736F737E821B592598E7592459029963996799689969996A -996B996C99749977997D998099849987998A998D999099919993999499955E80 -5E915E8B5E965EA55EA05EB95EB55EBE5EB38D535ED25ED15EDB5EE85EEA81BA -5FC45FC95FD65FCF60035FEE60045FE15FE45FFE600560065FEA5FED5FF86019 -60356026601B600F600D6029602B600A603F602160786079607B607A60420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000606A607D6096609A60AD609D60836092608C609B60EC60BB60B160DD60D8 -60C660DA60B4612061266115612360F46100610E612B614A617561AC619461A7 -61B761D461F55FDD96B395E995EB95F195F395F595F695FC95FE960396049606 -9608960A960B960C960D960F96129615961696179619961A4E2C723F62156C35 -6C546C5C6C4A6CA36C856C906C946C8C6C686C696C746C766C866CA96CD06CD4 -6CAD6CF76CF86CF16CD76CB26CE06CD66CFA6CEB6CEE6CB16CD36CEF6CFE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D396D276D0C6D436D486D076D046D196D0E6D2B6D4D6D2E6D356D1A6D4F -6D526D546D336D916D6F6D9E6DA06D5E6D936D946D5C6D606D7C6D636E1A6DC7 -6DC56DDE6E0E6DBF6DE06E116DE66DDD6DD96E166DAB6E0C6DAE6E2B6E6E6E4E -6E6B6EB26E5F6E866E536E546E326E256E446EDF6EB16E986EE06F2D6EE26EA5 -6EA76EBD6EBB6EB76ED76EB46ECF6E8F6EC26E9F6F626F466F476F246F156EF9 -6F2F6F366F4B6F746F2A6F096F296F896F8D6F8C6F786F726F7C6F7A6FD10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FC96FA76FB96FB66FC26FE16FEE6FDE6FE06FEF701A7023701B70397035 -704F705E5B805B845B955B935BA55BB8752F9A9E64345BE45BEE89305BF08E47 -8B078FB68FD38FD58FE58FEE8FE48FE98FE68FF38FE890059004900B90269011 -900D9016902190359036902D902F9044905190529050906890589062905B66B9 -9074907D908290889083908B5F505F575F565F585C3B54AB5C505C595B715C63 -5C667FBC5F2A5F295F2D82745F3C9B3B5C6E59815983598D59A959AA59A30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000599759CA59AB599E59A459D259B259AF59D759BE5A055A0659DD5A0859E3 -59D859F95A0C5A095A325A345A115A235A135A405A675A4A5A555A3C5A625A75 -80EC5AAA5A9B5A775A7A5ABE5AEB5AB25AD25AD45AB85AE05AE35AF15AD65AE6 -5AD85ADC5B095B175B165B325B375B405C155C1C5B5A5B655B735B515B535B62 -9A759A779A789A7A9A7F9A7D9A809A819A859A889A8A9A909A929A939A969A98 -9A9B9A9C9A9D9A9F9AA09AA29AA39AA59AA77E9F7EA17EA37EA57EA87EA90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007EAD7EB07EBE7EC07EC17EC27EC97ECB7ECC7ED07ED47ED77EDB7EE07EE1 -7EE87EEB7EEE7EEF7EF17EF27F0D7EF67EFA7EFB7EFE7F017F027F037F077F08 -7F0B7F0C7F0F7F117F127F177F197F1C7F1B7F1F7F217F227F237F247F257F26 -7F277F2A7F2B7F2C7F2D7F2F7F307F317F327F337F355E7A757F5DDB753E9095 -738E739173AE73A2739F73CF73C273D173B773B373C073C973C873E573D9987C -740A73E973E773DE73BA73F2740F742A745B7426742574287430742E742C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -68 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000741B741A7441745C7457745574597477746D747E749C748E748074817487 -748B749E74A874A9749074A774D274BA97EA97EB97EC674C6753675E67486769 -67A56787676A6773679867A7677567A8679E67AD678B6777677C67F0680967D8 -680A67E967B0680C67D967B567DA67B367DD680067C367B867E2680E67C167FD -6832683368606861684E6862684468646883681D68556866684168676840683E -684A6849682968B5688F687468776893686B68C2696E68FC691F692068F90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000692468F0690B6901695768E369106971693969606942695D6984696B6980 -69986978693469CC6987698869CE6989696669636979699B69A769BB69AB69AD -69D469B169C169CA69DF699569E0698D69FF6A2F69ED6A176A186A6569F26A44 -6A3E6AA06A506A5B6A356A8E6A796A3D6A286A586A7C6A916A906AA96A976AAB -733773526B816B826B876B846B926B936B8D6B9A6B9B6BA16BAA8F6B8F6D8F71 -8F728F738F758F768F788F778F798F7A8F7C8F7E8F818F828F848F878F8B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008F8D8F8E8F8F8F988F9A8ECE620B6217621B621F6222622162256224622C -81E774EF74F474FF750F75117513653465EE65EF65F0660A6619677266036615 -6600708566F7661D66346631663666358006665F66546641664F665666616657 -66776684668C66A7669D66BE66DB66DC66E666E98D328D338D368D3B8D3D8D40 -8D458D468D488D498D478D4D8D558D5989C789CA89CB89CC89CE89CF89D089D1 -726E729F725D7266726F727E727F7284728B728D728F72926308633263B00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000643F64D880046BEA6BF36BFD6BF56BF96C056C076C066C0D6C156C186C19 -6C1A6C216C296C246C2A6C3265356555656B724D72527256723086625216809F -809C809380BC670A80BD80B180AB80AD80B480B780E780E880E980EA80DB80C2 -80C480D980CD80D7671080DD80EB80F180F480ED810D810E80F280FC67158112 -8C5A8136811E812C811881328148814C815381748159815A817181608169817C -817D816D8167584D5AB58188818281916ED581A381AA81CC672681CA81BB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081C181A66B246B376B396B436B466B5998D198D298D398D598D998DA6BB3 -5F406BC289F365909F51659365BC65C665C465C365CC65CE65D265D67080709C -7096709D70BB70C070B770AB70B170E870CA711071137116712F71317173715C -716871457172714A7178717A719871B371B571A871A071E071D471E771F9721D -7228706C7118716671B9623E623D624362486249793B794079467949795B795C -7953795A796279577960796F7967797A7985798A799A79A779B35FD15FD00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000603C605D605A606760416059606360AB6106610D615D61A9619D61CB61D1 -62068080807F6C936CF66DFC77F677F87800780978177818781165AB782D781C -781D7839783A783B781F783C7825782C78237829784E786D7856785778267850 -7847784C786A789B7893789A7887789C78A178A378B278B978A578D478D978C9 -78EC78F2790578F479137924791E79349F9B9EF99EFB9EFC76F17704770D76F9 -77077708771A77227719772D7726773577387750775177477743775A77680000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077627765777F778D777D7780778C7791779F77A077B077B577BD753A7540 -754E754B7548755B7572757975837F587F617F5F8A487F687F747F717F797F81 -7F7E76CD76E58832948594869487948B948A948C948D948F9490949494979495 -949A949B949C94A394A494AB94AA94AD94AC94AF94B094B294B494B694B794B8 -94B994BA94BC94BD94BF94C494C894C994CA94CB94CC94CD94CE94D094D194D2 -94D594D694D794D994D894DB94DE94DF94E094E294E494E594E794E894EA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094E994EB94EE94EF94F394F494F594F794F994FC94FD94FF950395029506 -95079509950A950D950E950F951295139514951595169518951B951D951E951F -9522952A952B9529952C953195329534953695379538953C953E953F95429535 -9544954595469549954C954E954F9552955395549556955795589559955B955E -955F955D95619562956495659566956795689569956A956B956C956F95719572 -9573953A77E777EC96C979D579ED79E379EB7A065D477A037A027A1E7A140000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -70 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A397A377A519ECF99A57A707688768E7693769976A474DE74E0752C9E20 -9E229E289E299E2A9E2B9E2C9E329E319E369E389E379E399E3A9E3E9E419E42 -9E449E469E479E489E499E4B9E4C9E4E9E519E559E579E5A9E5B9E5C9E5E9E63 -9E669E679E689E699E6A9E6B9E6C9E719E6D9E7375927594759675A0759D75AC -75A375B375B475B875C475B175B075C375C275D675CD75E375E875E675E475EB -75E7760375F175FC75FF761076007605760C7617760A76257618761576190000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -71 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000761B763C762276207640762D7630763F76357643763E7633764D765E7654 -765C7656766B766F7FCA7AE67A787A797A807A867A887A957AA67AA07AAC7AA8 -7AAD7AB3886488698872887D887F888288A288C688B788BC88C988E288CE88E3 -88E588F1891A88FC88E888FE88F0892189198913891B890A8934892B89368941 -8966897B758B80E576B276B477DC801280148016801C80208022802580268027 -802980288031800B803580438046804D80528069807189839878988098830000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009889988C988D988F9894989A989B989E989F98A198A298A598A6864D8654 -866C866E867F867A867C867B86A8868D868B86AC869D86A786A386AA869386A9 -86B686C486B586CE86B086BA86B186AF86C986CF86B486E986F186F286ED86F3 -86D0871386DE86F486DF86D886D18703870786F88708870A870D87098723873B -871E8725872E871A873E87488734873187298737873F87828722877D877E877B -87608770874C876E878B87538763877C876487598765879387AF87A887D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000087C68788878587AD8797878387AB87E587AC87B587B387CB87D387BD87D1 -87C087CA87DB87EA87E087EE8816881387FE880A881B88218839883C7F367F42 -7F447F4582107AFA7AFD7B087B037B047B157B0A7B2B7B0F7B477B387B2A7B19 -7B2E7B317B207B257B247B337B3E7B1E7B587B5A7B457B757B4C7B5D7B607B6E -7B7B7B627B727B717B907BA67BA77BB87BAC7B9D7BA87B857BAA7B9C7BA27BAB -7BB47BD17BC17BCC7BDD7BDA7BE57BE67BEA7C0C7BFE7BFC7C0F7C167C0B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007C1F7C2A7C267C387C417C4081FE82018202820481EC8844822182228223 -822D822F8228822B8238823B82338234823E82448249824B824F825A825F8268 -887E8885888888D888DF895E7F9D7F9F7FA77FAF7FB07FB27C7C65497C917C9D -7C9C7C9E7CA27CB27CBC7CBD7CC17CC77CCC7CCD7CC87CC57CD77CE8826E66A8 -7FBF7FCE7FD57FE57FE17FE67FE97FEE7FF37CF87D777DA67DAE7E477E9B9EB8 -9EB48D738D848D948D918DB18D678D6D8C478C49914A9150914E914F91640000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -75 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009162916191709169916F917D917E917291749179918C91859190918D9191 -91A291A391AA91AD91AE91AF91B591B491BA8C559E7E8DB88DEB8E058E598E69 -8DB58DBF8DBC8DBA8DC48DD68DD78DDA8DDE8DCE8DCF8DDB8DC68DEC8DF78DF8 -8DE38DF98DFB8DE48E098DFD8E148E1D8E1F8E2C8E2E8E238E2F8E3A8E408E39 -8E358E3D8E318E498E418E428E518E528E4A8E708E768E7C8E6F8E748E858E8F -8E948E908E9C8E9E8C788C828C8A8C858C988C94659B89D689DE89DA89DC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -76 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089E589EB89EF8A3E8B26975396E996F396EF970697019708970F970E972A -972D9730973E9F809F839F859F869F879F889F899F8A9F8C9EFE9F0B9F0D96B9 -96BC96BD96CE96D277BF96E0928E92AE92C8933E936A93CA938F943E946B9C7F -9C829C859C869C879C887A239C8B9C8E9C909C919C929C949C959C9A9C9B9C9E -9C9F9CA09CA19CA29CA39CA59CA69CA79CA89CA99CAB9CAD9CAE9CB09CB19CB2 -9CB39CB49CB59CB69CB79CBA9CBB9CBC9CBD9CC49CC59CC69CC79CCA9CCB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009CCC9CCD9CCE9CCF9CD09CD39CD49CD59CD79CD89CD99CDC9CDD9CDF9CE2 -977C978597919792979497AF97AB97A397B297B49AB19AB09AB79E589AB69ABA -9ABC9AC19AC09AC59AC29ACB9ACC9AD19B459B439B479B499B489B4D9B5198E8 -990D992E995599549ADF9AE19AE69AEF9AEB9AFB9AED9AF99B089B0F9B139B1F -9B239EBD9EBE7E3B9E829E879E889E8B9E9293D69E9D9E9F9EDB9EDC9EDD9EE0 -9EDF9EE29EE99EE79EE59EEA9EEF9F229F2C9F2F9F399F379F3D9F3E9F440000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/gb2312.enc b/src/runtime/tcl_library/encoding/gb2312.enc deleted file mode 100644 index 4b2f8c73..00000000 --- a/src/runtime/tcl_library/encoding/gb2312.enc +++ /dev/null @@ -1,1397 +0,0 @@ -# Encoding file: euc-cn, multi-byte -M -003F 0 82 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300230FB02C902C700A8300330052015FF5E2225202620182019 -201C201D3014301530083009300A300B300C300D300E300F3016301730103011 -00B100D700F72236222722282211220F222A222922082237221A22A522252220 -23122299222B222E2261224C2248223D221D2260226E226F22642265221E2235 -22342642264000B0203220332103FF0400A4FFE0FFE1203000A7211626062605 -25CB25CF25CE25C725C625A125A025B325B2203B219221902191219330130000 -A2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000024882489248A248B248C248D248E248F2490249124922493249424952496 -249724982499249A249B247424752476247724782479247A247B247C247D247E -247F248024812482248324842485248624872460246124622463246424652466 -2467246824690000000032203221322232233224322532263227322832290000 -00002160216121622163216421652166216721682169216A216B000000000000 -A3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FFE5FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFF3CFF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -A4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -A5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -A6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -A8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000010100E101CE00E0011300E9011B00E8012B00ED01D000EC014D00F301D2 -00F2016B00FA01D400F901D601D801DA01DC00FC00EA00000000000000000000 -0000000000000000000031053106310731083109310A310B310C310D310E310F -3110311131123113311431153116311731183119311A311B311C311D311E311F -3120312131223123312431253126312731283129000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -A9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000002500250125022503250425052506250725082509250A250B -250C250D250E250F2510251125122513251425152516251725182519251A251B -251C251D251E251F2520252125222523252425252526252725282529252A252B -252C252D252E252F2530253125322533253425352536253725382539253A253B -253C253D253E253F2540254125422543254425452546254725482549254A254B -0000000000000000000000000000000000000000000000000000000000000000 -B0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000554A963F57C3632854CE550954C07691764C853C77EE827E788D72319698 -978D6C285B894FFA630966975CB880FA684880AE660276CE51F9655671AC7FF1 -888450B2596561CA6FB382AD634C625253ED54277B06516B75A45DF462D48DCB -9776628A8019575D97387F627238767D67CF767E64464F708D2562DC7A176591 -73ED642C6273822C9881677F7248626E62CC4F3474E3534A529E7ECA90A65E2E -6886699C81807ED168D278C5868C9551508D8C2482DE80DE5305891252650000 -B1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000858496F94FDD582199715B9D62B162A566B48C799C8D7206676F789160B2 -535153178F8880CC8D1D94A1500D72C8590760EB711988AB595482EF672C7B28 -5D297EF7752D6CF58E668FF8903C9F3B6BD491197B145F7C78A784D6853D6BD5 -6BD96BD65E015E8775F995ED655D5F0A5FC58F9F58C181C2907F965B97AD8FB9 -7F168D2C62414FBF53D8535E8FA88FA98FAB904D68075F6A819888689CD6618B -522B762A5F6C658C6FD26EE85BBE6448517551B067C44E1979C9997C70B30000 -B2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075C55E7673BB83E064AD62E894B56CE2535A52C3640F94C27B944F2F5E1B -82368116818A6E246CCA9A736355535C54FA886557E04E0D5E036B657C3F90E8 -601664E6731C88C16750624D8D22776C8E2991C75F6983DC8521991053C28695 -6B8B60ED60E8707F82CD82314ED36CA785CF64CD7CD969FD66F9834953957B56 -4FA7518C6D4B5C428E6D63D253C9832C833667E578B4643D5BDF5C945DEE8BE7 -62C667F48C7A640063BA8749998B8C177F2094F24EA7961098A4660C73160000 -B3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000573A5C1D5E38957F507F80A05382655E7545553150218D856284949E671D -56326F6E5DE2543570928F66626F64A463A35F7B6F8890F481E38FB05C186668 -5FF16C8996488D81886C649179F057CE6A59621054484E587A0B60E96F848BDA -627F901E9A8B79E4540375F4630153196C608FDF5F1B9A70803B9F7F4F885C3A -8D647FC565A570BD514551B2866B5D075BA062BD916C75748E0C7A2061017B79 -4EC77EF877854E1181ED521D51FA6A7153A88E87950496CF6EC19664695A0000 -B4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000784050A877D7641089E6590463E35DDD7A7F693D4F20823955984E3275AE -7A975E625E8A95EF521B5439708A6376952457826625693F918755076DF37EAF -882262337EF075B5832878C196CC8F9E614874F78BCD6B64523A8D506B21806A -847156F153064ECE4E1B51D17C97918B7C074FC38E7F7BE17A9C64675D1450AC -810676017CB96DEC7FE067515B585BF878CB64AE641363AA632B9519642D8FBE -7B5476296253592754466B7950A362345E266B864EE38D37888B5F85902E0000 -B5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006020803D62C54E39535590F863B880C665E66C2E4F4660EE6DE18BDE5F39 -86CB5F536321515A83616863520063638E4850125C9B79775BFC52307A3B60BC -905376D75FB75F9776848E6C706F767B7B4977AA51F3909358244F4E6EF48FEA -654C7B1B72C46DA47FDF5AE162B55E95573084827B2C5E1D5F1F90127F1498A0 -63826EC7789870B95178975B57AB75354F4375385E9760E659606DC06BBF7889 -53FC96D551CB52016389540A94938C038DCC7239789F87768FED8C0D53E00000 -B6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E0176EF53EE948998769F0E952D5B9A8BA24E224E1C51AC846361C252A8 -680B4F97606B51BB6D1E515C6296659796618C46901775D890FD77636BD2728A -72EC8BFB583577798D4C675C9540809A5EA66E2159927AEF77ED953B6BB565AD -7F0E58065151961F5BF958A954288E726566987F56E4949D76FE9041638754C6 -591A593A579B8EB267358DFA8235524160F0581586FE5CE89E454FC4989D8BB9 -5A2560765384627C904F9102997F6069800C513F80335C1499756D314E8C0000 -B7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008D3053D17F5A7B4F4F104E4F96006CD573D085E95E06756A7FFB6A0A77FE -94927E4151E170E653CD8FD483038D2972AF996D6CDB574A82B365B980AA623F -963259A84EFF8BBF7EBA653E83F2975E556198DE80A5532A8BFD542080BA5E9F -6CB88D3982AC915A54296C1B52067EB7575F711A6C7E7C89594B4EFD5FFF6124 -7CAA4E305C0167AB87025CF0950B98CE75AF70FD902251AF7F1D8BBD594951E4 -4F5B5426592B657780A45B75627662C28F905E456C1F7B264F0F4FD8670D0000 -B8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D6E6DAA798F88B15F17752B629A8F854FEF91DC65A7812F81515E9C8150 -8D74526F89868D4B590D50854ED8961C723681798D1F5BCC8BA3964459877F1A -54905676560E8BE565396982949976D66E895E727518674667D17AFF809D8D76 -611F79C665628D635188521A94A27F38809B7EB25C976E2F67607BD9768B9AD8 -818F7F947CD5641E95507A3F544A54E56B4C640162089E3D80F3759952729769 -845B683C86E49601969494EC4E2A54047ED968398DDF801566F45E9A7FB90000 -B9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000057C2803F68975DE5653B529F606D9F9A4F9B8EAC516C5BAB5F135DE96C5E -62F18D21517194A952FE6C9F82DF72D757A267848D2D591F8F9C83C754957B8D -4F306CBD5B6459D19F1353E486CA9AA88C3780A16545987E56FA96C7522E74DC -52505BE1630289024E5662D0602A68FA51735B9851A089C27BA199867F5060EF -704C8D2F51495E7F901B747089C4572D78455F529F9F95FA8F689B3C8BE17678 -684267DC8DEA8D35523D8F8A6EDA68CD950590ED56FD679C88F98FC754C80000 -BA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009AB85B696D776C264EA55BB39A87916361A890AF97E9542B6DB55BD251FD -558A7F557FF064BC634D65F161BE608D710A6C576C49592F676D822A58D5568E -8C6A6BEB90DD597D801753F76D695475559D837783CF683879BE548C4F555408 -76D28C8996026CB36DB88D6B89109E648D3A563F9ED175D55F8872E0606854FC -4EA86A2A886160528F7054C470D886799E3F6D2A5B8F5F187EA255894FAF7334 -543C539A5019540E547C4E4E5FFD745A58F6846B80E1877472D07CCA6E560000 -BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F27864E552C62A44E926CAA623782B154D7534E733E6ED1753B52125316 -8BDD69D05F8A60006DEE574F6B2273AF68538FD87F13636260A3552475EA8C62 -71156DA35BA65E7B8352614C9EC478FA87577C27768751F060F6714C66435E4C -604D8C0E707063258F895FBD606286D456DE6BC160946167534960E066668D3F -79FD4F1A70E96C478BB38BF27ED88364660F5A5A9B426D516DF78C416D3B4F19 -706B83B7621660D1970D8D27797851FB573E57FA673A75787A3D79EF7B950000 -BC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000808C99658FF96FC08BA59E2159EC7EE97F095409678168D88F917C4D96C6 -53CA602575BE6C7253735AC97EA7632451E0810A5DF184DF628051805B634F0E -796D524260B86D4E5BC45BC28BA18BB065E25FCC964559937EE77EAA560967B7 -59394F735BB652A0835A988A8D3E753294BE50477A3C4EF767B69A7E5AC16B7C -76D1575A5C167B3A95F4714E517C80A9827059787F04832768C067EC78B17877 -62E363617B804FED526A51CF835069DB92748DF58D3189C1952E7BAD4EF60000 -BD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000506582305251996F6E106E856DA75EFA50F559DC5C066D466C5F7586848B -686859568BB253209171964D854969127901712680F64EA490CA6D479A845A07 -56BC640594F077EB4FA5811A72E189D2997A7F347EDE527F655991758F7F8F83 -53EB7A9663ED63A5768679F888579636622A52AB8282685467706377776B7AED -6D017ED389E359D0621285C982A5754C501F4ECB75A58BEB5C4A5DFE7B4B65A4 -91D14ECA6D25895F7D2795264EC58C288FDB9773664B79818FD170EC6D780000 -BE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C3D52B283465162830E775B66769CB84EAC60CA7CBE7CB37ECF4E958B66 -666F988897595883656C955C5F8475C997567ADF7ADE51C070AF7A9863EA7A76 -7EA0739697ED4E4570784E5D915253A9655165E781FC8205548E5C31759A97A0 -62D872D975BD5C459A7983CA5C40548077E94E3E6CAE805A62D2636E5DE85177 -8DDD8E1E952F4FF153E560E770AC526763509E435A1F5026773753777EE26485 -652B628963985014723589C951B38BC07EDD574783CC94A7519B541B5CFB0000 -BF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004FCA7AE36D5A90E19A8F55805496536154AF5F0063E9697751EF6168520A -582A52D8574E780D770B5EB761777CE0625B62974EA27095800362F770E49760 -577782DB67EF68F578D5989779D158F354B353EF6E34514B523B5BA28BFE80AF -554357A660735751542D7A7A60505B5463A762A053E362635BC767AF54ED7A9F -82E691775E9388E4593857AE630E8DE880EF57577B774FA95FEB5BBD6B3E5321 -7B5072C2684677FF773665F751B54E8F76D45CBF7AA58475594E9B4150800000 -C0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000998861276E8357646606634656F062EC62695ED39614578362C955878721 -814A8FA3556683B167658D5684DD5A6A680F62E67BEE961151706F9C8C3063FD -89C861D27F0670C26EE57405699472FC5ECA90CE67176D6A635E52B372628001 -4F6C59E5916A70D96D9D52D24E5096F7956D857E78CA7D2F5121579264C2808B -7C7B6CEA68F1695E51B7539868A872819ECE7BF172F879BB6F137406674E91CC -9CA4793C83898354540F68174E3D538952B1783E5386522950884F8B4FD00000 -C1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075E27ACB7C926CA596B6529B748354E94FE9805483B28FDE95705EC9601C -6D9F5E18655B813894FE604B70BC7EC37CAE51C968817CB1826F4E248F8691CF -667E4EAE8C0564A9804A50DA759771CE5BE58FBD6F664E86648295635ED66599 -521788C270C852A3730E7433679778F797164E3490BB9CDE6DCB51DB8D41541D -62CE73B283F196F69F8494C34F367F9A51CC707596755CAD988653E64EE46E9C -740969B4786B998F7559521876246D4167F3516D9F99804B54997B3C7ABF0000 -C2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009686578462E29647697C5A0464027BD36F0F964B82A6536298855E907089 -63B35364864F9C819E93788C97328DEF8D429E7F6F5E79845F559646622E9A74 -541594DD4FA365C55C655C617F1586516C2F5F8B73876EE47EFF5CE6631B5B6A -6EE653754E7163A0756562A18F6E4F264ED16CA67EB68BBA841D87BA7F57903B -95237BA99AA188F8843D6D1B9A867EDC59889EBB739B780186829A6C9A82561B -541757CB4E709EA653568FC881097792999286EE6EE1851366FC61626F2B0000 -C3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008C298292832B76F26C135FD983BD732B8305951A6BDB77DB94C6536F8302 -51925E3D8C8C8D384E4873AB679A68859176970971646CA177095A9295416BCF -7F8E66275BD059B95A9A95E895F74EEC840C84996AAC76DF9530731B68A65B5F -772F919A97617CDC8FF78C1C5F257C7379D889C56CCC871C5BC65E4268C97720 -7EF55195514D52C95A297F05976282D763CF778485D079D26E3A5E9959998511 -706D6C1162BF76BF654F60AF95FD660E879F9E2394ED540D547D8C2C64780000 -C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647986116A21819C78E864699B5462B9672B83AB58A89ED86CAB6F205BDE -964C8C0B725F67D062C772614EA959C66BCD589366AE5E5552DF6155672876EE -776672677A4662FF54EA545094A090A35A1C7EB36C164E435976801059485357 -753796BE56CA63208111607C95F96DD65462998151855AE980FD59AE9713502A -6CE55C3C62DF4F60533F817B90066EBA852B62C85E7478BE64B5637B5FF55A18 -917F9E1F5C3F634F80425B7D556E954A954D6D8560A867E072DE51DD5B810000 -C5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062E76CDE725B626D94AE7EBD81136D53519C5F04597452AA601259736696 -8650759F632A61E67CEF8BFA54E66B279E256BB485D5545550766CA4556A8DB4 -722C5E156015743662CD6392724C5F986E436D3E65006F5876D878D076FC7554 -522453DB4E535E9E65C1802A80D6629B5486522870AE888D8DD16CE1547880DA -57F988F48D54966A914D4F696C9B55B776C6783062A870F96F8E5F6D84EC68DA -787C7BF781A8670B9E4F636778B0576F78129739627962AB528874356BD70000 -C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005564813E75B276AE533975DE50FB5C418B6C7BC7504F72479A9798D86F02 -74E27968648777A562FC98918D2B54C180584E52576A82F9840D5E7351ED74F6 -8BC45C4F57616CFC98875A4678349B448FEB7C955256625194FA4EC683868461 -83E984B257D467345703666E6D668C3166DD7011671F6B3A6816621A59BB4E03 -51C46F0667D26C8F517668CB59476B6775665D0E81109F5065D7794879419A91 -8D775C824E5E4F01542F5951780C56686C148FC45F036C7D6CE38BAB63900000 -C7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060706D3D72756266948E94C553438FC17B7E4EDF8C264E7E9ED494B194B3 -524D6F5C90636D458C3458115D4C6B206B4967AA545B81547F8C589985375F3A -62A26A47953965726084686577A74E544FA85DE7979864AC7FD85CED4FCF7A8D -520783044E14602F7A8394A64FB54EB279E6743452E482B964D279BD5BDD6C81 -97528F7B6C22503E537F6E0564CE66746C3060C598778BF75E86743C7A7779CB -4E1890B174036C4256DA914B6CC58D8B533A86C666F28EAF5C489A716E200000 -C8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053D65A369F8B8DA353BB570898A76743919B6CC9516875CA62F372AC5238 -529D7F3A7094763853749E4A69B7786E96C088D97FA4713671C3518967D374E4 -58E4651856B78BA9997662707ED560F970ED58EC4EC14EBA5FCD97E74EFB8BA4 -5203598A7EAB62544ECD65E5620E833884C98363878D71946EB65BB97ED25197 -63C967D480898339881551125B7A59828FB14E736C5D516589258F6F962E854A -745E951095F06DA682E55F3164926D128428816E9CC3585E8D5B4E0953C10000 -C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F1E6563685155D34E2764149A9A626B5AC2745F82726DA968EE50E7838E -7802674052396C997EB150BB5565715E7B5B665273CA82EB67495C715220717D -886B95EA965564C58D6181B355846C5562477F2E58924F2455468D4F664C4E0A -5C1A88F368A2634E7A0D70E7828D52FA97F65C1154E890B57ECD59628D4A86C7 -820C820D8D6664445C0461516D89793E8BBE78377533547B4F388EAB6DF15A20 -7EC5795E6C885BA15A76751A80BE614E6E1758F0751F7525727253477EF30000 -CA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000770176DB526980DC57235E08593172EE65BD6E7F8BD75C388671534177F3 -62FE65F64EC098DF86805B9E8BC653F277E24F7F5C4E9A7659CB5F0F793A58EB -4E1667FF4E8B62ED8A93901D52BF662F55DC566C90024ED54F8D91CA99706C0F -5E0260435BA489C68BD56536624B99965B885BFF6388552E53D77626517D852C -67A268B36B8A62928F9353D482126DD1758F4E668D4E5B70719F85AF669166D9 -7F7287009ECD9F205C5E672F8FF06811675F620D7AD658855EB665706F310000 -CB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060555237800D6454887075295E05681362F4971C53CC723D8C016C347761 -7A0E542E77AC987A821C8BF47855671470C165AF64955636601D79C153F84E1D -6B7B80865BFA55E356DB4F3A4F3C99725DF3677E80386002988290015B8B8BBC -8BF5641C825864DE55FD82CF91654FD77D20901F7C9F50F358516EAF5BBF8BC9 -80839178849C7B97867D968B968F7EE59AD3788E5C817A57904296A7795F5B59 -635F7B0B84D168AD55067F2974107D2295016240584C4ED65B83597958540000 -CC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000736D631E8E4B8E0F80CE82D462AC53F06CF0915E592A60016C70574D644A -8D2A762B6EE9575B6A8075F06F6D8C2D8C0857666BEF889278B363A253F970AD -6C645858642A580268E0819B55107CD650188EBA6DCC8D9F70EB638F6D9B6ED4 -7EE68404684390036DD896768BA85957727985E4817E75BC8A8A68AF52548E22 -951163D098988E44557C4F5366FF568F60D56D9552435C4959296DFB586B7530 -751C606C82148146631167618FE2773A8DF38D3494C15E165385542C70C30000 -CD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C405EF7505C4EAD5EAD633A8247901A6850916E77B3540C94DC5F647AE5 -687663457B527EDF75DB507762955934900F51F879C37A8156FE5F9290146D82 -5C60571F541051546E4D56E263A89893817F8715892A9000541E5C6F81C062D6 -625881319E3596409A6E9A7C692D59A562D3553E631654C786D96D3C5A0374E6 -889C6B6A59168C4C5F2F6E7E73A9987D4E3870F75B8C7897633D665A769660CB -5B9B5A494E0781556C6A738B4EA167897F515F8065FA671B5FD859845A010000 -CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005DCD5FAE537197E68FDD684556F4552F60DF4E3A6F4D7EF482C7840E59D4 -4F1F4F2A5C3E7EAC672A851A5473754F80C355829B4F4F4D6E2D8C135C096170 -536B761F6E29868A658795FB7EB9543B7A337D0A95EE55E17FC174EE631D8717 -6DA17A9D621165A1536763E16C835DEB545C94A84E4C6C618BEC5C4B65E0829C -68A7543E54346BCB6B664E9463425348821E4F0D4FAE575E620A96FE66647269 -52FF52A1609F8BEF661471996790897F785277FD6670563B54389521727A0000 -CF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A00606F5E0C6089819D591560DC718470EF6EAA6C5072806A8488AD5E2D -4E605AB3559C94E36D177CFB9699620F7EC6778E867E5323971E8F9666875CE1 -4FA072ED4E0B53A6590F54136380952851484ED99C9C7EA454B88D2488548237 -95F26D8E5F265ACC663E966973B0732E53BF817A99857FA15BAA967796507EBF -76F853A2957699997BB189446E584E617FD479658BE660F354CD4EAB98795DF7 -6A6150CF54118C618427785D9704524A54EE56A395006D885BB56DC666530000 -D0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C0F5B5D6821809655787B11654869544E9B6B47874E978B534F631F643A -90AA659C80C18C10519968B0537887F961C86CC46CFB8C225C5185AA82AF950C -6B238F9B65B05FFB5FC34FE18845661F8165732960FA51745211578B5F6290A2 -884C91925E78674F602759D3514451F680F853086C7996C4718A4F114FEE7F9E -673D55C5950879C088967EE3589F620C9700865A5618987B5F908BB884C49157 -53D965ED5E8F755C60647D6E5A7F7EEA7EED8F6955A75BA360AC65CB73840000 -D1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009009766377297EDA9774859B5B667A7496EA884052CB718F5FAA65EC8BE2 -5BFB9A6F5DE16B896C5B8BAD8BAF900A8FC5538B62BC9E269E2D54404E2B82BD -7259869C5D1688596DAF96C554D14E9A8BB6710954BD960970DF6DF976D04E25 -781487125CA95EF68A00989C960E708E6CBF594463A9773C884D6F1482735830 -71D5538C781A96C155015F6671305BB48C1A9A8C6B83592E9E2F79E76768626C -4F6F75A17F8A6D0B96336C274EF075D2517B68376F3E90808170599674760000 -D2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064475C2790657A918C2359DA54AC8200836F898180006930564E80367237 -91CE51B64E5F987563964E1A53F666F3814B591C6DB24E0058F9533B63D694F1 -4F9D4F0A886398905937905779FB4EEA80F075916C825B9C59E85F5D69058681 -501A5DF24E5977E34EE5827A6291661390915C794EBF5F7981C69038808475AB -4EA688D4610F6BC55FC64E4976CA6EA28BE38BAE8C0A8BD15F027FFC7FCC7ECE -8335836B56E06BB797F3963459FB541F94F66DEB5BC5996E5C395F1596900000 -D3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000537082F16A315A749E705E947F2883B984248425836787478FCE8D6276C8 -5F719896786C662054DF62E54F6381C375C85EB896CD8E0A86F9548F6CF36D8C -6C38607F52C775285E7D4F1860A05FE75C24753190AE94C072B96CB96E389149 -670953CB53F34F5191C98BF153C85E7C8FC26DE44E8E76C26986865E611A8206 -4F594FDE903E9C7C61096E1D6E1496854E885A3196E84E0E5C7F79B95B878BED -7FBD738957DF828B90C15401904755BB5CEA5FA161086B3272F180B28A890000 -D4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D745BD388D598848C6B9A6D9E336E0A51A4514357A38881539F63F48F95 -56ED54585706733F6E907F188FDC82D1613F6028966266F07EA68D8A8DC394A5 -5CB37CA4670860A6960580184E9190E75300966851418FD08574915D665597F5 -5B55531D78386742683D54C9707E5BB08F7D518D572854B1651266828D5E8D43 -810F846C906D7CDF51FF85FB67A365E96FA186A48E81566A90207682707671E5 -8D2362E952196CFD8D3C600E589E618E66FE8D60624E55B36E23672D8F670000 -D5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094E195F87728680569A8548B4E4D70B88BC86458658B5B857A84503A5BE8 -77BB6BE18A797C986CBE76CF65A98F975D2D5C5586386808536062187AD96E5B -7EFD6A1F7AE05F706F335F20638C6DA867564E085E108D264ED780C07634969C -62DB662D627E6CBC8D7571677F695146808753EC906E629854F286F08F998005 -951785178FD96D5973CD659F771F7504782781FB8D1E94884FA6679575B98BCA -9707632F9547963584B8632377415F8172F04E896014657462EF6B63653F0000 -D6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E2775C790D18BC1829D679D652F5431871877E580A281026C414E4B7EC7 -804C76F4690D6B966267503C4F84574063076B628DBE53EA65E87EB85FD7631A -63B781F381F47F6E5E1C5CD95236667A79E97A1A8D28709975D46EDE6CBB7A92 -4E2D76C55FE0949F88777EC879CD80BF91CD4EF24F17821F54685DDE6D328BCC -7CA58F7480985E1A549276B15B99663C9AA473E0682A86DB6731732A8BF88BDB -90107AF970DB716E62C477A956314E3B845767F152A986C08D2E94F87B510000 -D7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F4F6CE8795D9A7B6293722A62FD4E1378168F6C64B08D5A7BC668695E84 -88C55986649E58EE72B6690E95258FFD8D5857607F008C0651C6634962D95353 -684C74228301914C55447740707C6D4A517954A88D4459FF6ECB6DC45B5C7D2B -4ED47C7D6ED35B5081EA6E0D5B579B0368D58E2A5B977EFC603B7EB590B98D70 -594F63CD79DF8DB3535265CF79568BC5963B7EC494BB7E825634918967007F6A -5C0A907566285DE64F5067DE505A4F5C57505EA7000000000000000000000000 -D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E8D4E0C51404E105EFF53454E154E984E1E9B325B6C56694E2879BA4E3F -53154E47592D723B536E6C1056DF80E499976BD3777E9F174E364E9F9F104E5C -4E694E9382885B5B556C560F4EC4538D539D53A353A553AE97658D5D531A53F5 -5326532E533E8D5C5366536352025208520E522D5233523F5240524C525E5261 -525C84AF527D528252815290529351827F544EBB4EC34EC94EC24EE84EE14EEB -4EDE4F1B4EF34F224F644EF54F254F274F094F2B4F5E4F6765384F5A4F5D0000 -D9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F5F4F574F324F3D4F764F744F914F894F834F8F4F7E4F7B4FAA4F7C4FAC -4F944FE64FE84FEA4FC54FDA4FE34FDC4FD14FDF4FF85029504C4FF3502C500F -502E502D4FFE501C500C50255028507E504350555048504E506C507B50A550A7 -50A950BA50D6510650ED50EC50E650EE5107510B4EDD6C3D4F584F654FCE9FA0 -6C467C74516E5DFD9EC999985181591452F9530D8A07531051EB591951554EA0 -51564EB3886E88A44EB5811488D279805B3488037FB851AB51B151BD51BC0000 -DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051C7519651A251A58BA08BA68BA78BAA8BB48BB58BB78BC28BC38BCB8BCF -8BCE8BD28BD38BD48BD68BD88BD98BDC8BDF8BE08BE48BE88BE98BEE8BF08BF3 -8BF68BF98BFC8BFF8C008C028C048C078C0C8C0F8C118C128C148C158C168C19 -8C1B8C188C1D8C1F8C208C218C258C278C2A8C2B8C2E8C2F8C328C338C358C36 -5369537A961D962296219631962A963D963C964296499654965F9667966C9672 -96749688968D969796B09097909B909D909990AC90A190B490B390B690BA0000 -DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090B890B090CF90C590BE90D090C490C790D390E690E290DC90D790DB90EB -90EF90FE91049122911E91239131912F913991439146520D594252A252AC52AD -52BE54FF52D052D652F053DF71EE77CD5EF451F551FC9B2F53B65F01755A5DEF -574C57A957A1587E58BC58C558D15729572C572A57335739572E572F575C573B -574257695785576B5786577C577B5768576D5776577357AD57A4578C57B257CF -57A757B4579357A057D557D857DA57D957D257B857F457EF57F857E457DD0000 -DC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000580B580D57FD57ED5800581E5819584458205865586C58815889589A5880 -99A89F1961FF8279827D827F828F828A82A88284828E82918297829982AB82B8 -82BE82B082C882CA82E3829882B782AE82CB82CC82C182A982B482A182AA829F -82C482CE82A482E1830982F782E4830F830782DC82F482D282D8830C82FB82D3 -8311831A83068314831582E082D5831C8351835B835C83088392833C83348331 -839B835E832F834F83478343835F834083178360832D833A8333836683650000 -DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008368831B8369836C836A836D836E83B0837883B383B483A083AA8393839C -8385837C83B683A9837D83B8837B8398839E83A883BA83BC83C1840183E583D8 -58078418840B83DD83FD83D6841C84388411840683D483DF840F840383F883F9 -83EA83C583C0842683F083E1845C8451845A8459847384878488847A84898478 -843C844684698476848C848E8431846D84C184CD84D084E684BD84D384CA84BF -84BA84E084A184B984B4849784E584E3850C750D853884F08539851F853A0000 -DE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008556853B84FF84FC8559854885688564855E857A77A285438572857B85A4 -85A88587858F857985AE859C858585B985B785B085D385C185DC85FF86278605 -86298616863C5EFE5F08593C594180375955595A5958530F5C225C255C2C5C34 -624C626A629F62BB62CA62DA62D762EE632262F66339634B634363AD63F66371 -637A638E63B4636D63AC638A636963AE63BC63F263F863E063FF63C463DE63CE -645263C663BE64456441640B641B6420640C64266421645E6484646D64960000 -DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000647A64B764B8649964BA64C064D064D764E464E265096525652E5F0B5FD2 -75195F11535F53F153FD53E953E853FB541254165406544B5452545354545456 -54435421545754595423543254825494547754715464549A549B548454765466 -549D54D054AD54C254B454D254A754A654D354D4547254A354D554BB54BF54CC -54D954DA54DC54A954AA54A454DD54CF54DE551B54E7552054FD551454F35522 -5523550F55115527552A5567558F55B55549556D55415555553F5550553C0000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005537555655755576557755335530555C558B55D2558355B155B955885581 -559F557E55D65591557B55DF55BD55BE5594559955EA55F755C9561F55D155EB -55EC55D455E655DD55C455EF55E555F255F355CC55CD55E855F555E48F94561E -5608560C56015624562355FE56005627562D565856395657562C564D56625659 -565C564C5654568656645671566B567B567C5685569356AF56D456D756DD56E1 -56F556EB56F956FF5704570A5709571C5E0F5E195E145E115E315E3B5E3C0000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E375E445E545E5B5E5E5E615C8C5C7A5C8D5C905C965C885C985C995C91 -5C9A5C9C5CB55CA25CBD5CAC5CAB5CB15CA35CC15CB75CC45CD25CE45CCB5CE5 -5D025D035D275D265D2E5D245D1E5D065D1B5D585D3E5D345D3D5D6C5D5B5D6F -5D5D5D6B5D4B5D4A5D695D745D825D995D9D8C735DB75DC55F735F775F825F87 -5F895F8C5F955F995F9C5FA85FAD5FB55FBC88625F6172AD72B072B472B772B8 -72C372C172CE72CD72D272E872EF72E972F272F472F7730172F3730372FA0000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072FB731773137321730A731E731D7315732273397325732C733873317350 -734D73577360736C736F737E821B592598E7592459029963996799689969996A -996B996C99749977997D998099849987998A998D999099919993999499955E80 -5E915E8B5E965EA55EA05EB95EB55EBE5EB38D535ED25ED15EDB5EE85EEA81BA -5FC45FC95FD65FCF60035FEE60045FE15FE45FFE600560065FEA5FED5FF86019 -60356026601B600F600D6029602B600A603F602160786079607B607A60420000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000606A607D6096609A60AD609D60836092608C609B60EC60BB60B160DD60D8 -60C660DA60B4612061266115612360F46100610E612B614A617561AC619461A7 -61B761D461F55FDD96B395E995EB95F195F395F595F695FC95FE960396049606 -9608960A960B960C960D960F96129615961696179619961A4E2C723F62156C35 -6C546C5C6C4A6CA36C856C906C946C8C6C686C696C746C766C866CA96CD06CD4 -6CAD6CF76CF86CF16CD76CB26CE06CD66CFA6CEB6CEE6CB16CD36CEF6CFE0000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006D396D276D0C6D436D486D076D046D196D0E6D2B6D4D6D2E6D356D1A6D4F -6D526D546D336D916D6F6D9E6DA06D5E6D936D946D5C6D606D7C6D636E1A6DC7 -6DC56DDE6E0E6DBF6DE06E116DE66DDD6DD96E166DAB6E0C6DAE6E2B6E6E6E4E -6E6B6EB26E5F6E866E536E546E326E256E446EDF6EB16E986EE06F2D6EE26EA5 -6EA76EBD6EBB6EB76ED76EB46ECF6E8F6EC26E9F6F626F466F476F246F156EF9 -6F2F6F366F4B6F746F2A6F096F296F896F8D6F8C6F786F726F7C6F7A6FD10000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FC96FA76FB96FB66FC26FE16FEE6FDE6FE06FEF701A7023701B70397035 -704F705E5B805B845B955B935BA55BB8752F9A9E64345BE45BEE89305BF08E47 -8B078FB68FD38FD58FE58FEE8FE48FE98FE68FF38FE890059004900B90269011 -900D9016902190359036902D902F9044905190529050906890589062905B66B9 -9074907D908290889083908B5F505F575F565F585C3B54AB5C505C595B715C63 -5C667FBC5F2A5F295F2D82745F3C9B3B5C6E59815983598D59A959AA59A30000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000599759CA59AB599E59A459D259B259AF59D759BE5A055A0659DD5A0859E3 -59D859F95A0C5A095A325A345A115A235A135A405A675A4A5A555A3C5A625A75 -80EC5AAA5A9B5A775A7A5ABE5AEB5AB25AD25AD45AB85AE05AE35AF15AD65AE6 -5AD85ADC5B095B175B165B325B375B405C155C1C5B5A5B655B735B515B535B62 -9A759A779A789A7A9A7F9A7D9A809A819A859A889A8A9A909A929A939A969A98 -9A9B9A9C9A9D9A9F9AA09AA29AA39AA59AA77E9F7EA17EA37EA57EA87EA90000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007EAD7EB07EBE7EC07EC17EC27EC97ECB7ECC7ED07ED47ED77EDB7EE07EE1 -7EE87EEB7EEE7EEF7EF17EF27F0D7EF67EFA7EFB7EFE7F017F027F037F077F08 -7F0B7F0C7F0F7F117F127F177F197F1C7F1B7F1F7F217F227F237F247F257F26 -7F277F2A7F2B7F2C7F2D7F2F7F307F317F327F337F355E7A757F5DDB753E9095 -738E739173AE73A2739F73CF73C273D173B773B373C073C973C873E573D9987C -740A73E973E773DE73BA73F2740F742A745B7426742574287430742E742C0000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000741B741A7441745C7457745574597477746D747E749C748E748074817487 -748B749E74A874A9749074A774D274BA97EA97EB97EC674C6753675E67486769 -67A56787676A6773679867A7677567A8679E67AD678B6777677C67F0680967D8 -680A67E967B0680C67D967B567DA67B367DD680067C367B867E2680E67C167FD -6832683368606861684E6862684468646883681D68556866684168676840683E -684A6849682968B5688F687468776893686B68C2696E68FC691F692068F90000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000692468F0690B6901695768E369106971693969606942695D6984696B6980 -69986978693469CC6987698869CE6989696669636979699B69A769BB69AB69AD -69D469B169C169CA69DF699569E0698D69FF6A2F69ED6A176A186A6569F26A44 -6A3E6AA06A506A5B6A356A8E6A796A3D6A286A586A7C6A916A906AA96A976AAB -733773526B816B826B876B846B926B936B8D6B9A6B9B6BA16BAA8F6B8F6D8F71 -8F728F738F758F768F788F778F798F7A8F7C8F7E8F818F828F848F878F8B0000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008F8D8F8E8F8F8F988F9A8ECE620B6217621B621F6222622162256224622C -81E774EF74F474FF750F75117513653465EE65EF65F0660A6619677266036615 -6600708566F7661D66346631663666358006665F66546641664F665666616657 -66776684668C66A7669D66BE66DB66DC66E666E98D328D338D368D3B8D3D8D40 -8D458D468D488D498D478D4D8D558D5989C789CA89CB89CC89CE89CF89D089D1 -726E729F725D7266726F727E727F7284728B728D728F72926308633263B00000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000643F64D880046BEA6BF36BFD6BF56BF96C056C076C066C0D6C156C186C19 -6C1A6C216C296C246C2A6C3265356555656B724D72527256723086625216809F -809C809380BC670A80BD80B180AB80AD80B480B780E780E880E980EA80DB80C2 -80C480D980CD80D7671080DD80EB80F180F480ED810D810E80F280FC67158112 -8C5A8136811E812C811881328148814C815381748159815A817181608169817C -817D816D8167584D5AB58188818281916ED581A381AA81CC672681CA81BB0000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081C181A66B246B376B396B436B466B5998D198D298D398D598D998DA6BB3 -5F406BC289F365909F51659365BC65C665C465C365CC65CE65D265D67080709C -7096709D70BB70C070B770AB70B170E870CA711071137116712F71317173715C -716871457172714A7178717A719871B371B571A871A071E071D471E771F9721D -7228706C7118716671B9623E623D624362486249793B794079467949795B795C -7953795A796279577960796F7967797A7985798A799A79A779B35FD15FD00000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000603C605D605A606760416059606360AB6106610D615D61A9619D61CB61D1 -62068080807F6C936CF66DFC77F677F87800780978177818781165AB782D781C -781D7839783A783B781F783C7825782C78237829784E786D7856785778267850 -7847784C786A789B7893789A7887789C78A178A378B278B978A578D478D978C9 -78EC78F2790578F479137924791E79349F9B9EF99EFB9EFC76F17704770D76F9 -77077708771A77227719772D7726773577387750775177477743775A77680000 -EE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077627765777F778D777D7780778C7791779F77A077B077B577BD753A7540 -754E754B7548755B7572757975837F587F617F5F8A487F687F747F717F797F81 -7F7E76CD76E58832948594869487948B948A948C948D948F9490949494979495 -949A949B949C94A394A494AB94AA94AD94AC94AF94B094B294B494B694B794B8 -94B994BA94BC94BD94BF94C494C894C994CA94CB94CC94CD94CE94D094D194D2 -94D594D694D794D994D894DB94DE94DF94E094E294E494E594E794E894EA0000 -EF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094E994EB94EE94EF94F394F494F594F794F994FC94FD94FF950395029506 -95079509950A950D950E950F951295139514951595169518951B951D951E951F -9522952A952B9529952C953195329534953695379538953C953E953F95429535 -9544954595469549954C954E954F9552955395549556955795589559955B955E -955F955D95619562956495659566956795689569956A956B956C956F95719572 -9573953A77E777EC96C979D579ED79E379EB7A065D477A037A027A1E7A140000 -F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A397A377A519ECF99A57A707688768E7693769976A474DE74E0752C9E20 -9E229E289E299E2A9E2B9E2C9E329E319E369E389E379E399E3A9E3E9E419E42 -9E449E469E479E489E499E4B9E4C9E4E9E519E559E579E5A9E5B9E5C9E5E9E63 -9E669E679E689E699E6A9E6B9E6C9E719E6D9E7375927594759675A0759D75AC -75A375B375B475B875C475B175B075C375C275D675CD75E375E875E675E475EB -75E7760375F175FC75FF761076007605760C7617760A76257618761576190000 -F1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000761B763C762276207640762D7630763F76357643763E7633764D765E7654 -765C7656766B766F7FCA7AE67A787A797A807A867A887A957AA67AA07AAC7AA8 -7AAD7AB3886488698872887D887F888288A288C688B788BC88C988E288CE88E3 -88E588F1891A88FC88E888FE88F0892189198913891B890A8934892B89368941 -8966897B758B80E576B276B477DC801280148016801C80208022802580268027 -802980288031800B803580438046804D80528069807189839878988098830000 -F2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009889988C988D988F9894989A989B989E989F98A198A298A598A6864D8654 -866C866E867F867A867C867B86A8868D868B86AC869D86A786A386AA869386A9 -86B686C486B586CE86B086BA86B186AF86C986CF86B486E986F186F286ED86F3 -86D0871386DE86F486DF86D886D18703870786F88708870A870D87098723873B -871E8725872E871A873E87488734873187298737873F87828722877D877E877B -87608770874C876E878B87538763877C876487598765879387AF87A887D20000 -F3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000087C68788878587AD8797878387AB87E587AC87B587B387CB87D387BD87D1 -87C087CA87DB87EA87E087EE8816881387FE880A881B88218839883C7F367F42 -7F447F4582107AFA7AFD7B087B037B047B157B0A7B2B7B0F7B477B387B2A7B19 -7B2E7B317B207B257B247B337B3E7B1E7B587B5A7B457B757B4C7B5D7B607B6E -7B7B7B627B727B717B907BA67BA77BB87BAC7B9D7BA87B857BAA7B9C7BA27BAB -7BB47BD17BC17BCC7BDD7BDA7BE57BE67BEA7C0C7BFE7BFC7C0F7C167C0B0000 -F4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007C1F7C2A7C267C387C417C4081FE82018202820481EC8844822182228223 -822D822F8228822B8238823B82338234823E82448249824B824F825A825F8268 -887E8885888888D888DF895E7F9D7F9F7FA77FAF7FB07FB27C7C65497C917C9D -7C9C7C9E7CA27CB27CBC7CBD7CC17CC77CCC7CCD7CC87CC57CD77CE8826E66A8 -7FBF7FCE7FD57FE57FE17FE67FE97FEE7FF37CF87D777DA67DAE7E477E9B9EB8 -9EB48D738D848D948D918DB18D678D6D8C478C49914A9150914E914F91640000 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009162916191709169916F917D917E917291749179918C91859190918D9191 -91A291A391AA91AD91AE91AF91B591B491BA8C559E7E8DB88DEB8E058E598E69 -8DB58DBF8DBC8DBA8DC48DD68DD78DDA8DDE8DCE8DCF8DDB8DC68DEC8DF78DF8 -8DE38DF98DFB8DE48E098DFD8E148E1D8E1F8E2C8E2E8E238E2F8E3A8E408E39 -8E358E3D8E318E498E418E428E518E528E4A8E708E768E7C8E6F8E748E858E8F -8E948E908E9C8E9E8C788C828C8A8C858C988C94659B89D689DE89DA89DC0000 -F6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089E589EB89EF8A3E8B26975396E996F396EF970697019708970F970E972A -972D9730973E9F809F839F859F869F879F889F899F8A9F8C9EFE9F0B9F0D96B9 -96BC96BD96CE96D277BF96E0928E92AE92C8933E936A93CA938F943E946B9C7F -9C829C859C869C879C887A239C8B9C8E9C909C919C929C949C959C9A9C9B9C9E -9C9F9CA09CA19CA29CA39CA59CA69CA79CA89CA99CAB9CAD9CAE9CB09CB19CB2 -9CB39CB49CB59CB69CB79CBA9CBB9CBC9CBD9CC49CC59CC69CC79CCA9CCB0000 -F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009CCC9CCD9CCE9CCF9CD09CD39CD49CD59CD79CD89CD99CDC9CDD9CDF9CE2 -977C978597919792979497AF97AB97A397B297B49AB19AB09AB79E589AB69ABA -9ABC9AC19AC09AC59AC29ACB9ACC9AD19B459B439B479B499B489B4D9B5198E8 -990D992E995599549ADF9AE19AE69AEF9AEB9AFB9AED9AF99B089B0F9B139B1F -9B239EBD9EBE7E3B9E829E879E889E8B9E9293D69E9D9E9F9EDB9EDC9EDD9EE0 -9EDF9EE29EE99EE79EE59EEA9EEF9F229F2C9F2F9F399F379F3D9F3E9F440000 diff --git a/src/runtime/tcl_library/encoding/iso2022-jp.enc b/src/runtime/tcl_library/encoding/iso2022-jp.enc deleted file mode 100644 index f6dabe56..00000000 --- a/src/runtime/tcl_library/encoding/iso2022-jp.enc +++ /dev/null @@ -1,12 +0,0 @@ -# Encoding file: iso2022-jp, escape-driven -E -name iso2022-jp -init {} -final {} -ascii \x1b(B -jis0201 \x1b(J -jis0208 \x1b$B -jis0208 \x1b$@ -jis0212 \x1b$(D -gb2312 \x1b$A -ksc5601 \x1b$(C diff --git a/src/runtime/tcl_library/encoding/iso2022-kr.enc b/src/runtime/tcl_library/encoding/iso2022-kr.enc deleted file mode 100644 index d20ce2bc..00000000 --- a/src/runtime/tcl_library/encoding/iso2022-kr.enc +++ /dev/null @@ -1,7 +0,0 @@ -# Encoding file: iso2022-kr, escape-driven -E -name iso2022-kr -init \x1b$)C -final {} -iso8859-1 \x0f -ksc5601 \x0e diff --git a/src/runtime/tcl_library/encoding/iso2022.enc b/src/runtime/tcl_library/encoding/iso2022.enc deleted file mode 100644 index a58f8e3e..00000000 --- a/src/runtime/tcl_library/encoding/iso2022.enc +++ /dev/null @@ -1,14 +0,0 @@ -# Encoding file: iso2022, escape-driven -E -name iso2022 -init {} -final {} -iso8859-1 \x1b(B -jis0201 \x1b(J -gb1988 \x1b(T -jis0208 \x1b$B -jis0208 \x1b$@ -jis0212 \x1b$(D -gb2312 \x1b$A -ksc5601 \x1b$(C -jis0208 \x1b&@\x1b$B diff --git a/src/runtime/tcl_library/encoding/iso8859-1.enc b/src/runtime/tcl_library/encoding/iso8859-1.enc deleted file mode 100644 index 045d8fa2..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-1.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-1, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A000A100A200A300A400A500A600A700A800A900AA00AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900BA00BB00BC00BD00BE00BF -00C000C100C200C300C400C500C600C700C800C900CA00CB00CC00CD00CE00CF -00D000D100D200D300D400D500D600D700D800D900DA00DB00DC00DD00DE00DF -00E000E100E200E300E400E500E600E700E800E900EA00EB00EC00ED00EE00EF -00F000F100F200F300F400F500F600F700F800F900FA00FB00FC00FD00FE00FF diff --git a/src/runtime/tcl_library/encoding/iso8859-10.enc b/src/runtime/tcl_library/encoding/iso8859-10.enc deleted file mode 100644 index 934b3b92..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-10.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-10, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A0010401120122012A0128013600A7013B011001600166017D00AD016A014A -00B0010501130123012B0129013700B7013C011101610167017E2015016B014B -010000C100C200C300C400C500C6012E010C00C9011800CB011600CD00CE00CF -00D00145014C00D300D400D500D6016800D8017200DA00DB00DC00DD00DE00DF -010100E100E200E300E400E500E6012F010D00E9011900EB011700ED00EE00EF -00F00146014D00F300F400F500F6016900F8017300FA00FB00FC00FD00FE0138 diff --git a/src/runtime/tcl_library/encoding/iso8859-11.enc b/src/runtime/tcl_library/encoding/iso8859-11.enc deleted file mode 100644 index d6834535..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-11.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-11, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A00E010E020E030E040E050E060E070E080E090E0A0E0B0E0C0E0D0E0E0E0F -0E100E110E120E130E140E150E160E170E180E190E1A0E1B0E1C0E1D0E1E0E1F -0E200E210E220E230E240E250E260E270E280E290E2A0E2B0E2C0E2D0E2E0E2F -0E300E310E320E330E340E350E360E370E380E390E3A00000000000000000E3F -0E400E410E420E430E440E450E460E470E480E490E4A0E4B0E4C0E4D0E4E0E4F -0E500E510E520E530E540E550E560E570E580E590E5A0E5B0000000000000000 diff --git a/src/runtime/tcl_library/encoding/iso8859-13.enc b/src/runtime/tcl_library/encoding/iso8859-13.enc deleted file mode 100644 index b7edcaf3..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-13.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-13, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A0201D00A200A300A4201E00A600A700D800A9015600AB00AC00AD00AE00C6 -00B000B100B200B3201C00B500B600B700F800B9015700BB00BC00BD00BE00E6 -0104012E0100010600C400C501180112010C00C90179011601220136012A013B -01600143014500D3014C00D500D600D701720141015A016A00DC017B017D00DF -0105012F0101010700E400E501190113010D00E9017A011701230137012B013C -01610144014600F3014D00F500F600F701730142015B016B00FC017C017E2019 diff --git a/src/runtime/tcl_library/encoding/iso8859-14.enc b/src/runtime/tcl_library/encoding/iso8859-14.enc deleted file mode 100644 index a65ba05b..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-14.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-14, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A01E021E0300A3010A010B1E0A00A71E8000A91E821E0B1EF200AD00AE0178 -1E1E1E1F012001211E401E4100B61E561E811E571E831E601EF31E841E851E61 -00C000C100C200C300C400C500C600C700C800C900CA00CB00CC00CD00CE00CF -017400D100D200D300D400D500D61E6A00D800D900DA00DB00DC00DD017600DF -00E000E100E200E300E400E500E600E700E800E900EA00EB00EC00ED00EE00EF -017500F100F200F300F400F500F61E6B00F800F900FA00FB00FC00FD017700FF diff --git a/src/runtime/tcl_library/encoding/iso8859-15.enc b/src/runtime/tcl_library/encoding/iso8859-15.enc deleted file mode 100644 index 823af466..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-15.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-15, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A000A100A200A320AC00A5016000A7016100A900AA00AB00AC00AD00AE00AF -00B000B100B200B3017D00B500B600B7017E00B900BA00BB01520153017800BF -00C000C100C200C300C400C500C600C700C800C900CA00CB00CC00CD00CE00CF -00D000D100D200D300D400D500D600D700D800D900DA00DB00DC00DD00DE00DF -00E000E100E200E300E400E500E600E700E800E900EA00EB00EC00ED00EE00EF -00F000F100F200F300F400F500F600F700F800F900FA00FB00FC00FD00FE00FF diff --git a/src/runtime/tcl_library/encoding/iso8859-16.enc b/src/runtime/tcl_library/encoding/iso8859-16.enc deleted file mode 100644 index da337093..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-16.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-16, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A001040105014120AC201E016000A7016100A9021800AB017900AD017A017B -00B000B1010C0142017D201D00B600B7017E010D021900BB015201530178017C -00C000C100C2010200C4010600C600C700C800C900CA00CB00CC00CD00CE00CF -0110014300D200D300D4015000D6015A017000D900DA00DB00DC0118021A00DF -00E000E100E2010300E4010700E600E700E800E900EA00EB00EC00ED00EE00EF -0111014400F200F300F4015100F6015B017100F900FA00FB00FC0119021B00FF diff --git a/src/runtime/tcl_library/encoding/iso8859-2.enc b/src/runtime/tcl_library/encoding/iso8859-2.enc deleted file mode 100644 index 16faab66..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-2.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-2, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A0010402D8014100A4013D015A00A700A80160015E0164017900AD017D017B -00B0010502DB014200B4013E015B02C700B80161015F0165017A02DD017E017C -015400C100C2010200C40139010600C7010C00C9011800CB011A00CD00CE010E -01100143014700D300D4015000D600D70158016E00DA017000DC00DD016200DF -015500E100E2010300E4013A010700E7010D00E9011900EB011B00ED00EE010F -01110144014800F300F4015100F600F70159016F00FA017100FC00FD016302D9 diff --git a/src/runtime/tcl_library/encoding/iso8859-3.enc b/src/runtime/tcl_library/encoding/iso8859-3.enc deleted file mode 100644 index c914bce7..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-3.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-3, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A0012602D800A300A40000012400A700A80130015E011E013400AD0000017B -00B0012700B200B300B400B5012500B700B80131015F011F013500BD0000017C -00C000C100C2000000C4010A010800C700C800C900CA00CB00CC00CD00CE00CF -000000D100D200D300D4012000D600D7011C00D900DA00DB00DC016C015C00DF -00E000E100E2000000E4010B010900E700E800E900EA00EB00EC00ED00EE00EF -000000F100F200F300F4012100F600F7011D00F900FA00FB00FC016D015D02D9 diff --git a/src/runtime/tcl_library/encoding/iso8859-4.enc b/src/runtime/tcl_library/encoding/iso8859-4.enc deleted file mode 100644 index ef5c5a99..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-4.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-4, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A001040138015600A40128013B00A700A8016001120122016600AD017D00AF -00B0010502DB015700B40129013C02C700B80161011301230167014A017E014B -010000C100C200C300C400C500C6012E010C00C9011800CB011600CD00CE012A -01100145014C013600D400D500D600D700D8017200DA00DB00DC0168016A00DF -010100E100E200E300E400E500E6012F010D00E9011900EB011700ED00EE012B -01110146014D013700F400F500F600F700F8017300FA00FB00FC0169016B02D9 diff --git a/src/runtime/tcl_library/encoding/iso8859-5.enc b/src/runtime/tcl_library/encoding/iso8859-5.enc deleted file mode 100644 index bf4ee82b..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-5.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-5, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A0040104020403040404050406040704080409040A040B040C00AD040E040F -0410041104120413041404150416041704180419041A041B041C041D041E041F -0420042104220423042404250426042704280429042A042B042C042D042E042F -0430043104320433043404350436043704380439043A043B043C043D043E043F -0440044104420443044404450446044704480449044A044B044C044D044E044F -2116045104520453045404550456045704580459045A045B045C00A7045E045F diff --git a/src/runtime/tcl_library/encoding/iso8859-6.enc b/src/runtime/tcl_library/encoding/iso8859-6.enc deleted file mode 100644 index 19ddefbc..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-6.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-6, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A000000000000000A40000000000000000000000000000060C00AD00000000 -00000000000000000000000000000000000000000000061B000000000000061F -0000062106220623062406250626062706280629062A062B062C062D062E062F -0630063106320633063406350636063706380639063A00000000000000000000 -0640064106420643064406450646064706480649064A064B064C064D064E064F -0650065106520000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/iso8859-7.enc b/src/runtime/tcl_library/encoding/iso8859-7.enc deleted file mode 100644 index a46112f1..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-7.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-7, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A02018201900A320AC20AF00A600A700A800A9037A00AB00AC00AD00002015 -00B000B100B200B303840385038600B703880389038A00BB038C00BD038E038F -0390039103920393039403950396039703980399039A039B039C039D039E039F -03A003A1000003A303A403A503A603A703A803A903AA03AB03AC03AD03AE03AF -03B003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C203C303C403C503C603C703C803C903CA03CB03CC03CD03CE0000 diff --git a/src/runtime/tcl_library/encoding/iso8859-8.enc b/src/runtime/tcl_library/encoding/iso8859-8.enc deleted file mode 100644 index 579fa5b4..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-8.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-8, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A0000000A200A300A400A500A600A700A800A900D700AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900F700BB00BC00BD00BE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000002017 -05D005D105D205D305D405D505D605D705D805D905DA05DB05DC05DD05DE05DF -05E005E105E205E305E405E505E605E705E805E905EA00000000200E200F0000 diff --git a/src/runtime/tcl_library/encoding/iso8859-9.enc b/src/runtime/tcl_library/encoding/iso8859-9.enc deleted file mode 100644 index 6eed3f1a..00000000 --- a/src/runtime/tcl_library/encoding/iso8859-9.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: iso8859-9, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0080008100820083008400850086008700880089008A008B008C008D008E008F -0090009100920093009400950096009700980099009A009B009C009D009E009F -00A000A100A200A300A400A500A600A700A800A900AA00AB00AC00AD00AE00AF -00B000B100B200B300B400B500B600B700B800B900BA00BB00BC00BD00BE00BF -00C000C100C200C300C400C500C600C700C800C900CA00CB00CC00CD00CE00CF -011E00D100D200D300D400D500D600D700D800D900DA00DB00DC0130015E00DF -00E000E100E200E300E400E500E600E700E800E900EA00EB00EC00ED00EE00EF -011F00F100F200F300F400F500F600F700F800F900FA00FB00FC0131015F00FF diff --git a/src/runtime/tcl_library/encoding/jis0201.enc b/src/runtime/tcl_library/encoding/jis0201.enc deleted file mode 100644 index 70e099db..00000000 --- a/src/runtime/tcl_library/encoding/jis0201.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: jis0201, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D203E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF61FF62FF63FF64FF65FF66FF67FF68FF69FF6AFF6BFF6CFF6DFF6EFF6F -FF70FF71FF72FF73FF74FF75FF76FF77FF78FF79FF7AFF7BFF7CFF7DFF7EFF7F -FF80FF81FF82FF83FF84FF85FF86FF87FF88FF89FF8AFF8BFF8CFF8DFF8EFF8F -FF90FF91FF92FF93FF94FF95FF96FF97FF98FF99FF9AFF9BFF9CFF9DFF9EFF9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/jis0208.enc b/src/runtime/tcl_library/encoding/jis0208.enc deleted file mode 100644 index 11c49a4a..00000000 --- a/src/runtime/tcl_library/encoding/jis0208.enc +++ /dev/null @@ -1,1319 +0,0 @@ -# Encoding file: jis0208, double-byte -D -2129 0 77 -21 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000300030013002FF0CFF0E30FBFF1AFF1BFF1FFF01309B309C00B4FF4000A8 -FF3EFFE3FF3F30FD30FE309D309E30034EDD30053006300730FC20152010FF0F -FF3C301C2016FF5C2026202520182019201C201DFF08FF0930143015FF3BFF3D -FF5BFF5D30083009300A300B300C300D300E300F30103011FF0B221200B100D7 -00F7FF1D2260FF1CFF1E22662267221E22342642264000B0203220332103FFE5 -FF0400A200A3FF05FF03FF06FF0AFF2000A72606260525CB25CF25CE25C70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -22 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000025C625A125A025B325B225BD25BC203B3012219221902191219330130000 -00000000000000000000000000000000000000002208220B2286228722822283 -222A2229000000000000000000000000000000002227222800AC21D221D42200 -220300000000000000000000000000000000000000000000222022A523122202 -220722612252226A226B221A223D221D2235222B222C00000000000000000000 -00000000212B2030266F266D266A2020202100B6000000000000000025EF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -23 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19000000000000000000000000 -0000FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3A00000000000000000000 -0000FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5A00000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -24 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -25 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -26 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -27 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -28 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000025002502250C251025182514251C252C25242534253C25012503250F2513 -251B251725232533252B253B254B2520252F25282537253F251D253025252538 -2542000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E9C55165A03963F54C0611B632859F690228475831C7A5060AA63E16E25 -65ED846682A69BF56893572765A162715B9B59D0867B98F47D627DBE9B8E6216 -7C9F88B75B895EB563096697684895C7978D674F4EE54F0A4F4D4F9D504956F2 -593759D45A015C0960DF610F61706613690570BA754F757079FB7DAD7DEF80C3 -840E88638B029055907A533B4E954EA557DF80B290C178EF4E0058F16EA29038 -7A328328828B9C2F5141537054BD54E156E059FB5F1598F26DEB80E4852D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -31 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009662967096A097FB540B53F35B8770CF7FBD8FC296E8536F9D5C7ABA4E11 -789381FC6E26561855046B1D851A9C3B59E553A96D6674DC958F56424E91904B -96F2834F990C53E155B65B305F71662066F368046C386CF36D29745B76C87A4E -983482F1885B8A6092ED6DB275AB76CA99C560A68B018D8A95B2698E53AD5186 -5712583059445BB45EF6602863A963F46CBF6F14708E7114715971D5733F7E01 -827682D185979060925B9D1B586965BC6C5A752551F9592E59655F805FDC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -32 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062BC65FA6A2A6B276BB4738B7FC189569D2C9D0E9EC45CA16C96837B5104 -5C4B61B681C6687672614E594FFA537860696E297A4F97F34E0B53164EEE4F55 -4F3D4FA14F7352A053EF5609590F5AC15BB65BE179D16687679C67B66B4C6CB3 -706B73C2798D79BE7A3C7B8782B182DB8304837783EF83D387668AB256298CA8 -8FE6904E971E868A4FC45CE862117259753B81E582BD86FE8CC096C5991399D5 -4ECB4F1A89E356DE584A58CA5EFB5FEB602A6094606261D0621262D065390000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -33 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B41666668B06D777070754C76867D7582A587F9958B968E8C9D51F152BE -591654B35BB35D16616869826DAF788D84CB88578A7293A79AB86D6C99A886D9 -57A367FF86CE920E5283568754045ED362E164B9683C68386BBB737278BA7A6B -899A89D28D6B8F0390ED95A3969497695B665CB3697D984D984E639B7B206A2B -6A7F68B69C0D6F5F5272559D607062EC6D3B6E076ED1845B89108F444E149C39 -53F6691B6A3A9784682A515C7AC384B291DC938C565B9D286822830584310000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -34 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007CA5520882C574E64E7E4F8351A05BD2520A52D852E75DFB559A582A59E6 -5B8C5B985BDB5E725E7960A3611F616361BE63DB656267D1685368FA6B3E6B53 -6C576F226F976F4574B0751876E3770B7AFF7BA17C217DE97F367FF0809D8266 -839E89B38ACC8CAB908494519593959195A2966597D3992882184E38542B5CB8 -5DCC73A9764C773C5CA97FEB8D0B96C19811985498584F014F0E5371559C5668 -57FA59475B095BC45C905E0C5E7E5FCC63EE673A65D765E2671F68CB68C40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -35 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006A5F5E306BC56C176C7D757F79485B637A007D005FBD898F8A188CB48D77 -8ECC8F1D98E29A0E9B3C4E80507D510059935B9C622F628064EC6B3A72A07591 -79477FA987FB8ABC8B7063AC83CA97A05409540355AB68546A588A7078276775 -9ECD53745BA2811A865090064E184E454EC74F1153CA54385BAE5F1360256551 -673D6C426C726CE3707874037A767AAE7B087D1A7CFE7D6665E7725B53BB5C45 -5DE862D262E063196E20865A8A318DDD92F86F0179A69B5A4EA84EAB4EAC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -36 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F9B4FA050D151477AF6517151F653545321537F53EB55AC58835CE15F37 -5F4A602F6050606D631F65596A4B6CC172C272ED77EF80F881058208854E90F7 -93E197FF99579A5A4EF051DD5C2D6681696D5C4066F26975738968507C8150C5 -52E457475DFE932665A46B236B3D7434798179BD7B4B7DCA82B983CC887F895F -8B398FD191D1541F92804E5D503653E5533A72D7739677E982E68EAF99C699C8 -99D25177611A865E55B07A7A50765BD3904796854E326ADB91E75C515C480000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -37 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000063987A9F6C9397748F617AAA718A96887C8268177E706851936C52F2541B -85AB8A137FA48ECD90E15366888879414FC250BE521151445553572D73EA578B -59515F625F8460756176616761A963B2643A656C666F68426E1375667A3D7CFB -7D4C7D997E4B7F6B830E834A86CD8A088A638B668EFD981A9D8F82B88FCE9BE8 -5287621F64836FC09699684150916B206C7A6F547A747D5088408A2367084EF6 -503950265065517C5238526355A7570F58055ACC5EFA61B261F862F363720000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -38 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000691C6A29727D72AC732E7814786F7D79770C80A9898B8B198CE28ED29063 -9375967A98559A139E785143539F53B35E7B5F266E1B6E90738473FE7D438237 -8A008AFA96504E4E500B53E4547C56FA59D15B645DF15EAB5F276238654567AF -6E5672D07CCA88B480A180E183F0864E8A878DE8923796C798679F134E944E92 -4F0D53485449543E5A2F5F8C5FA1609F68A76A8E745A78818A9E8AA48B779190 -4E5E9BC94EA44F7C4FAF501950165149516C529F52B952FE539A53E354110000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -39 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000540E5589575157A2597D5B545B5D5B8F5DE55DE75DF75E785E835E9A5EB7 -5F186052614C629762D863A7653B6602664366F4676D6821689769CB6C5F6D2A -6D696E2F6E9D75327687786C7A3F7CE07D057D187D5E7DB18015800380AF80B1 -8154818F822A8352884C88618B1B8CA28CFC90CA91759271783F92FC95A4964D -980599999AD89D3B525B52AB53F7540858D562F76FE08C6A8F5F9EB9514B523B -544A56FD7A4091779D609ED273446F09817075115FFD60DA9AA872DB8FBC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B6498034ECA56F0576458BE5A5A606861C7660F6606683968B16DF775D5 -7D3A826E9B424E9B4F5053C955065D6F5DE65DEE67FB6C99747378028A509396 -88DF57505EA7632B50B550AC518D670054C9585E59BB5BB05F69624D63A1683D -6B736E08707D91C7728078157826796D658E7D3083DC88C18F09969B52645728 -67507F6A8CA151B45742962A583A698A80B454B25D0E57FC78959DFA4F5C524A -548B643E6628671467F57A847B567D22932F685C9BAD7B395319518A52370000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005BDF62F664AE64E6672D6BBA85A996D176909BD6634C93069BAB76BF6652 -4E09509853C25C7160E864926563685F71E673CA75237B977E8286958B838CDB -9178991065AC66AB6B8B4ED54ED44F3A4F7F523A53F853F255E356DB58EB59CB -59C959FF5B505C4D5E025E2B5FD7601D6307652F5B5C65AF65BD65E8679D6B62 -6B7B6C0F7345794979C17CF87D197D2B80A2810281F389968A5E8A698A668A8C -8AEE8CC78CDC96CC98FC6B6F4E8B4F3C4F8D51505B575BFA6148630166420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B216ECB6CBB723E74BD75D478C1793A800C803381EA84948F9E6C509E7F -5F0F8B589D2B7AFA8EF85B8D96EB4E0353F157F759315AC95BA460896E7F6F06 -75BE8CEA5B9F85007BE0507267F4829D5C61854A7E1E820E51995C0463688D66 -659C716E793E7D1780058B1D8ECA906E86C790AA501F52FA5C3A6753707C7235 -914C91C8932B82E55BC25F3160F94E3B53D65B88624B67316B8A72E973E07A2E -816B8DA391529996511253D7546A5BFF63886A397DAC970056DA53CE54680000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005B975C315DDE4FEE610162FE6D3279C079CB7D427E4D7FD281ED821F8490 -884689728B908E748F2F9031914B916C96C6919C4EC04F4F514553415F93620E -67D46C416E0B73637E2691CD928353D459195BBF6DD1795D7E2E7C9B587E719F -51FA88538FF04FCA5CFB662577AC7AE3821C99FF51C65FAA65EC696F6B896DF3 -6E966F6476FE7D145DE190759187980651E6521D6240669166D96E1A5EB67DD2 -7F7266F885AF85F78AF852A953D959735E8F5F90605592E4966450B7511F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000052DD5320534753EC54E8554655315617596859BE5A3C5BB55C065C0F5C11 -5C1A5E845E8A5EE05F70627F628462DB638C63776607660C662D6676677E68A2 -6A1F6A356CBC6D886E096E58713C7126716775C77701785D7901796579F07AE0 -7B117CA77D39809683D6848B8549885D88F38A1F8A3C8A548A738C618CDE91A4 -9266937E9418969C97984E0A4E084E1E4E575197527057CE583458CC5B225E38 -60C564FE676167566D4472B675737A6384B88B7291B89320563157F498FE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000062ED690D6B9671ED7E548077827289E698DF87558FB15C3B4F384FE14FB5 -55075A205BDD5BE95FC3614E632F65B0664B68EE699B6D786DF1753375B9771F -795E79E67D3381E382AF85AA89AA8A3A8EAB8F9B903291DD97074EBA4EC15203 -587558EC5C0B751A5C3D814E8A0A8FC59663976D7B258ACF9808916256F353A8 -9017543957825E2563A86C34708A77617C8B7FE088709042915493109318968F -745E9AC45D075D69657067A28DA896DB636E6749691983C5981796C088FE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -40 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F84647A5BF84E16702C755D662F51C4523652E259D35F8160276210653F -6574661F667468F268166B636E057272751F76DB7CBE805658F088FD897F8AA0 -8A938ACB901D91929752975965897A0E810696BB5E2D60DC621A65A566146790 -77F37A4D7C4D7E3E810A8CAC8D648DE18E5F78A9520762D963A5644262988A2D -7A837BC08AAC96EA7D76820C87494ED95148534353605BA35C025C165DDD6226 -624764B0681368346CC96D456D1767D36F5C714E717D65CB7A7F7BAD7DDA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -41 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007E4A7FA8817A821B823985A68A6E8CCE8DF59078907792AD929195839BAE -524D55846F387136516879857E5581B37CCE564C58515CA863AA66FE66FD695A -72D9758F758E790E795679DF7C977D207D4486078A34963B90619F2050E75275 -53CC53E2500955AA58EE594F723D5B8B5C64531D60E360F3635C6383633F63BB -64CD65E966F95DE369CD69FD6F1571E54E8975E976F87A937CDF7DCF7D9C8061 -83498358846C84BC85FB88C58D709001906D9397971C9A1250CF5897618E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -42 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000081D385358D0890204FC3507452475373606F6349675F6E2C8DB3901F4FD7 -5C5E8CCA65CF7D9A53528896517663C35B585B6B5C0A640D6751905C4ED6591A -592A6C708A51553E581559A560F0625367C182356955964099C49A284F535806 -5BFE80105CB15E2F5F856020614B623466FF6CF06EDE80CE817F82D4888B8CB8 -9000902E968A9EDB9BDB4EE353F059277B2C918D984C9DF96EDD702753535544 -5B856258629E62D36CA26FEF74228A1794386FC18AFE833851E786F853EA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -43 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053E94F4690548FB0596A81315DFD7AEA8FBF68DA8C3772F89C486A3D8AB0 -4E3953585606576662C563A265E66B4E6DE16E5B70AD77ED7AEF7BAA7DBB803D -80C686CB8A95935B56E358C75F3E65AD66966A806BB575378AC7502477E55730 -5F1B6065667A6C6075F47A1A7F6E81F48718904599B37BC9755C7AF97B5184C4 -901079E97A9283365AE177404E2D4EF25B995FE062BD663C67F16CE8866B8877 -8A3B914E92F399D06A177026732A82E784578CAF4E01514651CB558B5BF50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -44 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005E165E335E815F145F355F6B5FB461F2631166A2671D6F6E7252753A773A -80748139817887768ABF8ADC8D858DF3929A957798029CE552C5635776F46715 -6C8873CD8CC393AE96736D25589C690E69CC8FFD939A75DB901A585A680263B4 -69FB4F436F2C67D88FBB85267DB49354693F6F70576A58F75B2C7D2C722A540A -91E39DB44EAD4F4E505C507552438C9E544858245B9A5E1D5E955EAD5EF75F1F -608C62B5633A63D068AF6C407887798E7A0B7DE082478A028AE68E4490130000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -45 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090B8912D91D89F0E6CE5645864E265756EF476847B1B906993D16EBA54F2 -5FB964A48F4D8FED92445178586B59295C555E976DFB7E8F751C8CBC8EE2985B -70B94F1D6BBF6FB1753096FB514E54105835585759AC5C605F926597675C6E21 -767B83DF8CED901490FD934D7825783A52AA5EA6571F597460125012515A51AC -51CD520055105854585859575B955CF65D8B60BC6295642D6771684368BC68DF -76D76DD86E6F6D9B706F71C85F5375D879777B497B547B527CD67D7152300000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -46 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008463856985E48A0E8B048C468E0F9003900F94199676982D9A3095D850CD -52D5540C58025C0E61A7649E6D1E77B37AE580F48404905392855CE09D07533F -5F975FB36D9C7279776379BF7BE46BD272EC8AAD68036A6151F87A8169345C4A -9CF682EB5BC59149701E56785C6F60C765666C8C8C5A90419813545166C7920D -594890A351854E4D51EA85998B0E7058637A934B696299B47E04757753576960 -8EDF96E36C5D4E8C5C3C5F108FE953028CD1808986795EFF65E54E7351650000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -47 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000059825C3F97EE4EFB598A5FCD8A8D6FE179B079625BE78471732B71B15E74 -5FF5637B649A71C37C984E435EFC4E4B57DC56A260A96FC37D0D80FD813381BF -8FB2899786A45DF4628A64AD898767776CE26D3E743678345A467F7582AD99AC -4FF35EC362DD63926557676F76C3724C80CC80BA8F29914D500D57F95A926885 -6973716472FD8CB758F28CE0966A9019877F79E477E784294F2F5265535A62CD -67CF6CCA767D7B947C95823685848FEB66DD6F2072067E1B83AB99C19EA60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -48 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051FD7BB178727BB880877B486AE85E61808C75517560516B92626E8C767A -91979AEA4F107F70629C7B4F95A59CE9567A585986E496BC4F345224534A53CD -53DB5E06642C6591677F6C3E6C4E724872AF73ED75547E41822C85E98CA97BC4 -91C67169981298EF633D6669756A76E478D0854386EE532A5351542659835E87 -5F7C60B26249627962AB65906BD46CCC75B276AE789179D87DCB7F7780A588AB -8AB98CBB907F975E98DB6A0B7C3850995C3E5FAE67876BD8743577097F8E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -49 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009F3B67CA7A175339758B9AED5F66819D83F180985F3C5FC575627B46903C -686759EB5A9B7D10767E8B2C4FF55F6A6A196C376F0274E2796888688A558C79 -5EDF63CF75C579D282D7932892F2849C86ED9C2D54C15F6C658C6D5C70158CA7 -8CD3983B654F74F64E0D4ED857E0592B5A665BCC51A85E035E9C601662766577 -65A7666E6D6E72367B268150819A82998B5C8CA08CE68D74961C96444FAE64AB -6B66821E8461856A90E85C01695398A8847A85574F0F526F5FA95E45670D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000798F8179890789866DF55F1762556CB84ECF72699B925206543B567458B3 -61A4626E711A596E7C897CDE7D1B96F06587805E4E194F75517558405E635E73 -5F0A67C44E26853D9589965B7C73980150FB58C1765678A7522577A585117B86 -504F590972477BC77DE88FBA8FD4904D4FBF52C95A295F0197AD4FDD821792EA -570363556B69752B88DC8F147A4252DF58936155620A66AE6BCD7C3F83E95023 -4FF853055446583159495B9D5CF05CEF5D295E9662B16367653E65B9670B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006CD56CE170F978327E2B80DE82B3840C84EC870289128A2A8C4A90A692D2 -98FD9CF39D6C4E4F4EA1508D5256574A59A85E3D5FD85FD9623F66B4671B67D0 -68D251927D2180AA81A88B008C8C8CBF927E96325420982C531750D5535C58A8 -64B26734726777667A4691E652C36CA16B8658005E4C5954672C7FFB51E176C6 -646978E89B549EBB57CB59B96627679A6BCE54E969D95E55819C67959BAA67FE -9C52685D4EA64FE353C862B9672B6CAB8FC44FAD7E6D9EBF4E0761626E800000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F2B85135473672A9B455DF37B955CAC5BC6871C6E4A84D17A1481085999 -7C8D6C11772052D959227121725F77DB97279D61690B5A7F5A1851A5540D547D -660E76DF8FF792989CF459EA725D6EC5514D68C97DBF7DEC97629EBA64786A21 -830259845B5F6BDB731B76F27DB280178499513267289ED976EE676252FF9905 -5C24623B7C7E8CB0554F60B67D0B958053014E5F51B6591C723A803691CE5F25 -77E253845F797D0485AC8A338E8D975667F385AE9453610961086CB976520000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AED8F38552F4F51512A52C753CB5BA55E7D60A0618263D6670967DA6E67 -6D8C733673377531795088D58A98904A909190F596C4878D59154E884F594E0E -8A898F3F981050AD5E7C59965BB95EB863DA63FA64C166DC694A69D86D0B6EB6 -719475287AAF7F8A8000844984C989818B218E0A9065967D990A617E62916B32 -6C836D747FCC7FFC6DC07F8587BA88F8676583B1983C96F76D1B7D61843D916A -4E7153755D506B046FEB85CD862D89A75229540F5C65674E68A8740674830000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075E288CF88E191CC96E296785F8B73877ACB844E63A0756552896D416E9C -74097559786B7C9296867ADC9F8D4FB6616E65C5865C4E864EAE50DA4E2151CC -5BEE659968816DBC731F764277AD7A1C7CE7826F8AD2907C91CF96759818529B -7DD1502B539867976DCB71D0743381E88F2A96A39C579E9F746058416D997D2F -985E4EE44F364F8B51B752B15DBA601C73B2793C82D3923496B796F6970A9E97 -9F6266A66B74521752A370C888C25EC9604B61906F2371497C3E7DF4806F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000084EE9023932C54429B6F6AD370898CC28DEF973252B45A415ECA5F046717 -697C69946D6A6F0F726272FC7BED8001807E874B90CE516D9E937984808B9332 -8AD6502D548C8A716B6A8CC4810760D167A09DF24E994E989C108A6B85C18568 -69006E7E78978155000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F0C4E104E154E2A4E314E364E3C4E3F4E424E564E584E824E858C6B4E8A -82125F0D4E8E4E9E4E9F4EA04EA24EB04EB34EB64ECE4ECD4EC44EC64EC24ED7 -4EDE4EED4EDF4EF74F094F5A4F304F5B4F5D4F574F474F764F884F8F4F984F7B -4F694F704F914F6F4F864F9651184FD44FDF4FCE4FD84FDB4FD14FDA4FD04FE4 -4FE5501A50285014502A502550054F1C4FF650215029502C4FFE4FEF50115006 -504350476703505550505048505A5056506C50785080509A508550B450B20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000050C950CA50B350C250D650DE50E550ED50E350EE50F950F5510951015102 -511651155114511A5121513A5137513C513B513F51405152514C515451627AF8 -5169516A516E5180518256D8518C5189518F519151935195519651A451A651A2 -51A951AA51AB51B351B151B251B051B551BD51C551C951DB51E0865551E951ED -51F051F551FE5204520B5214520E5227522A522E52335239524F5244524B524C -525E5254526A527452695273527F527D528D529452925271528852918FA80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -52 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008FA752AC52AD52BC52B552C152CD52D752DE52E352E698ED52E052F352F5 -52F852F9530653087538530D5310530F5315531A5323532F5331533353385340 -534653454E175349534D51D6535E5369536E5918537B53775382539653A053A6 -53A553AE53B053B653C37C1296D953DF66FC71EE53EE53E853ED53FA5401543D -5440542C542D543C542E54365429541D544E548F5475548E545F547154775470 -5492547B5480547654845490548654C754A254B854A554AC54C454C854A80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054AB54C254A454BE54BC54D854E554E6550F551454FD54EE54ED54FA54E2 -553955405563554C552E555C55455556555755385533555D5599558054AF558A -559F557B557E5598559E55AE557C558355A9558755A855DA55C555DF55C455DC -55E455D4561455F7561655FE55FD561B55F9564E565071DF5634563656325638 -566B5664562F566C566A56865680568A56A05694568F56A556AE56B656B456C2 -56BC56C156C356C056C856CE56D156D356D756EE56F9570056FF570457090000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005708570B570D57135718571655C7571C572657375738574E573B5740574F -576957C057885761577F5789579357A057B357A457AA57B057C357C657D457D2 -57D3580A57D657E3580B5819581D587258215862584B58706BC05852583D5879 -588558B9589F58AB58BA58DE58BB58B858AE58C558D358D158D758D958D858E5 -58DC58E458DF58EF58FA58F958FB58FC58FD5902590A5910591B68A65925592C -592D59325938593E7AD259555950594E595A5958596259605967596C59690000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -55 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000059785981599D4F5E4FAB59A359B259C659E859DC598D59D959DA5A255A1F -5A115A1C5A095A1A5A405A6C5A495A355A365A625A6A5A9A5ABC5ABE5ACB5AC2 -5ABD5AE35AD75AE65AE95AD65AFA5AFB5B0C5B0B5B165B325AD05B2A5B365B3E -5B435B455B405B515B555B5A5B5B5B655B695B705B735B755B7865885B7A5B80 -5B835BA65BB85BC35BC75BC95BD45BD05BE45BE65BE25BDE5BE55BEB5BF05BF6 -5BF35C055C075C085C0D5C135C205C225C285C385C395C415C465C4E5C530000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C505C4F5B715C6C5C6E4E625C765C795C8C5C915C94599B5CAB5CBB5CB6 -5CBC5CB75CC55CBE5CC75CD95CE95CFD5CFA5CED5D8C5CEA5D0B5D155D175D5C -5D1F5D1B5D115D145D225D1A5D195D185D4C5D525D4E5D4B5D6C5D735D765D87 -5D845D825DA25D9D5DAC5DAE5DBD5D905DB75DBC5DC95DCD5DD35DD25DD65DDB -5DEB5DF25DF55E0B5E1A5E195E115E1B5E365E375E445E435E405E4E5E575E54 -5E5F5E625E645E475E755E765E7A9EBC5E7F5EA05EC15EC25EC85ED05ECF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005ED65EE35EDD5EDA5EDB5EE25EE15EE85EE95EEC5EF15EF35EF05EF45EF8 -5EFE5F035F095F5D5F5C5F0B5F115F165F295F2D5F385F415F485F4C5F4E5F2F -5F515F565F575F595F615F6D5F735F775F835F825F7F5F8A5F885F915F875F9E -5F995F985FA05FA85FAD5FBC5FD65FFB5FE45FF85FF15FDD60B35FFF60216060 -601960106029600E6031601B6015602B6026600F603A605A6041606A6077605F -604A6046604D6063604360646042606C606B60596081608D60E76083609A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006084609B60966097609260A7608B60E160B860E060D360B45FF060BD60C6 -60B560D8614D6115610660F660F7610060F460FA6103612160FB60F1610D610E -6147613E61286127614A613F613C612C6134613D614261446173617761586159 -615A616B6174616F61656171615F615D6153617561996196618761AC6194619A -618A619161AB61AE61CC61CA61C961F761C861C361C661BA61CB7F7961CD61E6 -61E361F661FA61F461FF61FD61FC61FE620062086209620D620C6214621B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000621E6221622A622E6230623262336241624E625E6263625B62606268627C -62826289627E62926293629662D46283629462D762D162BB62CF62FF62C664D4 -62C862DC62CC62CA62C262C7629B62C9630C62EE62F163276302630862EF62F5 -6350633E634D641C634F6396638E638063AB637663A3638F6389639F63B5636B -636963BE63E963C063C663E363C963D263F663C4641664346406641364266436 -651D64176428640F6467646F6476644E652A6495649364A564A9648864BC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064DA64D264C564C764BB64D864C264F164E7820964E064E162AC64E364EF -652C64F664F464F264FA650064FD6518651C650565246523652B653465356537 -65366538754B654865566555654D6558655E655D65726578658265838B8A659B -659F65AB65B765C365C665C165C465CC65D265DB65D965E065E165F16772660A -660365FB6773663566366634661C664F664466496641665E665D666466676668 -665F6662667066836688668E668966846698669D66C166B966C966BE66BC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000066C466B866D666DA66E0663F66E666E966F066F566F7670F6716671E6726 -67279738672E673F67366741673867376746675E676067596763676467896770 -67A9677C676A678C678B67A667A1678567B767EF67B467EC67B367E967B867E4 -67DE67DD67E267EE67B967CE67C667E76A9C681E684668296840684D6832684E -68B3682B685968636877687F689F688F68AD6894689D689B68836AAE68B96874 -68B568A068BA690F688D687E690168CA690868D86922692668E1690C68CD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068D468E768D569366912690468D768E3692568F968E068EF6928692A691A -6923692168C669796977695C6978696B6954697E696E69396974693D69596930 -6961695E695D6981696A69B269AE69D069BF69C169D369BE69CE5BE869CA69DD -69BB69C369A76A2E699169A0699C699569B469DE69E86A026A1B69FF6B0A69F9 -69F269E76A0569B16A1E69ED6A1469EB6A0A6A126AC16A236A136A446A0C6A72 -6A366A786A476A626A596A666A486A386A226A906A8D6AA06A846AA26AA30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006A9786176ABB6AC36AC26AB86AB36AAC6ADE6AD16ADF6AAA6ADA6AEA6AFB -6B0586166AFA6B126B169B316B1F6B386B3776DC6B3998EE6B476B436B496B50 -6B596B546B5B6B5F6B616B786B796B7F6B806B846B836B8D6B986B956B9E6BA4 -6BAA6BAB6BAF6BB26BB16BB36BB76BBC6BC66BCB6BD36BDF6BEC6BEB6BF36BEF -9EBE6C086C136C146C1B6C246C236C5E6C556C626C6A6C826C8D6C9A6C816C9B -6C7E6C686C736C926C906CC46CF16CD36CBD6CD76CC56CDD6CAE6CB16CBE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006CBA6CDB6CEF6CD96CEA6D1F884D6D366D2B6D3D6D386D196D356D336D12 -6D0C6D636D936D646D5A6D796D596D8E6D956FE46D856DF96E156E0A6DB56DC7 -6DE66DB86DC66DEC6DDE6DCC6DE86DD26DC56DFA6DD96DE46DD56DEA6DEE6E2D -6E6E6E2E6E196E726E5F6E3E6E236E6B6E2B6E766E4D6E1F6E436E3A6E4E6E24 -6EFF6E1D6E386E826EAA6E986EC96EB76ED36EBD6EAF6EC46EB26ED46ED56E8F -6EA56EC26E9F6F416F11704C6EEC6EF86EFE6F3F6EF26F316EEF6F326ECC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006F3E6F136EF76F866F7A6F786F816F806F6F6F5B6FF36F6D6F826F7C6F58 -6F8E6F916FC26F666FB36FA36FA16FA46FB96FC66FAA6FDF6FD56FEC6FD46FD8 -6FF16FEE6FDB7009700B6FFA70117001700F6FFE701B701A6F74701D7018701F -7030703E7032705170637099709270AF70F170AC70B870B370AE70DF70CB70DD -70D9710970FD711C711971657155718871667162714C7156716C718F71FB7184 -719571A871AC71D771B971BE71D271C971D471CE71E071EC71E771F571FC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000071F971FF720D7210721B7228722D722C72307232723B723C723F72407246 -724B72587274727E7282728172877292729672A272A772B972B272C372C672C4 -72CE72D272E272E072E172F972F7500F7317730A731C7316731D7334732F7329 -7325733E734E734F9ED87357736A7368737073787375737B737A73C873B373CE -73BB73C073E573EE73DE74A27405746F742573F87432743A7455743F745F7459 -7441745C746974707463746A7476747E748B749E74A774CA74CF74D473F10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000074E074E374E774E974EE74F274F074F174F874F7750475037505750C750E -750D75157513751E7526752C753C7544754D754A7549755B7546755A75697564 -7567756B756D75787576758675877574758A758975827594759A759D75A575A3 -75C275B375C375B575BD75B875BC75B175CD75CA75D275D975E375DE75FE75FF -75FC760175F075FA75F275F3760B760D7609761F762776207621762276247634 -7630763B764776487646765C76587661766276687669766A7667766C76700000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000767276767678767C768076837688768B768E769676937699769A76B076B4 -76B876B976BA76C276CD76D676D276DE76E176E576E776EA862F76FB77087707 -770477297724771E77257726771B773777387747775A7768776B775B7765777F -777E7779778E778B779177A0779E77B077B677B977BF77BC77BD77BB77C777CD -77D777DA77DC77E377EE77FC780C781279267820792A7845788E78747886787C -789A788C78A378B578AA78AF78D178C678CB78D478BE78BC78C578CA78EC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078E778DA78FD78F47907791279117919792C792B794079607957795F795A -79557953797A797F798A799D79A79F4B79AA79AE79B379B979BA79C979D579E7 -79EC79E179E37A087A0D7A187A197A207A1F79807A317A3B7A3E7A377A437A57 -7A497A617A627A699F9D7A707A797A7D7A887A977A957A987A967AA97AC87AB0 -7AB67AC57AC47ABF90837AC77ACA7ACD7ACF7AD57AD37AD97ADA7ADD7AE17AE2 -7AE67AED7AF07B027B0F7B0A7B067B337B187B197B1E7B357B287B367B500000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007B7A7B047B4D7B0B7B4C7B457B757B657B747B677B707B717B6C7B6E7B9D -7B987B9F7B8D7B9C7B9A7B8B7B927B8F7B5D7B997BCB7BC17BCC7BCF7BB47BC6 -7BDD7BE97C117C147BE67BE57C607C007C077C137BF37BF77C177C0D7BF67C23 -7C277C2A7C1F7C377C2B7C3D7C4C7C437C547C4F7C407C507C587C5F7C647C56 -7C657C6C7C757C837C907CA47CAD7CA27CAB7CA17CA87CB37CB27CB17CAE7CB9 -7CBD7CC07CC57CC27CD87CD27CDC7CE29B3B7CEF7CF27CF47CF67CFA7D060000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D027D1C7D157D0A7D457D4B7D2E7D327D3F7D357D467D737D567D4E7D72 -7D687D6E7D4F7D637D937D897D5B7D8F7D7D7D9B7DBA7DAE7DA37DB57DC77DBD -7DAB7E3D7DA27DAF7DDC7DB87D9F7DB07DD87DDD7DE47DDE7DFB7DF27DE17E05 -7E0A7E237E217E127E317E1F7E097E0B7E227E467E667E3B7E357E397E437E37 -7E327E3A7E677E5D7E567E5E7E597E5A7E797E6A7E697E7C7E7B7E837DD57E7D -8FAE7E7F7E887E897E8C7E927E907E937E947E967E8E7E9B7E9C7F387F3A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007F457F4C7F4D7F4E7F507F517F557F547F587F5F7F607F687F697F677F78 -7F827F867F837F887F877F8C7F947F9E7F9D7F9A7FA37FAF7FB27FB97FAE7FB6 -7FB88B717FC57FC67FCA7FD57FD47FE17FE67FE97FF37FF998DC80068004800B -801280188019801C80218028803F803B804A804680528058805A805F80628068 -80738072807080768079807D807F808480868085809B8093809A80AD519080AC -80DB80E580D980DD80C480DA80D6810980EF80F1811B81298123812F814B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000968B8146813E8153815180FC8171816E81658166817481838188818A8180 -818281A0819581A481A3815F819381A981B081B581BE81B881BD81C081C281BA -81C981CD81D181D981D881C881DA81DF81E081E781FA81FB81FE820182028205 -8207820A820D821082168229822B82388233824082598258825D825A825F8264 -82628268826A826B822E827182778278827E828D829282AB829F82BB82AC82E1 -82E382DF82D282F482F382FA8393830382FB82F982DE830682DC830982D90000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -68 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000833583348316833283318340833983508345832F832B831783188385839A -83AA839F83A283968323838E8387838A837C83B58373837583A0838983A883F4 -841383EB83CE83FD840383D8840B83C183F7840783E083F2840D8422842083BD -8438850683FB846D842A843C855A84848477846B84AD846E848284698446842C -846F8479843584CA846284B984BF849F84D984CD84BB84DA84D084C184C684D6 -84A1852184FF84F485178518852C851F8515851484FC85408563855885480000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000085418602854B8555858085A485888591858A85A8856D8594859B85EA8587 -859C8577857E859085C985BA85CF85B985D085D585DD85E585DC85F9860A8613 -860B85FE85FA86068622861A8630863F864D4E558654865F86678671869386A3 -86A986AA868B868C86B686AF86C486C686B086C9882386AB86D486DE86E986EC -86DF86DB86EF8712870687088700870386FB87118709870D86F9870A8734873F -8737873B87258729871A8760875F8778874C874E877487578768876E87590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000087538763876A880587A2879F878287AF87CB87BD87C087D096D687AB87C4 -87B387C787C687BB87EF87F287E0880F880D87FE87F687F7880E87D288118816 -8815882288218831883688398827883B8844884288528859885E8862886B8881 -887E889E8875887D88B5887288828897889288AE889988A2888D88A488B088BF -88B188C388C488D488D888D988DD88F9890288FC88F488E888F28904890C890A -89138943891E8925892A892B89418944893B89368938894C891D8960895E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000089668964896D896A896F89748977897E89838988898A8993899889A189A9 -89A689AC89AF89B289BA89BD89BF89C089DA89DC89DD89E789F489F88A038A16 -8A108A0C8A1B8A1D8A258A368A418A5B8A528A468A488A7C8A6D8A6C8A628A85 -8A828A848AA88AA18A918AA58AA68A9A8AA38AC48ACD8AC28ADA8AEB8AF38AE7 -8AE48AF18B148AE08AE28AF78ADE8ADB8B0C8B078B1A8AE18B168B108B178B20 -8B3397AB8B268B2B8B3E8B288B418B4C8B4F8B4E8B498B568B5B8B5A8B6B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B5F8B6C8B6F8B748B7D8B808B8C8B8E8B928B938B968B998B9A8C3A8C41 -8C3F8C488C4C8C4E8C508C558C628C6C8C788C7A8C828C898C858C8A8C8D8C8E -8C948C7C8C98621D8CAD8CAA8CBD8CB28CB38CAE8CB68CC88CC18CE48CE38CDA -8CFD8CFA8CFB8D048D058D0A8D078D0F8D0D8D109F4E8D138CCD8D148D168D67 -8D6D8D718D738D818D998DC28DBE8DBA8DCF8DDA8DD68DCC8DDB8DCB8DEA8DEB -8DDF8DE38DFC8E088E098DFF8E1D8E1E8E108E1F8E428E358E308E348E4A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008E478E498E4C8E508E488E598E648E608E2A8E638E558E768E728E7C8E81 -8E878E858E848E8B8E8A8E938E918E948E998EAA8EA18EAC8EB08EC68EB18EBE -8EC58EC88ECB8EDB8EE38EFC8EFB8EEB8EFE8F0A8F058F158F128F198F138F1C -8F1F8F1B8F0C8F268F338F3B8F398F458F428F3E8F4C8F498F468F4E8F578F5C -8F628F638F648F9C8F9F8FA38FAD8FAF8FB78FDA8FE58FE28FEA8FEF90878FF4 -90058FF98FFA901190159021900D901E9016900B90279036903590398FF80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000904F905090519052900E9049903E90569058905E9068906F907696A89072 -9082907D90819080908A9089908F90A890AF90B190B590E290E4624890DB9102 -9112911991329130914A9156915891639165916991739172918B9189918291A2 -91AB91AF91AA91B591B491BA91C091C191C991CB91D091D691DF91E191DB91FC -91F591F6921E91FF9214922C92159211925E925792459249926492489295923F -924B9250929C92969293929B925A92CF92B992B792E9930F92FA9344932E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093199322931A9323933A9335933B935C9360937C936E935693B093AC93AD -939493B993D693D793E893E593D893C393DD93D093C893E4941A941494139403 -940794109436942B94359421943A944194529444945B94609462945E946A9229 -947094759477947D945A947C947E9481947F95829587958A9594959695989599 -95A095A895A795AD95BC95BB95B995BE95CA6FF695C395CD95CC95D595D495D6 -95DC95E195E595E296219628962E962F9642964C964F964B9677965C965E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -70 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000965D965F96669672966C968D96989695969796AA96A796B196B296B096B4 -96B696B896B996CE96CB96C996CD894D96DC970D96D596F99704970697089713 -970E9711970F971697199724972A97309739973D973E97449746974897429749 -975C976097649766976852D2976B977197799785977C9781977A9786978B978F -9790979C97A897A697A397B397B497C397C697C897CB97DC97ED9F4F97F27ADF -97F697F5980F980C9838982498219837983D9846984F984B986B986F98700000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -71 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000098719874987398AA98AF98B198B698C498C398C698E998EB990399099912 -991499189921991D991E99249920992C992E993D993E9942994999459950994B -99519952994C99559997999899A599AD99AE99BC99DF99DB99DD99D899D199ED -99EE99F199F299FB99F89A019A0F9A0599E29A199A2B9A379A459A429A409A43 -9A3E9A559A4D9A5B9A579A5F9A629A659A649A699A6B9A6A9AAD9AB09ABC9AC0 -9ACF9AD19AD39AD49ADE9ADF9AE29AE39AE69AEF9AEB9AEE9AF49AF19AF70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009AFB9B069B189B1A9B1F9B229B239B259B279B289B299B2A9B2E9B2F9B32 -9B449B439B4F9B4D9B4E9B519B589B749B939B839B919B969B979B9F9BA09BA8 -9BB49BC09BCA9BB99BC69BCF9BD19BD29BE39BE29BE49BD49BE19C3A9BF29BF1 -9BF09C159C149C099C139C0C9C069C089C129C0A9C049C2E9C1B9C259C249C21 -9C309C479C329C469C3E9C5A9C609C679C769C789CE79CEC9CF09D099D089CEB -9D039D069D2A9D269DAF9D239D1F9D449D159D129D419D3F9D3E9D469D480000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D5D9D5E9D649D519D509D599D729D899D879DAB9D6F9D7A9D9A9DA49DA9 -9DB29DC49DC19DBB9DB89DBA9DC69DCF9DC29DD99DD39DF89DE69DED9DEF9DFD -9E1A9E1B9E1E9E759E799E7D9E819E889E8B9E8C9E929E959E919E9D9EA59EA9 -9EB89EAA9EAD97619ECC9ECE9ECF9ED09ED49EDC9EDE9EDD9EE09EE59EE89EEF -9EF49EF69EF79EF99EFB9EFC9EFD9F079F0876B79F159F219F2C9F3E9F4A9F52 -9F549F639F5F9F609F619F669F679F6C9F6A9F779F729F769F959F9C9FA00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000582F69C79059746451DC7199000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -R -2141 301C FF5E -2142 2016 2225 -215D 2212 FF0D -2171 00A2 FFE0 -2172 00A3 FFE1 -224C 00AC FFE2 diff --git a/src/runtime/tcl_library/encoding/jis0212.enc b/src/runtime/tcl_library/encoding/jis0212.enc deleted file mode 100644 index cddbbba9..00000000 --- a/src/runtime/tcl_library/encoding/jis0212.enc +++ /dev/null @@ -1,1159 +0,0 @@ -# Encoding file: jis0212, double-byte -D -2244 0 68 -22 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000002D8 -02C700B802D902DD00AF02DB02DA007E03840385000000000000000000000000 -0000000000A100A600BF00000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000BA00AA00A900AE2122 -00A4211600000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -26 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000038603880389038A03AA0000038C0000038E03AB0000038F000000000000 -000003AC03AD03AE03AF03CA039003CC03C203CD03CB03B003CE000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -27 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000004020403040404050406040704080409040A040B040C040E040F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000004520453045404550456045704580459045A045B045C045E045F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000C60110000001260000013200000141013F0000014A00D8015200000166 -00DE000000000000000000000000000000000000000000000000000000000000 -000000E6011100F00127013101330138014201400149014B00F8015300DF0167 -00FE000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000C100C000C400C2010201CD0100010400C500C301060108010C00C7010A -010E00C900C800CB00CA011A0116011201180000011C011E01220120012400CD -00CC00CF00CE01CF0130012A012E0128013401360139013D013B014301470145 -00D100D300D200D600D401D10150014C00D5015401580156015A015C0160015E -0164016200DA00D900DC00DB016C01D30170016A0172016E016801D701DB01D9 -01D5017400DD017801760179017D017B00000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000E100E000E400E2010301CE0101010500E500E301070109010D00E7010B -010F00E900E800EB00EA011B01170113011901F5011D011F00000121012500ED -00EC00EF00EE01D00000012B012F012901350137013A013E013C014401480146 -00F100F300F200F600F401D20151014D00F5015501590157015B015D0161015F -0165016300FA00F900FC00FB016D01D40171016B0173016F016901D801DC01DA -01D6017500FD00FF0177017A017E017C00000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E024E044E054E0C4E124E1F4E234E244E284E2B4E2E4E2F4E304E354E40 -4E414E444E474E514E5A4E5C4E634E684E694E744E754E794E7F4E8D4E964E97 -4E9D4EAF4EB94EC34ED04EDA4EDB4EE04EE14EE24EE84EEF4EF14EF34EF54EFD -4EFE4EFF4F004F024F034F084F0B4F0C4F124F154F164F174F194F2E4F314F60 -4F334F354F374F394F3B4F3E4F404F424F484F494F4B4F4C4F524F544F564F58 -4F5F4F634F6A4F6C4F6E4F714F774F784F794F7A4F7D4F7E4F814F824F840000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -31 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F854F894F8A4F8C4F8E4F904F924F934F944F974F994F9A4F9E4F9F4FB2 -4FB74FB94FBB4FBC4FBD4FBE4FC04FC14FC54FC64FC84FC94FCB4FCC4FCD4FCF -4FD24FDC4FE04FE24FF04FF24FFC4FFD4FFF5000500150045007500A500C500E -5010501350175018501B501C501D501E50225027502E50305032503350355040 -5041504250455046504A504C504E50515052505350575059505F506050625063 -50665067506A506D50705071503B5081508350845086508A508E508F50900000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -32 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005092509350945096509B509C509E509F50A050A150A250AA50AF50B050B9 -50BA50BD50C050C350C450C750CC50CE50D050D350D450D850DC50DD50DF50E2 -50E450E650E850E950EF50F150F650FA50FE5103510651075108510B510C510D -510E50F2511051175119511B511C511D511E512351275128512C512D512F5131 -513351345135513851395142514A514F5153515551575158515F51645166517E -51835184518B518E5198519D51A151A351AD51B851BA51BC51BE51BF51C20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -33 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000051C851CF51D151D251D351D551D851DE51E251E551EE51F251F351F451F7 -5201520252055212521352155216521852225228523152325235523C52455249 -525552575258525A525C525F526052615266526E527752785279528052825285 -528A528C52935295529652975298529A529C52A452A552A652A752AF52B052B6 -52B752B852BA52BB52BD52C052C452C652C852CC52CF52D152D452D652DB52DC -52E152E552E852E952EA52EC52F052F152F452F652F753005303530A530B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -34 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000530C531153135318531B531C531E531F5325532753285329532B532C532D -533053325335533C533D533E5342534C534B5359535B536153635365536C536D -53725379537E538353875388538E539353945399539D53A153A453AA53AB53AF -53B253B453B553B753B853BA53BD53C053C553CF53D253D353D553DA53DD53DE -53E053E653E753F554025413541A542154275428542A542F5431543454355443 -54445447544D544F545E54625464546654675469546B546D546E5474547F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -35 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054815483548554885489548D549154955496549C549F54A154A654A754A9 -54AA54AD54AE54B154B754B954BA54BB54BF54C654CA54CD54CE54E054EA54EC -54EF54F654FC54FE54FF55005501550555085509550C550D550E5515552A552B -553255355536553B553C553D554155475549554A554D555055515558555A555B -555E5560556155645566557F5581558255865588558E558F5591559255935594 -559755A355A455AD55B255BF55C155C355C655C955CB55CC55CE55D155D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -36 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000055D355D755D855DB55DE55E255E955F655FF56055608560A560D560E560F -5610561156125619562C56305633563556375639563B563C563D563F56405641 -5643564456465649564B564D564F5654565E566056615662566356665669566D -566F567156725675568456855688568B568C56955699569A569D569E569F56A6 -56A756A856A956AB56AC56AD56B156B356B756BE56C556C956CA56CB56CF56D0 -56CC56CD56D956DC56DD56DF56E156E456E556E656E756E856F156EB56ED0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -37 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000056F656F7570157025707570A570C57115715571A571B571D572057225723 -572457255729572A572C572E572F57335734573D573E573F57455746574C574D -57525762576557675768576B576D576E576F5770577157735774577557775779 -577A577B577C577E57815783578C579457975799579A579C579D579E579F57A1 -579557A757A857A957AC57B857BD57C757C857CC57CF57D557DD57DE57E457E6 -57E757E957ED57F057F557F657F857FD57FE57FF580358045808580957E10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -38 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000580C580D581B581E581F582058265827582D58325839583F5849584C584D -584F58505855585F58615864586758685878587C587F58805881588758885889 -588A588C588D588F589058945896589D58A058A158A258A658A958B158B258C4 -58BC58C258C858CD58CE58D058D258D458D658DA58DD58E158E258E958F35905 -5906590B590C5912591359148641591D5921592359245928592F593059335935 -5936593F59435946595259535959595B595D595E595F59615963596B596D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -39 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000596F5972597559765979597B597C598B598C598E599259955997599F59A4 -59A759AD59AE59AF59B059B359B759BA59BC59C159C359C459C859CA59CD59D2 -59DD59DE59DF59E359E459E759EE59EF59F159F259F459F75A005A045A0C5A0D -5A0E5A125A135A1E5A235A245A275A285A2A5A2D5A305A445A455A475A485A4C -5A505A555A5E5A635A655A675A6D5A775A7A5A7B5A7E5A8B5A905A935A965A99 -5A9C5A9E5A9F5AA05AA25AA75AAC5AB15AB25AB35AB55AB85ABA5ABB5ABF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005AC45AC65AC85ACF5ADA5ADC5AE05AE55AEA5AEE5AF55AF65AFD5B005B01 -5B085B175B345B195B1B5B1D5B215B255B2D5B385B415B4B5B4C5B525B565B5E -5B685B6E5B6F5B7C5B7D5B7E5B7F5B815B845B865B8A5B8E5B905B915B935B94 -5B965BA85BA95BAC5BAD5BAF5BB15BB25BB75BBA5BBC5BC05BC15BCD5BCF5BD6 -5BD75BD85BD95BDA5BE05BEF5BF15BF45BFD5C0C5C175C1E5C1F5C235C265C29 -5C2B5C2C5C2E5C305C325C355C365C595C5A5C5C5C625C635C675C685C690000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005C6D5C705C745C755C7A5C7B5C7C5C7D5C875C885C8A5C8F5C925C9D5C9F -5CA05CA25CA35CA65CAA5CB25CB45CB55CBA5CC95CCB5CD25CDD5CD75CEE5CF1 -5CF25CF45D015D065D0D5D125D2B5D235D245D265D275D315D345D395D3D5D3F -5D425D435D465D485D555D515D595D4A5D5F5D605D615D625D645D6A5D6D5D70 -5D795D7A5D7E5D7F5D815D835D885D8A5D925D935D945D955D995D9B5D9F5DA0 -5DA75DAB5DB05DB45DB85DB95DC35DC75DCB5DD05DCE5DD85DD95DE05DE40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005DE95DF85DF95E005E075E0D5E125E145E155E185E1F5E205E2E5E285E32 -5E355E3E5E4B5E505E495E515E565E585E5B5E5C5E5E5E685E6A5E6B5E6C5E6D -5E6E5E705E805E8B5E8E5EA25EA45EA55EA85EAA5EAC5EB15EB35EBD5EBE5EBF -5EC65ECC5ECB5ECE5ED15ED25ED45ED55EDC5EDE5EE55EEB5F025F065F075F08 -5F0E5F195F1C5F1D5F215F225F235F245F285F2B5F2C5F2E5F305F345F365F3B -5F3D5F3F5F405F445F455F475F4D5F505F545F585F5B5F605F635F645F670000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F6F5F725F745F755F785F7A5F7D5F7E5F895F8D5F8F5F965F9C5F9D5FA2 -5FA75FAB5FA45FAC5FAF5FB05FB15FB85FC45FC75FC85FC95FCB5FD05FD15FD2 -5FD35FD45FDE5FE15FE25FE85FE95FEA5FEC5FED5FEE5FEF5FF25FF35FF65FFA -5FFC6007600A600D6013601460176018601A601F6024602D6033603560406047 -60486049604C6051605460566057605D606160676071607E607F608260866088 -608A608E6091609360956098609D609E60A260A460A560A860B060B160B70000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000060BB60BE60C260C460C860C960CA60CB60CE60CF60D460D560D960DB60DD -60DE60E260E560F260F560F860FC60FD61026107610A610C6110611161126113 -6114611661176119611C611E6122612A612B6130613161356136613761396141 -614561466149615E6160616C61726178617B617C617F6180618161836184618B -618D6192619361976198619C619D619F61A061A561A861AA61AD61B861B961BC -61C061C161C261CE61CF61D561DC61DD61DE61DF61E161E261E761E961E50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000061EC61ED61EF620162036204620762136215621C62206222622362276229 -622B6239623D6242624362446246624C62506251625262546256625A625C6264 -626D626F6273627A627D628D628E628F629062A662A862B362B662B762BA62BE -62BF62C462CE62D562D662DA62EA62F262F462FC62FD63036304630A630B630D -63106313631663186329632A632D633563366339633C63416342634363446346 -634A634B634E6352635363546358635B63656366636C636D6371637463750000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -40 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006378637C637D637F638263846387638A6390639463956399639A639E63A4 -63A663AD63AE63AF63BD63C163C563C863CE63D163D363D463D563DC63E063E5 -63EA63EC63F263F363F563F863F96409640A6410641264146418641E64206422 -642464256429642A642F64306435643D643F644B644F6451645264536454645A -645B645C645D645F646064616463646D64736474647B647D64856487648F6490 -649164986499649B649D649F64A164A364A664A864AC64B364BD64BE64BF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -41 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000064C464C964CA64CB64CC64CE64D064D164D564D764E464E564E964EA64ED -64F064F564F764FB64FF6501650465086509650A650F6513651465166519651B -651E651F652265266529652E6531653A653C653D654365476549655065526554 -655F65606567656B657A657D65816585658A659265956598659D65A065A365A6 -65AE65B265B365B465BF65C265C865C965CE65D065D465D665D865DF65F065F2 -65F465F565F965FE65FF6600660466086609660D6611661266156616661D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -42 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000661E662166226623662466266629662A662B662C662E6630663166336639 -6637664066456646664A664C6651664E665766586659665B665C6660666166FB -666A666B666C667E66736675667F667766786679667B6680667C668B668C668D -669066926699669A669B669C669F66A066A466AD66B166B266B566BB66BF66C0 -66C266C366C866CC66CE66CF66D466DB66DF66E866EB66EC66EE66FA67056707 -670E67136719671C672067226733673E674567476748674C67546755675D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -43 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006766676C676E67746776677B67816784678E678F67916793679667986799 -679B67B067B167B267B567BB67BC67BD67F967C067C267C367C567C867C967D2 -67D767D967DC67E167E667F067F267F667F7685268146819681D681F68286827 -682C682D682F683068316833683B683F68446845684A684C685568576858685B -686B686E686F68706871687268756879687A687B687C68826884688668886896 -6898689A689C68A168A368A568A968AA68AE68B268BB68C568C868CC68CF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -44 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068D068D168D368D668D968DC68DD68E568E868EA68EB68EC68ED68F068F1 -68F568F668FB68FC68FD69066909690A69106911691369166917693169336935 -6938693B694269456949694E6957695B696369646965696669686969696C6970 -69716972697A697B697F6980698D69926996699869A169A569A669A869AB69AD -69AF69B769B869BA69BC69C569C869D169D669D769E269E569EE69EF69F169F3 -69F569FE6A006A016A036A0F6A116A156A1A6A1D6A206A246A286A306A320000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -45 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006A346A376A3B6A3E6A3F6A456A466A496A4A6A4E6A506A516A526A556A56 -6A5B6A646A676A6A6A716A736A7E6A816A836A866A876A896A8B6A916A9B6A9D -6A9E6A9F6AA56AAB6AAF6AB06AB16AB46ABD6ABE6ABF6AC66AC96AC86ACC6AD0 -6AD46AD56AD66ADC6ADD6AE46AE76AEC6AF06AF16AF26AFC6AFD6B026B036B06 -6B076B096B0F6B106B116B176B1B6B1E6B246B286B2B6B2C6B2F6B356B366B3B -6B3F6B466B4A6B4D6B526B566B586B5D6B606B676B6B6B6E6B706B756B7D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -46 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006B7E6B826B856B976B9B6B9F6BA06BA26BA36BA86BA96BAC6BAD6BAE6BB0 -6BB86BB96BBD6BBE6BC36BC46BC96BCC6BD66BDA6BE16BE36BE66BE76BEE6BF1 -6BF76BF96BFF6C026C046C056C096C0D6C0E6C106C126C196C1F6C266C276C28 -6C2C6C2E6C336C356C366C3A6C3B6C3F6C4A6C4B6C4D6C4F6C526C546C596C5B -6C5C6C6B6C6D6C6F6C746C766C786C796C7B6C856C866C876C896C946C956C97 -6C986C9C6C9F6CB06CB26CB46CC26CC66CCD6CCF6CD06CD16CD26CD46CD60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -47 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006CDA6CDC6CE06CE76CE96CEB6CEC6CEE6CF26CF46D046D076D0A6D0E6D0F -6D116D136D1A6D266D276D286C676D2E6D2F6D316D396D3C6D3F6D576D5E6D5F -6D616D656D676D6F6D706D7C6D826D876D916D926D946D966D976D986DAA6DAC -6DB46DB76DB96DBD6DBF6DC46DC86DCA6DCE6DCF6DD66DDB6DDD6DDF6DE06DE2 -6DE56DE96DEF6DF06DF46DF66DFC6E006E046E1E6E226E276E326E366E396E3B -6E3C6E446E456E486E496E4B6E4F6E516E526E536E546E576E5C6E5D6E5E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -48 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006E626E636E686E736E7B6E7D6E8D6E936E996EA06EA76EAD6EAE6EB16EB3 -6EBB6EBF6EC06EC16EC36EC76EC86ECA6ECD6ECE6ECF6EEB6EED6EEE6EF96EFB -6EFD6F046F086F0A6F0C6F0D6F166F186F1A6F1B6F266F296F2A6F2F6F306F33 -6F366F3B6F3C6F2D6F4F6F516F526F536F576F596F5A6F5D6F5E6F616F626F68 -6F6C6F7D6F7E6F836F876F886F8B6F8C6F8D6F906F926F936F946F966F9A6F9F -6FA06FA56FA66FA76FA86FAE6FAF6FB06FB56FB66FBC6FC56FC76FC86FCA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -49 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FDA6FDE6FE86FE96FF06FF56FF96FFC6FFD7000700570067007700D7017 -70207023702F703470377039703C7043704470487049704A704B70547055705D -705E704E70647065706C706E70757076707E7081708570867094709570967097 -7098709B70A470AB70B070B170B470B770CA70D170D370D470D570D670D870DC -70E470FA71037104710571067107710B710C710F711E7120712B712D712F7130 -713171387141714571467147714A714B715071527157715A715C715E71600000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000071687179718071857187718C7192719A719B71A071A271AF71B071B271B3 -71BA71BF71C071C171C471CB71CC71D371D671D971DA71DC71F871FE72007207 -7208720972137217721A721D721F7224722B722F723472387239724172427243 -7245724E724F7250725372557256725A725C725E726072637268726B726E726F -727172777278727B727C727F72847289728D728E7293729B72A872AD72AE72B1 -72B472BE72C172C772C972CC72D572D672D872DF72E572F372F472FA72FB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000072FE7302730473057307730B730D7312731373187319731E732273247327 -7328732C733173327335733A733B733D7343734D7350735273567358735D735E -735F7360736673677369736B736C736E736F737173777379737C738073817383 -73857386738E73907393739573977398739C739E739F73A073A273A573A673AA -73AB73AD73B573B773B973BC73BD73BF73C573C673C973CB73CC73CF73D273D3 -73D673D973DD73E173E373E673E773E973F473F573F773F973FA73FB73FD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000073FF7400740174047407740A7411741A741B7424742674287429742A742B -742C742D742E742F74307431743974407443744474467447744B744D74517452 -7457745D7462746674677468746B746D746E7471747274807481748574867487 -7489748F74907491749274987499749A749C749F74A074A174A374A674A874A9 -74AA74AB74AE74AF74B174B274B574B974BB74BF74C874C974CC74D074D374D8 -74DA74DB74DE74DF74E474E874EA74EB74EF74F474FA74FB74FC74FF75060000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000075127516751775207521752475277529752A752F75367539753D753E753F -7540754375477548754E755075527557755E755F7561756F75717579757A757B -757C757D757E7581758575907592759375957599759C75A275A475B475BA75BF -75C075C175C475C675CC75CE75CF75D775DC75DF75E075E175E475E775EC75EE -75EF75F175F9760076027603760476077608760A760C760F7612761376157616 -7619761B761C761D761E7623762576267629762D763276337635763876390000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000763A763C764A764076417643764476457649764B76557659765F76647665 -766D766E766F7671767476817685768C768D7695769B769C769D769F76A076A2 -76A376A476A576A676A776A876AA76AD76BD76C176C576C976CB76CC76CE76D4 -76D976E076E676E876EC76F076F176F676F976FC77007706770A770E77127714 -771577177719771A771C77227728772D772E772F7734773577367739773D773E -774277457746774A774D774E774F775277567757775C775E775F776077620000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077647767776A776C7770777277737774777A777D77807784778C778D7794 -77957796779A779F77A277A777AA77AE77AF77B177B577BE77C377C977D177D2 -77D577D977DE77DF77E077E477E677EA77EC77F077F177F477F877FB78057806 -7809780D780E7811781D782178227823782D782E783078357837784378447847 -7848784C784E7852785C785E78607861786378647868786A786E787A787E788A -788F7894789878A1789D789E789F78A478A878AC78AD78B078B178B278B30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078BB78BD78BF78C778C878C978CC78CE78D278D378D578D678E478DB78DF -78E078E178E678EA78F278F3790078F678F778FA78FB78FF7906790C7910791A -791C791E791F7920792579277929792D793179347935793B793D793F79447945 -7946794A794B794F795179547958795B795C79677969796B79727979797B797C -797E798B798C799179937994799579967998799B799C79A179A879A979AB79AF -79B179B479B879BB79C279C479C779C879CA79CF79D479D679DA79DD79DE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079E079E279E579EA79EB79ED79F179F879FC7A027A037A077A097A0A7A0C -7A117A157A1B7A1E7A217A277A2B7A2D7A2F7A307A347A357A387A397A3A7A44 -7A457A477A487A4C7A557A567A597A5C7A5D7A5F7A607A657A677A6A7A6D7A75 -7A787A7E7A807A827A857A867A8A7A8B7A907A917A947A9E7AA07AA37AAC7AB3 -7AB57AB97ABB7ABC7AC67AC97ACC7ACE7AD17ADB7AE87AE97AEB7AEC7AF17AF4 -7AFB7AFD7AFE7B077B147B1F7B237B277B297B2A7B2B7B2D7B2E7B2F7B300000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -52 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007B317B347B3D7B3F7B407B417B477B4E7B557B607B647B667B697B6A7B6D -7B6F7B727B737B777B847B897B8E7B907B917B967B9B7B9E7BA07BA57BAC7BAF -7BB07BB27BB57BB67BBA7BBB7BBC7BBD7BC27BC57BC87BCA7BD47BD67BD77BD9 -7BDA7BDB7BE87BEA7BF27BF47BF57BF87BF97BFA7BFC7BFE7C017C027C037C04 -7C067C097C0B7C0C7C0E7C0F7C197C1B7C207C257C267C287C2C7C317C337C34 -7C367C397C3A7C467C4A7C557C517C527C537C597C5A7C5B7C5C7C5D7C5E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007C617C637C677C697C6D7C6E7C707C727C797C7C7C7D7C867C877C8F7C94 -7C9E7CA07CA67CB07CB67CB77CBA7CBB7CBC7CBF7CC47CC77CC87CC97CCD7CCF -7CD37CD47CD57CD77CD97CDA7CDD7CE67CE97CEB7CF57D037D077D087D097D0F -7D117D127D137D167D1D7D1E7D237D267D2A7D2D7D317D3C7D3D7D3E7D407D41 -7D477D487D4D7D517D537D577D597D5A7D5C7D5D7D657D677D6A7D707D787D7A -7D7B7D7F7D817D827D837D857D867D887D8B7D8C7D8D7D917D967D977D9D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D9E7DA67DA77DAA7DB37DB67DB77DB97DC27DC37DC47DC57DC67DCC7DCD -7DCE7DD77DD97E007DE27DE57DE67DEA7DEB7DED7DF17DF57DF67DF97DFA7E08 -7E107E117E157E177E1C7E1D7E207E277E287E2C7E2D7E2F7E337E367E3F7E44 -7E457E477E4E7E507E527E587E5F7E617E627E657E6B7E6E7E6F7E737E787E7E -7E817E867E877E8A7E8D7E917E957E987E9A7E9D7E9E7F3C7F3B7F3D7F3E7F3F -7F437F447F477F4F7F527F537F5B7F5C7F5D7F617F637F647F657F667F6D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -55 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007F717F7D7F7E7F7F7F807F8B7F8D7F8F7F907F917F967F977F9C7FA17FA2 -7FA67FAA7FAD7FB47FBC7FBF7FC07FC37FC87FCE7FCF7FDB7FDF7FE37FE57FE8 -7FEC7FEE7FEF7FF27FFA7FFD7FFE7FFF80078008800A800D800E800F80118013 -80148016801D801E801F802080248026802C802E80308034803580378039803A -803C803E80408044806080648066806D8071807580818088808E809C809E80A6 -80A780AB80B880B980C880CD80CF80D280D480D580D780D880E080ED80EE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000080F080F280F380F680F980FA80FE8103810B811681178118811C811E8120 -81248127812C81308135813A813C81458147814A814C81528157816081618167 -81688169816D816F817781818190818481858186818B818E81968198819B819E -81A281AE81B281B481BB81CB81C381C581CA81CE81CF81D581D781DB81DD81DE -81E181E481EB81EC81F081F181F281F581F681F881F981FD81FF82008203820F -821382148219821A821D82218222822882328234823A82438244824582460000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000824B824E824F82518256825C826082638267826D8274827B827D827F8280 -82818283828482878289828A828E8291829482968298829A829B82A082A182A3 -82A482A782A882A982AA82AE82B082B282B482B782BA82BC82BE82BF82C682D0 -82D582DA82E082E282E482E882EA82ED82EF82F682F782FD82FE830083018307 -8308830A830B8354831B831D831E831F83218322832C832D832E833083338337 -833A833C833D8342834383448347834D834E8351835583568357837083780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000837D837F8380838283848386838D83928394839583988399839B839C839D -83A683A783A983AC83BE83BF83C083C783C983CF83D083D183D483DD835383E8 -83EA83F683F883F983FC84018406840A840F84118415841983AD842F84398445 -84478448844A844D844F84518452845684588459845A845C8460846484658467 -846A84708473847484768478847C847D84818485849284938495849E84A684A8 -84A984AA84AF84B184B484BA84BD84BE84C084C284C784C884CC84CF84D30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000084DC84E784EA84EF84F084F184F284F7853284FA84FB84FD850285038507 -850C850E8510851C851E85228523852485258527852A852B852F853385348536 -853F8546854F855085518552855385568559855C855D855E855F856085618562 -8564856B856F8579857A857B857D857F8581858585868589858B858C858F8593 -8598859D859F85A085A285A585A785B485B685B785B885BC85BD85BE85BF85C2 -85C785CA85CB85CE85AD85D885DA85DF85E085E685E885ED85F385F685FC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000085FF860086048605860D860E86108611861286188619861B861E86218627 -862986368638863A863C863D864086428646865286538656865786588659865D -866086618662866386648669866C866F867586768677867A868D869186968698 -869A869C86A186A686A786A886AD86B186B386B486B586B786B886B986BF86C0 -86C186C386C586D186D286D586D786DA86DC86E086E386E586E7868886FA86FC -86FD870487058707870B870E870F8710871387148719871E871F872187230000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008728872E872F873187328739873A873C873D873E874087438745874D8758 -875D876187648765876F87718772877B8783878487858786878787888789878B -878C879087938795879787988799879E87A087A387A787AC87AD87AE87B187B5 -87BE87BF87C187C887C987CA87CE87D587D687D987DA87DC87DF87E287E387E4 -87EA87EB87ED87F187F387F887FA87FF8801880388068809880A880B88108819 -8812881388148818881A881B881C881E881F8828882D882E8830883288350000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000883A883C88418843884588488849884A884B884E8851885588568858885A -885C885F88608864886988718879887B88808898889A889B889C889F88A088A8 -88AA88BA88BD88BE88C088CA88CB88CC88CD88CE88D188D288D388DB88DE88E7 -88EF88F088F188F588F789018906890D890E890F8915891689188919891A891C -892089268927892889308931893289358939893A893E89408942894589468949 -894F89528957895A895B895C896189628963896B896E897089738975897A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000897B897C897D8989898D899089948995899B899C899F89A089A589B089B4 -89B589B689B789BC89D489D589D689D789D889E589E989EB89ED89F189F389F6 -89F989FD89FF8A048A058A078A0F8A118A128A148A158A1E8A208A228A248A26 -8A2B8A2C8A2F8A358A378A3D8A3E8A408A438A458A478A498A4D8A4E8A538A56 -8A578A588A5C8A5D8A618A658A678A758A768A778A798A7A8A7B8A7E8A7F8A80 -8A838A868A8B8A8F8A908A928A968A978A998A9F8AA78AA98AAE8AAF8AB30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008AB68AB78ABB8ABE8AC38AC68AC88AC98ACA8AD18AD38AD48AD58AD78ADD -8ADF8AEC8AF08AF48AF58AF68AFC8AFF8B058B068B0B8B118B1C8B1E8B1F8B0A -8B2D8B308B378B3C8B428B438B448B458B468B488B528B538B548B598B4D8B5E -8B638B6D8B768B788B798B7C8B7E8B818B848B858B8B8B8D8B8F8B948B958B9C -8B9E8B9F8C388C398C3D8C3E8C458C478C498C4B8C4F8C518C538C548C578C58 -8C5B8C5D8C598C638C648C668C688C698C6D8C738C758C768C7B8C7E8C860000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008C878C8B8C908C928C938C998C9B8C9C8CA48CB98CBA8CC58CC68CC98CCB -8CCF8CD68CD58CD98CDD8CE18CE88CEC8CEF8CF08CF28CF58CF78CF88CFE8CFF -8D018D038D098D128D178D1B8D658D698D6C8D6E8D7F8D828D848D888D8D8D90 -8D918D958D9E8D9F8DA08DA68DAB8DAC8DAF8DB28DB58DB78DB98DBB8DC08DC5 -8DC68DC78DC88DCA8DCE8DD18DD48DD58DD78DD98DE48DE58DE78DEC8DF08DBC -8DF18DF28DF48DFD8E018E048E058E068E0B8E118E148E168E208E218E220000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008E238E268E278E318E338E368E378E388E398E3D8E408E418E4B8E4D8E4E -8E4F8E548E5B8E5C8E5D8E5E8E618E628E698E6C8E6D8E6F8E708E718E798E7A -8E7B8E828E838E898E908E928E958E9A8E9B8E9D8E9E8EA28EA78EA98EAD8EAE -8EB38EB58EBA8EBB8EC08EC18EC38EC48EC78ECF8ED18ED48EDC8EE88EEE8EF0 -8EF18EF78EF98EFA8EED8F008F028F078F088F0F8F108F168F178F188F1E8F20 -8F218F238F258F278F288F2C8F2D8F2E8F348F358F368F378F3A8F408F410000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008F438F478F4F8F518F528F538F548F558F588F5D8F5E8F658F9D8FA08FA1 -8FA48FA58FA68FB58FB68FB88FBE8FC08FC18FC68FCA8FCB8FCD8FD08FD28FD3 -8FD58FE08FE38FE48FE88FEE8FF18FF58FF68FFB8FFE900290049008900C9018 -901B90289029902F902A902C902D903390349037903F90439044904C905B905D -906290669067906C90709074907990859088908B908C908E9090909590979098 -9099909B90A090A190A290A590B090B290B390B490B690BD90CC90BE90C30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000090C490C590C790C890D590D790D890D990DC90DD90DF90E590D290F690EB -90EF90F090F490FE90FF91009104910591069108910D91109114911691179118 -911A911C911E912091259122912391279129912E912F91319134913691379139 -913A913C913D914391479148914F915391579159915A915B916191649167916D -91749179917A917B9181918391859186918A918E91919193919491959198919E -91A191A691A891AC91AD91AE91B091B191B291B391B691BB91BC91BD91BF0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000091C291C391C591D391D491D791D991DA91DE91E491E591E991EA91EC91ED -91EE91EF91F091F191F791F991FB91FD9200920192049205920692079209920A -920C92109212921392169218921C921D92239224922592269228922E922F9230 -92339235923692389239923A923C923E92409242924392469247924A924D924E -924F925192589259925C925D926092619265926792689269926E926F92709275 -9276927792789279927B927C927D927F92889289928A928D928E929292970000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009299929F92A092A492A592A792A892AB92AF92B292B692B892BA92BB92BC -92BD92BF92C092C192C292C392C592C692C792C892CB92CC92CD92CE92D092D3 -92D592D792D892D992DC92DD92DF92E092E192E392E592E792E892EC92EE92F0 -92F992FB92FF930093029308930D931193149315931C931D931E931F93219324 -932593279329932A933393349336933793479348934993509351935293559357 -9358935A935E9364936593679369936A936D936F937093719373937493760000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000937A937D937F9380938193829388938A938B938D938F939293959398939B -939E93A193A393A493A693A893AB93B493B593B693BA93A993C193C493C593C6 -93C793C993CA93CB93CC93CD93D393D993DC93DE93DF93E293E693E793F993F7 -93F893FA93FB93FD94019402940494089409940D940E940F941594169417941F -942E942F9431943294339434943B943F943D944394459448944A944C94559459 -945C945F946194639468946B946D946E946F9471947294849483957895790000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000957E95849588958C958D958E959D959E959F95A195A695A995AB95AC95B4 -95B695BA95BD95BF95C695C895C995CB95D095D195D295D395D995DA95DD95DE -95DF95E095E495E6961D961E9622962496259626962C96319633963796389639 -963A963C963D9641965296549656965796589661966E9674967B967C967E967F -9681968296839684968996919696969A969D969F96A496A596A696A996AE96AF -96B396BA96CA96D25DB296D896DA96DD96DE96DF96E996EF96F196FA97020000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000970397059709971A971B971D97219722972397289731973397419743974A -974E974F975597579758975A975B97639767976A976E9773977697779778977B -977D977F978097899795979697979799979A979E979F97A297AC97AE97B197B2 -97B597B697B897B997BA97BC97BE97BF97C197C497C597C797C997CA97CC97CD -97CE97D097D197D497D797D897D997DD97DE97E097DB97E197E497EF97F197F4 -97F797F897FA9807980A9819980D980E98149816981C981E9820982398260000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -68 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000982B982E982F98309832983398359825983E98449847984A985198529853 -985698579859985A9862986398659866986A986C98AB98AD98AE98B098B498B7 -98B898BA98BB98BF98C298C598C898CC98E198E398E598E698E798EA98F398F6 -9902990799089911991599169917991A991B991C991F992299269927992B9931 -99329933993499359939993A993B993C99409941994699479948994D994E9954 -99589959995B995C995E995F9960999B999D999F99A699B099B199B299B50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000099B999BA99BD99BF99C399C999D399D499D999DA99DC99DE99E799EA99EB -99EC99F099F499F599F999FD99FE9A029A039A049A0B9A0C9A109A119A169A1E -9A209A229A239A249A279A2D9A2E9A339A359A369A389A479A419A449A4A9A4B -9A4C9A4E9A519A549A569A5D9AAA9AAC9AAE9AAF9AB29AB49AB59AB69AB99ABB -9ABE9ABF9AC19AC39AC69AC89ACE9AD09AD29AD59AD69AD79ADB9ADC9AE09AE4 -9AE59AE79AE99AEC9AF29AF39AF59AF99AFA9AFD9AFF9B009B019B029B030000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B049B059B089B099B0B9B0C9B0D9B0E9B109B129B169B199B1B9B1C9B20 -9B269B2B9B2D9B339B349B359B379B399B3A9B3D9B489B4B9B4C9B559B569B57 -9B5B9B5E9B619B639B659B669B689B6A9B6B9B6C9B6D9B6E9B739B759B779B78 -9B799B7F9B809B849B859B869B879B899B8A9B8B9B8D9B8F9B909B949B9A9B9D -9B9E9BA69BA79BA99BAC9BB09BB19BB29BB79BB89BBB9BBC9BBE9BBF9BC19BC7 -9BC89BCE9BD09BD79BD89BDD9BDF9BE59BE79BEA9BEB9BEF9BF39BF79BF80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009BF99BFA9BFD9BFF9C009C029C0B9C0F9C119C169C189C199C1A9C1C9C1E -9C229C239C269C279C289C299C2A9C319C359C369C379C3D9C419C439C449C45 -9C499C4A9C4E9C4F9C509C539C549C569C589C5B9C5D9C5E9C5F9C639C699C6A -9C5C9C6B9C689C6E9C709C729C759C779C7B9CE69CF29CF79CF99D0B9D029D11 -9D179D189D1C9D1D9D1E9D2F9D309D329D339D349D3A9D3C9D459D3D9D429D43 -9D479D4A9D539D549D5F9D639D629D659D699D6A9D6B9D709D769D779D7B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009D7C9D7E9D839D849D869D8A9D8D9D8E9D929D939D959D969D979D989DA1 -9DAA9DAC9DAE9DB19DB59DB99DBC9DBF9DC39DC79DC99DCA9DD49DD59DD69DD7 -9DDA9DDE9DDF9DE09DE59DE79DE99DEB9DEE9DF09DF39DF49DFE9E0A9E029E07 -9E0E9E109E119E129E159E169E199E1C9E1D9E7A9E7B9E7C9E809E829E839E84 -9E859E879E8E9E8F9E969E989E9B9E9E9EA49EA89EAC9EAE9EAF9EB09EB39EB4 -9EB59EC69EC89ECB9ED59EDF9EE49EE79EEC9EED9EEE9EF09EF19EF29EF50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009EF89EFF9F029F039F099F0F9F109F119F129F149F169F179F199F1A9F1B -9F1F9F229F269F2A9F2B9F2F9F319F329F349F379F399F3A9F3C9F3D9F3F9F41 -9F439F449F459F469F479F539F559F569F579F589F5A9F5D9F5E9F689F699F6D -9F6E9F6F9F709F719F739F759F7A9F7D9F8F9F909F919F929F949F969F979F9E -9FA19FA29FA39FA5000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/koi8-r.enc b/src/runtime/tcl_library/encoding/koi8-r.enc deleted file mode 100644 index 49bf2ea6..00000000 --- a/src/runtime/tcl_library/encoding/koi8-r.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: koi8-r, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -25002502250C251025142518251C2524252C2534253C258025842588258C2590 -259125922593232025A02219221A22482264226500A0232100B000B200B700F7 -25502551255204512553255425552556255725582559255A255B255C255D255E -255F25602561040125622563256425652566256725682569256A256B256C00A9 -044E0430043104460434043504440433044504380439043A043B043C043D043E -043F044F044004410442044304360432044C044B04370448044D04490447044A -042E0410041104260414041504240413042504180419041A041B041C041D041E -041F042F042004210422042304160412042C042B04170428042D04290427042A diff --git a/src/runtime/tcl_library/encoding/koi8-u.enc b/src/runtime/tcl_library/encoding/koi8-u.enc deleted file mode 100644 index e4eeb845..00000000 --- a/src/runtime/tcl_library/encoding/koi8-u.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: koi8-u, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -25002502250C251025142518251C2524252C2534253C258025842588258C2590 -259125922593232025A02219221A22482264226500A0232100B000B200B700F7 -25502551255204510454255404560457255725582559255A255B0491255D255E -255F25602561040104032563040604072566256725682569256A0490256C00A9 -044E0430043104460434043504440433044504380439043A043B043C043D043E -043F044F044004410442044304360432044C044B04370448044D04490447044A -042E0410041104260414041504240413042504180419041A041B041C041D041E -041F042F042004210422042304160412042C042B04170428042D04290427042A diff --git a/src/runtime/tcl_library/encoding/ksc5601.enc b/src/runtime/tcl_library/encoding/ksc5601.enc deleted file mode 100644 index bec61d0f..00000000 --- a/src/runtime/tcl_library/encoding/ksc5601.enc +++ /dev/null @@ -1,1516 +0,0 @@ -# Encoding file: ksc5601, double-byte -D -233F 0 89 -21 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030003001300200B72025202600A8300300AD20152225FF3C223C20182019 -201C201D3014301530083009300A300B300C300D300E300F3010301100B100D7 -00F7226022642265221E223400B0203220332103212BFFE0FFE1FFE526422640 -222022A52312220222072261225200A7203B2606260525CB25CF25CE25C725C6 -25A125A025B325B225BD25BC219221902191219321943013226A226B221A223D -221D2235222B222C2208220B2286228722822283222A222922272228FFE20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -22 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000021D221D42200220300B4FF5E02C702D802DD02DA02D900B802DB00A100BF -02D0222E2211220F00A42109203025C125C025B725B626642660266126652667 -2663229925C825A325D025D1259225A425A525A825A725A625A92668260F260E -261C261E00B62020202121952197219921962198266D2669266A266C327F321C -211633C7212233C233D821210000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -23 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF01FF02FF03FF04FF05FF06FF07FF08FF09FF0AFF0BFF0CFF0DFF0EFF0F -FF10FF11FF12FF13FF14FF15FF16FF17FF18FF19FF1AFF1BFF1CFF1DFF1EFF1F -FF20FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2F -FF30FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3AFF3BFFE6FF3DFF3EFF3F -FF40FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5AFF5BFF5CFF5DFFE30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -24 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000313131323133313431353136313731383139313A313B313C313D313E313F -3140314131423143314431453146314731483149314A314B314C314D314E314F -3150315131523153315431553156315731583159315A315B315C315D315E315F -3160316131623163316431653166316731683169316A316B316C316D316E316F -3170317131723173317431753176317731783179317A317B317C317D317E317F -3180318131823183318431853186318731883189318A318B318C318D318E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -25 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000217021712172217321742175217621772178217900000000000000000000 -2160216121622163216421652166216721682169000000000000000000000000 -0000039103920393039403950396039703980399039A039B039C039D039E039F -03A003A103A303A403A503A603A703A803A90000000000000000000000000000 -000003B103B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF -03C003C103C303C403C503C603C703C803C90000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -26 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000025002502250C251025182514251C252C25242534253C25012503250F2513 -251B251725232533252B253B254B2520252F25282537253F251D253025252538 -254225122511251A251925162515250E250D251E251F25212522252625272529 -252A252D252E25312532253525362539253A253D253E25402541254325442545 -2546254725482549254A00000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -27 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00003395339633972113339833C433A333A433A533A63399339A339B339C339D -339E339F33A033A133A233CA338D338E338F33CF3388338933C833A733A833B0 -33B133B233B333B433B533B633B733B833B93380338133823383338433BA33BB -33BC33BD33BE33BF33903391339233933394212633C033C1338A338B338C33D6 -33C533AD33AE33AF33DB33A933AA33AB33AC33DD33D033D333C333C933DC33C6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -28 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000C600D000AA0126000001320000013F014100D8015200BA00DE0166014A -00003260326132623263326432653266326732683269326A326B326C326D326E -326F3270327132723273327432753276327732783279327A327B24D024D124D2 -24D324D424D524D624D724D824D924DA24DB24DC24DD24DE24DF24E024E124E2 -24E324E424E524E624E724E824E9246024612462246324642465246624672468 -2469246A246B246C246D246E00BD2153215400BC00BE215B215C215D215E0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000E6011100F001270131013301380140014200F8015300DF00FE0167014B -01493200320132023203320432053206320732083209320A320B320C320D320E -320F3210321132123213321432153216321732183219321A321B249C249D249E -249F24A024A124A224A324A424A524A624A724A824A924AA24AB24AC24AD24AE -24AF24B024B124B224B324B424B5247424752476247724782479247A247B247C -247D247E247F24802481248200B900B200B32074207F20812082208320840000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000304130423043304430453046304730483049304A304B304C304D304E304F -3050305130523053305430553056305730583059305A305B305C305D305E305F -3060306130623063306430653066306730683069306A306B306C306D306E306F -3070307130723073307430753076307730783079307A307B307C307D307E307F -3080308130823083308430853086308730883089308A308B308C308D308E308F -3090309130923093000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000030A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF -30B030B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF -30C030C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF -30D030D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000004100411041204130414041504010416041704180419041A041B041C041D -041E041F0420042104220423042404250426042704280429042A042B042C042D -042E042F00000000000000000000000000000000000000000000000000000000 -000004300431043204330434043504510436043704380439043A043B043C043D -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AC00AC01AC04AC07AC08AC09AC0AAC10AC11AC12AC13AC14AC15AC16AC17 -AC19AC1AAC1BAC1CAC1DAC20AC24AC2CAC2DAC2FAC30AC31AC38AC39AC3CAC40 -AC4BAC4DAC54AC58AC5CAC70AC71AC74AC77AC78AC7AAC80AC81AC83AC84AC85 -AC86AC89AC8AAC8BAC8CAC90AC94AC9CAC9DAC9FACA0ACA1ACA8ACA9ACAAACAC -ACAFACB0ACB8ACB9ACBBACBCACBDACC1ACC4ACC8ACCCACD5ACD7ACE0ACE1ACE4 -ACE7ACE8ACEAACECACEFACF0ACF1ACF3ACF5ACF6ACFCACFDAD00AD04AD060000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -31 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AD0CAD0DAD0FAD11AD18AD1CAD20AD29AD2CAD2DAD34AD35AD38AD3CAD44 -AD45AD47AD49AD50AD54AD58AD61AD63AD6CAD6DAD70AD73AD74AD75AD76AD7B -AD7CAD7DAD7FAD81AD82AD88AD89AD8CAD90AD9CAD9DADA4ADB7ADC0ADC1ADC4 -ADC8ADD0ADD1ADD3ADDCADE0ADE4ADF8ADF9ADFCADFFAE00AE01AE08AE09AE0B -AE0DAE14AE30AE31AE34AE37AE38AE3AAE40AE41AE43AE45AE46AE4AAE4CAE4D -AE4EAE50AE54AE56AE5CAE5DAE5FAE60AE61AE65AE68AE69AE6CAE70AE780000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -32 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000AE79AE7BAE7CAE7DAE84AE85AE8CAEBCAEBDAEBEAEC0AEC4AECCAECDAECF -AED0AED1AED8AED9AEDCAEE8AEEBAEEDAEF4AEF8AEFCAF07AF08AF0DAF10AF2C -AF2DAF30AF32AF34AF3CAF3DAF3FAF41AF42AF43AF48AF49AF50AF5CAF5DAF64 -AF65AF79AF80AF84AF88AF90AF91AF95AF9CAFB8AFB9AFBCAFC0AFC7AFC8AFC9 -AFCBAFCDAFCEAFD4AFDCAFE8AFE9AFF0AFF1AFF4AFF8B000B001B004B00CB010 -B014B01CB01DB028B044B045B048B04AB04CB04EB053B054B055B057B0590000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -33 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B05DB07CB07DB080B084B08CB08DB08FB091B098B099B09AB09CB09FB0A0 -B0A1B0A2B0A8B0A9B0ABB0ACB0ADB0AEB0AFB0B1B0B3B0B4B0B5B0B8B0BCB0C4 -B0C5B0C7B0C8B0C9B0D0B0D1B0D4B0D8B0E0B0E5B108B109B10BB10CB110B112 -B113B118B119B11BB11CB11DB123B124B125B128B12CB134B135B137B138B139 -B140B141B144B148B150B151B154B155B158B15CB160B178B179B17CB180B182 -B188B189B18BB18DB192B193B194B198B19CB1A8B1CCB1D0B1D4B1DCB1DD0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -34 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B1DFB1E8B1E9B1ECB1F0B1F9B1FBB1FDB204B205B208B20BB20CB214B215 -B217B219B220B234B23CB258B25CB260B268B269B274B275B27CB284B285B289 -B290B291B294B298B299B29AB2A0B2A1B2A3B2A5B2A6B2AAB2ACB2B0B2B4B2C8 -B2C9B2CCB2D0B2D2B2D8B2D9B2DBB2DDB2E2B2E4B2E5B2E6B2E8B2EBB2ECB2ED -B2EEB2EFB2F3B2F4B2F5B2F7B2F8B2F9B2FAB2FBB2FFB300B301B304B308B310 -B311B313B314B315B31CB354B355B356B358B35BB35CB35EB35FB364B3650000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -35 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B367B369B36BB36EB370B371B374B378B380B381B383B384B385B38CB390 -B394B3A0B3A1B3A8B3ACB3C4B3C5B3C8B3CBB3CCB3CEB3D0B3D4B3D5B3D7B3D9 -B3DBB3DDB3E0B3E4B3E8B3FCB410B418B41CB420B428B429B42BB434B450B451 -B454B458B460B461B463B465B46CB480B488B49DB4A4B4A8B4ACB4B5B4B7B4B9 -B4C0B4C4B4C8B4D0B4D5B4DCB4DDB4E0B4E3B4E4B4E6B4ECB4EDB4EFB4F1B4F8 -B514B515B518B51BB51CB524B525B527B528B529B52AB530B531B534B5380000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -36 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B540B541B543B544B545B54BB54CB54DB550B554B55CB55DB55FB560B561 -B5A0B5A1B5A4B5A8B5AAB5ABB5B0B5B1B5B3B5B4B5B5B5BBB5BCB5BDB5C0B5C4 -B5CCB5CDB5CFB5D0B5D1B5D8B5ECB610B611B614B618B625B62CB634B648B664 -B668B69CB69DB6A0B6A4B6ABB6ACB6B1B6D4B6F0B6F4B6F8B700B701B705B728 -B729B72CB72FB730B738B739B73BB744B748B74CB754B755B760B764B768B770 -B771B773B775B77CB77DB780B784B78CB78DB78FB790B791B792B796B7970000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -37 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B798B799B79CB7A0B7A8B7A9B7ABB7ACB7ADB7B4B7B5B7B8B7C7B7C9B7EC -B7EDB7F0B7F4B7FCB7FDB7FFB800B801B807B808B809B80CB810B818B819B81B -B81DB824B825B828B82CB834B835B837B838B839B840B844B851B853B85CB85D -B860B864B86CB86DB86FB871B878B87CB88DB8A8B8B0B8B4B8B8B8C0B8C1B8C3 -B8C5B8CCB8D0B8D4B8DDB8DFB8E1B8E8B8E9B8ECB8F0B8F8B8F9B8FBB8FDB904 -B918B920B93CB93DB940B944B94CB94FB951B958B959B95CB960B968B9690000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -38 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000B96BB96DB974B975B978B97CB984B985B987B989B98AB98DB98EB9ACB9AD -B9B0B9B4B9BCB9BDB9BFB9C1B9C8B9C9B9CCB9CEB9CFB9D0B9D1B9D2B9D8B9D9 -B9DBB9DDB9DEB9E1B9E3B9E4B9E5B9E8B9ECB9F4B9F5B9F7B9F8B9F9B9FABA00 -BA01BA08BA15BA38BA39BA3CBA40BA42BA48BA49BA4BBA4DBA4EBA53BA54BA55 -BA58BA5CBA64BA65BA67BA68BA69BA70BA71BA74BA78BA83BA84BA85BA87BA8C -BAA8BAA9BAABBAACBAB0BAB2BAB8BAB9BABBBABDBAC4BAC8BAD8BAD9BAFC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -39 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BB00BB04BB0DBB0FBB11BB18BB1CBB20BB29BB2BBB34BB35BB36BB38BB3B -BB3CBB3DBB3EBB44BB45BB47BB49BB4DBB4FBB50BB54BB58BB61BB63BB6CBB88 -BB8CBB90BBA4BBA8BBACBBB4BBB7BBC0BBC4BBC8BBD0BBD3BBF8BBF9BBFCBBFF -BC00BC02BC08BC09BC0BBC0CBC0DBC0FBC11BC14BC15BC16BC17BC18BC1BBC1C -BC1DBC1EBC1FBC24BC25BC27BC29BC2DBC30BC31BC34BC38BC40BC41BC43BC44 -BC45BC49BC4CBC4DBC50BC5DBC84BC85BC88BC8BBC8CBC8EBC94BC95BC970000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BC99BC9ABCA0BCA1BCA4BCA7BCA8BCB0BCB1BCB3BCB4BCB5BCBCBCBDBCC0 -BCC4BCCDBCCFBCD0BCD1BCD5BCD8BCDCBCF4BCF5BCF6BCF8BCFCBD04BD05BD07 -BD09BD10BD14BD24BD2CBD40BD48BD49BD4CBD50BD58BD59BD64BD68BD80BD81 -BD84BD87BD88BD89BD8ABD90BD91BD93BD95BD99BD9ABD9CBDA4BDB0BDB8BDD4 -BDD5BDD8BDDCBDE9BDF0BDF4BDF8BE00BE03BE05BE0CBE0DBE10BE14BE1CBE1D -BE1FBE44BE45BE48BE4CBE4EBE54BE55BE57BE59BE5ABE5BBE60BE61BE640000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000BE68BE6ABE70BE71BE73BE74BE75BE7BBE7CBE7DBE80BE84BE8CBE8DBE8F -BE90BE91BE98BE99BEA8BED0BED1BED4BED7BED8BEE0BEE3BEE4BEE5BEECBF01 -BF08BF09BF18BF19BF1BBF1CBF1DBF40BF41BF44BF48BF50BF51BF55BF94BFB0 -BFC5BFCCBFCDBFD0BFD4BFDCBFDFBFE1C03CC051C058C05CC060C068C069C090 -C091C094C098C0A0C0A1C0A3C0A5C0ACC0ADC0AFC0B0C0B3C0B4C0B5C0B6C0BC -C0BDC0BFC0C0C0C1C0C5C0C8C0C9C0CCC0D0C0D8C0D9C0DBC0DCC0DDC0E40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C0E5C0E8C0ECC0F4C0F5C0F7C0F9C100C104C108C110C115C11CC11DC11E -C11FC120C123C124C126C127C12CC12DC12FC130C131C136C138C139C13CC140 -C148C149C14BC14CC14DC154C155C158C15CC164C165C167C168C169C170C174 -C178C185C18CC18DC18EC190C194C196C19CC19DC19FC1A1C1A5C1A8C1A9C1AC -C1B0C1BDC1C4C1C8C1CCC1D4C1D7C1D8C1E0C1E4C1E8C1F0C1F1C1F3C1FCC1FD -C200C204C20CC20DC20FC211C218C219C21CC21FC220C228C229C22BC22D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C22FC231C232C234C248C250C251C254C258C260C265C26CC26DC270C274 -C27CC27DC27FC281C288C289C290C298C29BC29DC2A4C2A5C2A8C2ACC2ADC2B4 -C2B5C2B7C2B9C2DCC2DDC2E0C2E3C2E4C2EBC2ECC2EDC2EFC2F1C2F6C2F8C2F9 -C2FBC2FCC300C308C309C30CC30DC313C314C315C318C31CC324C325C328C329 -C345C368C369C36CC370C372C378C379C37CC37DC384C388C38CC3C0C3D8C3D9 -C3DCC3DFC3E0C3E2C3E8C3E9C3EDC3F4C3F5C3F8C408C410C424C42CC4300000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C434C43CC43DC448C464C465C468C46CC474C475C479C480C494C49CC4B8 -C4BCC4E9C4F0C4F1C4F4C4F8C4FAC4FFC500C501C50CC510C514C51CC528C529 -C52CC530C538C539C53BC53DC544C545C548C549C54AC54CC54DC54EC553C554 -C555C557C558C559C55DC55EC560C561C564C568C570C571C573C574C575C57C -C57DC580C584C587C58CC58DC58FC591C595C597C598C59CC5A0C5A9C5B4C5B5 -C5B8C5B9C5BBC5BCC5BDC5BEC5C4C5C5C5C6C5C7C5C8C5C9C5CAC5CCC5CE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C5D0C5D1C5D4C5D8C5E0C5E1C5E3C5E5C5ECC5EDC5EEC5F0C5F4C5F6C5F7 -C5FCC5FDC5FEC5FFC600C601C605C606C607C608C60CC610C618C619C61BC61C -C624C625C628C62CC62DC62EC630C633C634C635C637C639C63BC640C641C644 -C648C650C651C653C654C655C65CC65DC660C66CC66FC671C678C679C67CC680 -C688C689C68BC68DC694C695C698C69CC6A4C6A5C6A7C6A9C6B0C6B1C6B4C6B8 -C6B9C6BAC6C0C6C1C6C3C6C5C6CCC6CDC6D0C6D4C6DCC6DDC6E0C6E1C6E80000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -40 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C6E9C6ECC6F0C6F8C6F9C6FDC704C705C708C70CC714C715C717C719C720 -C721C724C728C730C731C733C735C737C73CC73DC740C744C74AC74CC74DC74F -C751C752C753C754C755C756C757C758C75CC760C768C76BC774C775C778C77C -C77DC77EC783C784C785C787C788C789C78AC78EC790C791C794C796C797C798 -C79AC7A0C7A1C7A3C7A4C7A5C7A6C7ACC7ADC7B0C7B4C7BCC7BDC7BFC7C0C7C1 -C7C8C7C9C7CCC7CEC7D0C7D8C7DDC7E4C7E8C7ECC800C801C804C808C80A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -41 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C810C811C813C815C816C81CC81DC820C824C82CC82DC82FC831C838C83C -C840C848C849C84CC84DC854C870C871C874C878C87AC880C881C883C885C886 -C887C88BC88CC88DC894C89DC89FC8A1C8A8C8BCC8BDC8C4C8C8C8CCC8D4C8D5 -C8D7C8D9C8E0C8E1C8E4C8F5C8FCC8FDC900C904C905C906C90CC90DC90FC911 -C918C92CC934C950C951C954C958C960C961C963C96CC970C974C97CC988C989 -C98CC990C998C999C99BC99DC9C0C9C1C9C4C9C7C9C8C9CAC9D0C9D1C9D30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -42 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000C9D5C9D6C9D9C9DAC9DCC9DDC9E0C9E2C9E4C9E7C9ECC9EDC9EFC9F0C9F1 -C9F8C9F9C9FCCA00CA08CA09CA0BCA0CCA0DCA14CA18CA29CA4CCA4DCA50CA54 -CA5CCA5DCA5FCA60CA61CA68CA7DCA84CA98CABCCABDCAC0CAC4CACCCACDCACF -CAD1CAD3CAD8CAD9CAE0CAECCAF4CB08CB10CB14CB18CB20CB21CB41CB48CB49 -CB4CCB50CB58CB59CB5DCB64CB78CB79CB9CCBB8CBD4CBE4CBE7CBE9CC0CCC0D -CC10CC14CC1CCC1DCC21CC22CC27CC28CC29CC2CCC2ECC30CC38CC39CC3B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -43 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CC3CCC3DCC3ECC44CC45CC48CC4CCC54CC55CC57CC58CC59CC60CC64CC66 -CC68CC70CC75CC98CC99CC9CCCA0CCA8CCA9CCABCCACCCADCCB4CCB5CCB8CCBC -CCC4CCC5CCC7CCC9CCD0CCD4CCE4CCECCCF0CD01CD08CD09CD0CCD10CD18CD19 -CD1BCD1DCD24CD28CD2CCD39CD5CCD60CD64CD6CCD6DCD6FCD71CD78CD88CD94 -CD95CD98CD9CCDA4CDA5CDA7CDA9CDB0CDC4CDCCCDD0CDE8CDECCDF0CDF8CDF9 -CDFBCDFDCE04CE08CE0CCE14CE19CE20CE21CE24CE28CE30CE31CE33CE350000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -44 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000CE58CE59CE5CCE5FCE60CE61CE68CE69CE6BCE6DCE74CE75CE78CE7CCE84 -CE85CE87CE89CE90CE91CE94CE98CEA0CEA1CEA3CEA4CEA5CEACCEADCEC1CEE4 -CEE5CEE8CEEBCEECCEF4CEF5CEF7CEF8CEF9CF00CF01CF04CF08CF10CF11CF13 -CF15CF1CCF20CF24CF2CCF2DCF2FCF30CF31CF38CF54CF55CF58CF5CCF64CF65 -CF67CF69CF70CF71CF74CF78CF80CF85CF8CCFA1CFA8CFB0CFC4CFE0CFE1CFE4 -CFE8CFF0CFF1CFF3CFF5CFFCD000D004D011D018D02DD034D035D038D03C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -45 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D044D045D047D049D050D054D058D060D06CD06DD070D074D07CD07DD081 -D0A4D0A5D0A8D0ACD0B4D0B5D0B7D0B9D0C0D0C1D0C4D0C8D0C9D0D0D0D1D0D3 -D0D4D0D5D0DCD0DDD0E0D0E4D0ECD0EDD0EFD0F0D0F1D0F8D10DD130D131D134 -D138D13AD140D141D143D144D145D14CD14DD150D154D15CD15DD15FD161D168 -D16CD17CD184D188D1A0D1A1D1A4D1A8D1B0D1B1D1B3D1B5D1BAD1BCD1C0D1D8 -D1F4D1F8D207D209D210D22CD22DD230D234D23CD23DD23FD241D248D25C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -46 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D264D280D281D284D288D290D291D295D29CD2A0D2A4D2ACD2B1D2B8D2B9 -D2BCD2BFD2C0D2C2D2C8D2C9D2CBD2D4D2D8D2DCD2E4D2E5D2F0D2F1D2F4D2F8 -D300D301D303D305D30CD30DD30ED310D314D316D31CD31DD31FD320D321D325 -D328D329D32CD330D338D339D33BD33CD33DD344D345D37CD37DD380D384D38C -D38DD38FD390D391D398D399D39CD3A0D3A8D3A9D3ABD3ADD3B4D3B8D3BCD3C4 -D3C5D3C8D3C9D3D0D3D8D3E1D3E3D3ECD3EDD3F0D3F4D3FCD3FDD3FFD4010000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -47 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D408D41DD440D444D45CD460D464D46DD46FD478D479D47CD47FD480D482 -D488D489D48BD48DD494D4A9D4CCD4D0D4D4D4DCD4DFD4E8D4ECD4F0D4F8D4FB -D4FDD504D508D50CD514D515D517D53CD53DD540D544D54CD54DD54FD551D558 -D559D55CD560D565D568D569D56BD56DD574D575D578D57CD584D585D587D588 -D589D590D5A5D5C8D5C9D5CCD5D0D5D2D5D8D5D9D5DBD5DDD5E4D5E5D5E8D5EC -D5F4D5F5D5F7D5F9D600D601D604D608D610D611D613D614D615D61CD6200000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -48 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000D624D62DD638D639D63CD640D645D648D649D64BD64DD651D654D655D658 -D65CD667D669D670D671D674D683D685D68CD68DD690D694D69DD69FD6A1D6A8 -D6ACD6B0D6B9D6BBD6C4D6C5D6C8D6CCD6D1D6D4D6D7D6D9D6E0D6E4D6E8D6F0 -D6F5D6FCD6FDD700D704D711D718D719D71CD720D728D729D72BD72DD734D735 -D738D73CD744D747D749D750D751D754D756D757D758D759D760D761D763D765 -D769D76CD770D774D77CD77DD781D788D789D78CD790D798D799D79BD79D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004F3D4F73504750F952A053EF547554E556095AC15BB6668767B667B767EF -6B4C73C275C27A3C82DB8304885788888A368CC88DCF8EFB8FE699D5523B5374 -5404606A61646BBC73CF811A89BA89D295A34F83520A58BE597859E65E725E79 -61C763C0674667EC687F6F97764E770B78F57A087AFF7C21809D826E82718AEB -95934E6B559D66F76E3478A37AED845B8910874E97A852D8574E582A5D4C611F -61BE6221656267D16A446E1B751875B376E377B07D3A90AF945194529F950000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000053235CAC753280DB92409598525B580859DC5CA15D175EB75F3A5F4A6177 -6C5F757A75867CE07D737DB17F8C81548221859189418B1B92FC964D9C474ECB -4EF7500B51F1584F6137613E6168653969EA6F1175A5768676D67B8782A584CB -F90093A7958B55805BA25751F9017CB37FB991B5502853BB5C455DE862D2636E -64DA64E76E2070AC795B8DDD8E1EF902907D924592F84E7E4EF650655DFE5EFA -61066957817186548E4793759A2B4E5E5091677068405109528D52926AA20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000077BC92109ED452AB602F8FF2504861A963ED64CA683C6A846FC0818889A1 -96945805727D72AC75047D797E6D80A9898B8B7490639D5162896C7A6F547D50 -7F3A8A23517C614A7B9D8B199257938C4EAC4FD3501E50BE510652C152CD537F -577058835E9A5F91617661AC64CE656C666F66BB66F468976D87708570F1749F -74A574CA75D9786C78EC7ADF7AF67D457D938015803F811B83968B668F159015 -93E1980398389A5A9BE84FC25553583A59515B635C4660B86212684268B00000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068E86EAA754C767878CE7A3D7CFB7E6B7E7C8A088AA18C3F968E9DC453E4 -53E9544A547156FA59D15B645C3B5EAB62F765376545657266A067AF69C16CBD -75FC7690777E7A3F7F94800380A1818F82E682FD83F085C1883188B48AA5F903 -8F9C932E96C798679AD89F1354ED659B66F2688F7A408C379D6056F057645D11 -660668B168CD6EFE7428889E9BE46C68F9049AA84F9B516C5171529F5B545DE5 -6050606D62F163A7653B73D97A7A86A38CA2978F4E325BE16208679C74DC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000079D183D38A878AB28DE8904E934B98465ED369E885FF90EDF90551A05B98 -5BEC616368FA6B3E704C742F74D87BA17F5083C589C08CAB95DC9928522E605D -62EC90024F8A5149532158D95EE366E06D38709A72C273D67B5080F1945B5366 -639B7F6B4E565080584A58DE602A612762D069D09B415B8F7D1880B18F5F4EA4 -50D154AC55AC5B0C5DA05DE7652A654E68216A4B72E1768E77EF7D5E7FF981A0 -854E86DF8F038F4E90CA99039A559BAB4E184E454E5D4EC74FF1517752FE0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -4F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000534053E353E5548E5614577557A25BC75D875ED061FC62D8655167B867E9 -69CB6B506BC66BEC6C426E9D707872D77396740377BF77E97A767D7F800981FC -8205820A82DF88628B338CFC8EC0901190B1926492B699D29A459CE99DD79F9C -570B5C4083CA97A097AB9EB4541B7A987FA488D98ECD90E158005C4863987A9F -5BAE5F137A797AAE828E8EAC5026523852F85377570862F363726B0A6DC37737 -53A5735785688E7695D5673A6AC36F708A6D8ECC994BF90666776B788CB40000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00009B3CF90753EB572D594E63C669FB73EA78457ABA7AC57CFE8475898F8D73 -903595A852FB574775477B6083CC921EF9086A58514B524B5287621F68D86975 -969950C552A452E461C365A4683969FF747E7B4B82B983EB89B28B398FD19949 -F9094ECA599764D266116A8E7434798179BD82A9887E887F895FF90A93264F0B -53CA602562716C727D1A7D664E98516277DC80AF4F014F0E5176518055DC5668 -573B57FA57FC5914594759935BC45C905D0E5DF15E7E5FCC628065D765E30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -51 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000671E671F675E68CB68C46A5F6B3A6C236C7D6C826DC773987426742A7482 -74A37578757F788178EF794179477948797A7B957D007DBA7F888006802D808C -8A188B4F8C488D779321932498E299519A0E9A0F9A659E927DCA4F76540962EE -685491D155AB513AF90BF90C5A1C61E6F90D62CF62FFF90EF90FF910F911F912 -F91390A3F914F915F916F917F9188AFEF919F91AF91BF91C6696F91D7156F91E -F91F96E3F920634F637A5357F921678F69606E73F9227537F923F924F9250000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -52 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007D0DF926F927887256CA5A18F928F929F92AF92BF92C4E43F92D51675948 -67F08010F92E59735E74649A79CA5FF5606C62C8637B5BE75BD752AAF92F5974 -5F296012F930F931F9327459F933F934F935F936F937F93899D1F939F93AF93B -F93CF93DF93EF93FF940F941F942F9436FC3F944F94581BF8FB260F1F946F947 -8166F948F9495C3FF94AF94BF94CF94DF94EF94FF950F9515AE98A25677B7D10 -F952F953F954F955F956F95780FDF958F9595C3C6CE5533F6EBA591A83360000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00004E394EB64F4655AE571858C75F5665B765E66A806BB56E4D77ED7AEF7C1E -7DDE86CB88929132935B64BB6FBE737A75B890545556574D61BA64D466C76DE1 -6E5B6F6D6FB975F0804381BD854189838AC78B5A931F6C9375537B548E0F905D -5510580258585E626207649E68E075767CD687B39EE84EE35788576E59275C0D -5CB15E365F85623464E173B381FA888B8CB8968A9EDB5B855FB760B350125200 -52305716583558575C0E5C605CF65D8B5EA65F9260BC63116389641768430000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000068F96AC26DD86E216ED46FE471FE76DC777979B17A3B840489A98CED8DF3 -8E4890039014905390FD934D967697DC6BD27006725872A27368776379BF7BE4 -7E9B8B8058A960C7656665FD66BE6C8C711E71C98C5A98134E6D7A814EDD51AC -51CD52D5540C61A76771685068DF6D1E6F7C75BC77B37AE580F484639285515C -6597675C679375D87AC78373F95A8C469017982D5C6F81C0829A9041906F920D -5F975D9D6A5971C8767B7B4985E48B0491279A30558761F6F95B76697F850000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -55 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000863F87BA88F8908FF95C6D1B70D973DE7D61843DF95D916A99F1F95E4E82 -53756B046B12703E721B862D9E1E524C8FA35D5064E5652C6B166FEB7C437E9C -85CD896489BD62C981D8881F5ECA67176D6A72FC7405746F878290DE4F865D0D -5FA0840A51B763A075654EAE5006516951C968816A117CAE7CB17CE7826F8AD2 -8F1B91CF4FB6513752F554425EEC616E623E65C56ADA6FFE792A85DC882395AD -9A629A6A9E979ECE529B66C66B77701D792B8F6297426190620065236F230000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -56 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000714974897DF4806F84EE8F269023934A51BD521752A36D0C70C888C25EC9 -65826BAE6FC27C3E73754EE44F3656F9F95F5CBA5DBA601C73B27B2D7F9A7FCE -8046901E923496F6974898189F614F8B6FA779AE91B496B752DEF960648864C4 -6AD36F5E7018721076E780018606865C8DEF8F0597329B6F9DFA9E75788C797F -7DA083C993049E7F9E938AD658DF5F046727702774CF7C60807E512170287262 -78CA8CC28CDA8CF496F74E8650DA5BEE5ED6659971CE764277AD804A84FC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -57 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000907C9B279F8D58D85A415C626A136DDA6F0F763B7D2F7E37851E893893E4 -964B528965D267F369B46D416E9C700F7409746075597624786B8B2C985E516D -622E96784F96502B5D196DEA7DB88F2A5F8B61446817F961968652D2808B51DC -51CC695E7A1C7DBE83F196754FDA52295398540F550E5C6560A7674E68A86D6C -728172F874067483F96275E27C6C7F797FB8838988CF88E191CC91D096E29BC9 -541D6F7E71D0749885FA8EAA96A39C579E9F67976DCB743381E89716782C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007ACB7B207C926469746A75F278BC78E899AC9B549EBB5BDE5E556F20819C -83AB90884E07534D5A295DD25F4E6162633D666966FC6EFF6F2B7063779E842C -8513883B8F1399459C3B551C62B9672B6CAB8309896A977A4EA159845FD85FD9 -671B7DB27F548292832B83BD8F1E909957CB59B95A925BD06627679A68856BCF -71647F758CB78CE390819B4581088C8A964C9A409EA55B5F6C13731B76F276DF -840C51AA8993514D519552C968C96C94770477207DBF7DEC97629EB56EC50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000851151A5540D547D660E669D69276E9F76BF7791831784C2879F91699298 -9CF488824FAE519252DF59C65E3D61556478647966AE67D06A216BCD6BDB725F -72617441773877DB801782BC83058B008B288C8C67286C90726776EE77667A46 -9DA96B7F6C92592267268499536F589359995EDF63CF663467736E3A732B7AD7 -82D7932852D95DEB61AE61CB620A62C764AB65E069596B666BCB712173F7755D -7E46821E8302856A8AA38CBF97279D6158A89ED85011520E543B554F65870000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006C767D0A7D0B805E868A958096EF52FF6C95726954735A9A5C3E5D4B5F4C -5FAE672A68B669636E3C6E4477097C737F8E85878B0E8FF797619EF45CB760B6 -610D61AB654F65FB65FC6C116CEF739F73C97DE195945BC6871C8B10525D535A -62CD640F64B267346A386CCA73C0749E7B947C957E1B818A823685848FEB96F9 -99C14F34534A53CD53DB62CC642C6500659169C36CEE6F5873ED7554762276E4 -76FC78D078FB792C7D46822C87E08FD4981298EF52C362D464A56E246F510000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000767C8DCB91B192629AEE9B435023508D574A59A85C285E475F77623F653E -65B965C16609678B699C6EC278C57D2180AA8180822B82B384A1868C8A2A8B17 -90A696329F90500D4FF3F96357F95F9862DC6392676F6E43711976C380CC80DA -88F488F589198CE08F29914D966A4F2F4F705E1B67CF6822767D767E9B445E61 -6A0A716971D4756AF9647E41854385E998DC4F107B4F7F7095A551E15E0668B5 -6C3E6C4E6CDB72AF7BC483036CD5743A50FB528858C164D86A9774A776560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000078A7861795E29739F965535E5F018B8A8FA88FAF908A522577A59C499F08 -4E19500251755C5B5E77661E663A67C468C570B3750175C579C97ADD8F279920 -9A084FDD582158315BF6666E6B656D116E7A6F7D73E4752B83E988DC89138B5C -8F144F0F50D55310535C5B935FA9670D798F8179832F8514890789868F398F3B -99A59C12672C4E764FF859495C015CEF5CF0636768D270FD71A2742B7E2B84EC -8702902292D29CF34E0D4ED84FEF50855256526F5426549057E0592B5A660000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005B5A5B755BCC5E9CF9666276657765A76D6E6EA572367B267C3F7F368150 -8151819A8240829983A98A038CA08CE68CFB8D748DBA90E891DC961C964499D9 -9CE7531752065429567458B35954596E5FFF61A4626E66106C7E711A76C67C89 -7CDE7D1B82AC8CC196F0F9674F5B5F175F7F62C25D29670B68DA787C7E439D6C -4E1550995315532A535159835A625E8760B2618A624962796590678769A76BD4 -6BD66BD76BD86CB8F968743575FA7812789179D579D87C837DCB7FE180A50000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000813E81C283F2871A88E88AB98B6C8CBB9119975E98DB9F3B56AC5B2A5F6C -658C6AB36BAF6D5C6FF17015725D73AD8CA78CD3983B61916C3780589A014E4D -4E8B4E9B4ED54F3A4F3C4F7F4FDF50FF53F253F8550655E356DB58EB59625A11 -5BEB5BFA5C045DF35E2B5F99601D6368659C65AF67F667FB68AD6B7B6C996CD7 -6E23700973457802793E7940796079C17BE97D177D728086820D838E84D186C7 -88DF8A508A5E8B1D8CDC8D668FAD90AA98FC99DF9E9D524AF9696714F96A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005098522A5C7165636C5573CA7523759D7B97849C917897304E7764926BBA -715E85A94E09F96B674968EE6E17829F8518886B63F76F81921298AF4E0A50B7 -50CF511F554655AA56175B405C195CE05E385E8A5EA05EC260F368516A616E58 -723D724072C076F879657BB17FD488F389F48A738C618CDE971C585E74BD8CFD -55C7F96C7A617D2282727272751F7525F96D7B19588558FB5DBC5E8F5EB65F90 -60556292637F654D669166D966F8681668F27280745E7B6E7D6E7DD67F720000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -60 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000080E5821285AF897F8A93901D92E49ECD9F205915596D5E2D60DC66146673 -67906C506DC56F5F77F378A984C691CB932B4ED950CA514855845B0B5BA36247 -657E65CB6E32717D74017444748774BF766C79AA7DDA7E557FA8817A81B38239 -861A87EC8A758DE3907892919425994D9BAE53685C5169546CC46D296E2B820C -859B893B8A2D8AAA96EA9F67526166B96BB27E9687FE8D0D9583965D651D6D89 -71EEF96E57CE59D35BAC602760FA6210661F665F732973F976DB77017B6C0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -61 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008056807281658AA091924E1652E26B726D177A057B397D30F96F8CB053EC -562F58515BB55C0F5C115DE2624063836414662D68B36CBC6D886EAF701F70A4 -71D27526758F758E76197B117BE07C2B7D207D39852C856D86078A34900D9061 -90B592B797F69A374FD75C6C675F6D917C9F7E8C8B168D16901F5B6B5DFD640D -84C0905C98E173875B8B609A677E6DDE8A1F8AA69001980C5237F9707051788E -9396887091D74FEE53D755FD56DA578258FD5AC25B885CAB5CC05E2561010000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000620D624B6388641C653665786A396B8A6C346D196F3171E772E973787407 -74B27626776179C07A577AEA7CB97D8F7DAC7E617F9E81298331849084DA85EA -88968AB08B908F3890429083916C929692B9968B96A796A896D6970098089996 -9AD39B1A53D4587E59195B705BBF6DD16F5A719F742174B9808583FD5DE15F87 -5FAA604265EC6812696F6A536B896D356DF373E376FE77AC7B4D7D148123821C -834084F485638A628AC49187931E980699B4620C88538FF092655D075D270000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005D69745F819D87686FD562FE7FD2893689724E1E4E5850E752DD5347627F -66077E698805965E4F8D5319563659CB5AA45C385C4E5C4D5E025F11604365BD -662F664267BE67F4731C77E2793A7FC5849484CD89968A668A698AE18C558C7A -57F45BD45F0F606F62ED690D6B966E5C71847BD287558B588EFE98DF98FE4F38 -4F814FE1547B5A205BB8613C65B0666871FC7533795E7D33814E81E3839885AA -85CE87038A0A8EAB8F9BF9718FC559315BA45BE660895BE95C0B5FC36C810000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -64 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9726DF1700B751A82AF8AF64EC05341F97396D96C0F4E9E4FC45152555E -5A255CE86211725982BD83AA86FE88598A1D963F96C599139D099D5D580A5CB3 -5DBD5E4460E1611563E16A026E2591029354984E9C109F775B895CB86309664F -6848773C96C1978D98549B9F65A18B018ECB95BC55355CA95DD65EB56697764C -83F495C758D362BC72CE9D284EF0592E600F663B6B8379E79D26539354C057C3 -5D16611B66D66DAF788D827E969897445384627C63966DB27E0A814B984D0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -65 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006AFB7F4C9DAF9E1A4E5F503B51B6591C60F963F66930723A8036F97491CE -5F31F975F9767D0482E5846F84BB85E58E8DF9774F6FF978F97958E45B436059 -63DA6518656D6698F97A694A6A236D0B7001716C75D2760D79B37A70F97B7F8A -F97C8944F97D8B9391C0967DF97E990A57045FA165BC6F01760079A68A9E99AD -9B5A9F6C510461B662916A8D81C6504358305F6671098A008AFA5B7C86164FFA -513C56B4594463A96DF95DAA696D51864E884F59F97FF980F9815982F9820000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9836B5F6C5DF98474B57916F9858207824583398F3F8F5DF9869918F987 -F988F9894EA6F98A57DF5F796613F98BF98C75AB7E798B6FF98D90069A5B56A5 -582759F85A1F5BB4F98E5EF6F98FF9906350633BF991693D6C876CBF6D8E6D93 -6DF56F14F99270DF71367159F99371C371D5F994784F786FF9957B757DE3F996 -7E2FF997884D8EDFF998F999F99A925BF99B9CF6F99CF99DF99E60856D85F99F -71B1F9A0F9A195B153ADF9A2F9A3F9A467D3F9A5708E71307430827682D20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -67 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9A695BB9AE59E7D66C4F9A771C18449F9A8F9A9584BF9AAF9AB5DB85F71 -F9AC6620668E697969AE6C386CF36E366F416FDA701B702F715071DF7370F9AD -745BF9AE74D476C87A4E7E93F9AFF9B082F18A608FCEF9B19348F9B29719F9B3 -F9B44E42502AF9B5520853E166F36C6D6FCA730A777F7A6282AE85DD8602F9B6 -88D48A638B7D8C6BF9B792B3F9B8971398104E944F0D4FC950B25348543E5433 -55DA586258BA59675A1B5BE4609FF9B961CA655665FF666468A76C5A6FB30000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -68 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000070CF71AC73527B7D87088AA49C329F075C4B6C8373447389923A6EAB7465 -761F7A697E15860A514058C564C174EE751576707FC1909596CD99546E2674E6 -7AA97AAA81E586D987788A1B5A495B8C5B9B68A169006D6373A97413742C7897 -7DE97FEB81188155839E8C4C962E981166F05F8065FA67896C6A738B502D5A03 -6B6A77EE59165D6C5DCD7325754FF9BAF9BB50E551F9582F592D599659DA5BE5 -F9BCF9BD5DA262D76416649364FEF9BE66DCF9BF6A48F9C071FF7464F9C10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -69 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00007A887AAF7E477E5E80008170F9C287EF89818B209059F9C390809952617E -6B326D747E1F89258FB14FD150AD519752C757C758895BB95EB8614269956D8C -6E676EB6719474627528752C8073833884C98E0A939493DEF9C44E8E4F515076 -512A53C853CB53F35B875BD35C24611A618265F4725B7397744076C279507991 -79B97D067FBD828B85D5865E8FC2904790F591EA968596E896E952D65F6765ED -6631682F715C7A3690C1980A4E91F9C56A526B9E6F907189801882B885530000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000904B969596F297FB851A9B314E90718A96C45143539F54E15713571257A3 -5A9B5AC45BC36028613F63F46C856D396E726E907230733F745782D188818F45 -9060F9C6966298589D1B67088D8A925E4F4D504950DE5371570D59D45A015C09 -617066906E2D7232744B7DEF80C3840E8466853F875F885B89188B02905597CB -9B4F4E734F915112516AF9C7552F55A95B7A5BA55E7C5E7D5EBE60A060DF6108 -610963C465386709F9C867D467DAF9C9696169626CB96D27F9CA6E38F9CB0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006FE173367337F9CC745C7531F9CD7652F9CEF9CF7DAD81FE843888D58A98 -8ADB8AED8E308E42904A903E907A914991C9936EF9D0F9D15809F9D26BD38089 -80B2F9D3F9D45141596B5C39F9D5F9D66F6473A780E48D07F9D79217958FF9D8 -F9D9F9DAF9DB807F620E701C7D68878DF9DC57A0606961476BB78ABE928096B1 -4E59541F6DEB852D967097F398EE63D66CE3909151DD61C981BA9DF94F9D501A -51005B9C610F61FF64EC69056BC5759177E37FA98264858F87FB88638ABC0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008B7091AB4E8C4EE54F0AF9DDF9DE593759E8F9DF5DF25F1B5F5B6021F9E0 -F9E1F9E2F9E3723E73E5F9E4757075CDF9E579FBF9E6800C8033808482E18351 -F9E7F9E88CBD8CB39087F9E9F9EA98F4990CF9EBF9EC703776CA7FCA7FCC7FFC -8B1A4EBA4EC152035370F9ED54BD56E059FB5BC55F155FCD6E6EF9EEF9EF7D6A -8335F9F086938A8DF9F1976D9777F9F2F9F34E004F5A4F7E58F965E56EA29038 -93B099B94EFB58EC598A59D96041F9F4F9F57A14F9F6834F8CC3516553440000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F9F7F9F8F9F94ECD52695B5582BF4ED4523A54A859C959FF5B505B575B5C -606361486ECB7099716E738674F775B578C17D2B800581EA8328851785C98AEE -8CC796CC4F5C52FA56BC65AB6628707C70B872357DBD828D914C96C09D725B71 -68E76B986F7A76DE5C9166AB6F5B7BB47C2A883696DC4E084ED75320583458BB -58EF596C5C075E335E845F35638C66B267566A1F6AA36B0C6F3F7246F9FA7350 -748B7AE07CA7817881DF81E7838A846C8523859485CF88DD8D1391AC95770000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000969C518D54C957285BB0624D6750683D68936E3D6ED3707D7E2188C18CA1 -8F099F4B9F4E722D7B8F8ACD931A4F474F4E5132548059D05E9562B56775696E -6A176CAE6E1A72D9732A75BD7BB87D3582E783F9845785F78A5B8CAF8E879019 -90B896CE9F5F52E3540A5AE15BC2645865756EF472C4F9FB76847A4D7B1B7C4D -7E3E7FDF837B8B2B8CCA8D648DE18E5F8FEA8FF9906993D14F434F7A50B35168 -5178524D526A5861587C59605C085C555EDB609B623068136BBF6C086FB10000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000714E742075307538755176727B4C7B8B7BAD7BC67E8F8A6E8F3E8F49923F -92939322942B96FB985A986B991E5207622A62986D5976647ACA7BC07D765360 -5CBE5E976F3870B97C9897119B8E9EDE63A5647A87764E014E954EAD505C5075 -544859C35B9A5E405EAD5EF75F8160C5633A653F657465CC6676667867FE6968 -6A896B636C406DC06DE86E1F6E5E701E70A1738E73FD753A775B7887798E7A0B -7A7D7CBE7D8E82478A028AEA8C9E912D914A91D8926692CC9320970697560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -70 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000975C98029F0E52365291557C58245E1D5F1F608C63D068AF6FDF796D7B2C -81CD85BA88FD8AF88E44918D9664969B973D984C9F4A4FCE514651CB52A95632 -5F145F6B63AA64CD65E9664166FA66F9671D689D68D769FD6F156F6E716771E5 -722A74AA773A7956795A79DF7A207A957C977CDF7D447E70808785FB86A48A54 -8ABF8D998E819020906D91E3963B96D59CE565CF7C078DB393C35B585C0A5352 -62D9731D50275B975F9E60B0616B68D56DD9742E7A2E7D427D9C7E31816B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -71 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008E2A8E35937E94184F5057505DE65EA7632B7F6A4E3B4F4F4F8F505A59DD -80C4546A546855FE594F5B995DDE5EDA665D673167F1682A6CE86D326E4A6F8D -70B773E075877C4C7D027D2C7DA2821F86DB8A3B8A858D708E8A8F339031914E -9152944499D07AF97CA54FCA510151C657C85BEF5CFB66596A3D6D5A6E966FEC -710C756F7AE388229021907596CB99FF83014E2D4EF2884691CD537D6ADB696B -6C41847A589E618E66FE62EF70DD751175C77E5284B88B498D084E4B53EA0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -72 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054AB573057405FD763016307646F652F65E8667A679D67B36B626C606C9A -6F2C77E57825794979577D1980A2810281F3829D82B787188A8CF9FC8D048DBE -907276F47A197A377E548077550755D45875632F64226649664B686D699B6B84 -6D256EB173CD746874A1755B75B976E1771E778B79E67E097E1D81FB852F8897 -8A3A8CD18EEB8FB0903293AD9663967397074F8453F159EA5AC95E19684E74C6 -75BE79E97A9281A386ED8CEA8DCC8FED659F6715F9FD57F76F577DDD8F2F0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -73 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000093F696C65FB561F26F844E144F98501F53C955DF5D6F5DEE6B216B6478CB -7B9AF9FE8E498ECA906E6349643E77407A84932F947F9F6A64B06FAF71E674A8 -74DA7AC47C127E827CB27E988B9A8D0A947D9910994C52395BDF64E6672D7D2E -50ED53C358796158615961FA65AC7AD98B928B9650095021527555315A3C5EE0 -5F706134655E660C663666A269CD6EC46F32731676217A938139825983D684BC -50B557F05BC05BE85F6963A178267DB583DC852191C791F5518A67F57B560000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008CAC51C459BB60BD8655501CF9FF52545C3A617D621A62D364F265A56ECC -7620810A8E60965F96BB4EDF5343559859295DDD64C56CC96DFA73947A7F821B -85A68CE48E10907791E795E1962197C651F854F255865FB964A46F887DB48F1F -8F4D943550C95C166CBE6DFB751B77BB7C3D7C648A798AC2581E59BE5E166377 -7252758A776B8ADC8CBC8F125EF366746DF8807D83C18ACB97519BD6FA005243 -66FF6D956EEF7DE08AE6902E905E9AD4521D527F54E86194628462DB68A20000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -75 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00006912695A6A3570927126785D7901790E79D27A0D8096827882D583498549 -8C828D859162918B91AE4FC356D171ED77D7870089F85BF85FD6675190A853E2 -585A5BF560A4618164607E3D80708525928364AE50AC5D146700589C62BD63A8 -690E69786A1E6E6B76BA79CB82BB84298ACF8DA88FFD9112914B919C93109318 -939A96DB9A369C0D4E11755C795D7AFA7B517BC97E2E84C48E598E748EF89010 -6625693F744351FA672E9EDC51455FE06C9687F2885D887760B481B584030000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -76 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00008D0553D6543956345A365C31708A7FE0805A810681ED8DA391899A5F9DF2 -50744EC453A060FB6E2C5C644F88502455E45CD95E5F606568946CBB6DC471BE -75D475F476617A1A7A497DC77DFB7F6E81F486A98F1C96C999B39F52524752C5 -98ED89AA4E0367D26F064FB55BE267956C886D78741B782791DD937C87C479E4 -7A315FEB4ED654A4553E58AE59A560F0625362D6673669558235964099B199DD -502C53535544577CFA016258FA0264E2666B67DD6FC16FEF742274388A170000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -77 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000094385451560657665F48619A6B4E705870AD7DBB8A95596A812B63A27708 -803D8CAA5854642D69BB5B955E116E6FFA038569514C53F0592A6020614B6B86 -6C706CF07B1E80CE82D48DC690B098B1FA0464C76FA464916504514E5410571F -8A0E615F6876FA0575DB7B527D71901A580669CC817F892A9000983950785957 -59AC6295900F9B2A615D727995D657615A465DF4628A64AD64FA67776CE26D3E -722C743678347F7782AD8DDB981752245742677F724874E38CA98FA692110000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -78 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000962A516B53ED634C4F695504609665576C9B6D7F724C72FD7A1789878C9D -5F6D6F8E70F981A8610E4FBF504F624172477BC77DE87FE9904D97AD9A198CB6 -576A5E7367B0840D8A5554205B165E635EE25F0A658380BA853D9589965B4F48 -5305530D530F548654FA57035E036016629B62B16355FA066CE16D6675B17832 -80DE812F82DE846184B2888D8912900B92EA98FD9B915E4566B466DD70117206 -FA074FF5527D5F6A615367536A196F0274E2796888688C7998C798C49A430000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -79 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000054C17A1F69538AF78C4A98A899AE5F7C62AB75B276AE88AB907F96425339 -5F3C5FC56CCC73CC7562758B7B4682FE999D4E4F903C4E0B4F5553A6590F5EC8 -66306CB37455837787668CC09050971E9C1558D15B7886508B149DB45BD26068 -608D65F16C576F226FA3701A7F557FF095919592965097D352728F4451FD542B -54B85563558A6ABB6DB57DD88266929C96779E79540854C876D286E495A495D4 -965C4EA24F0959EE5AE65DF760526297676D68416C866E2F7F38809B822A0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FA08FA0998054EA5505554B35793595A5B695BB361C869776D77702387F9 -89E38A728AE7908299ED9AB852BE683850165E78674F8347884C4EAB541156AE -73E6911597FF9909995799995653589F865B8A3161B26AF6737B8ED26B4796AA -9A57595572008D6B97694FD45CF45F2661F8665B6CEB70AB738473B973FE7729 -774D7D437D627E2382378852FA0A8CE29249986F5B517A74884098015ACC4FE0 -5354593E5CFD633E6D7972F98105810783A292CF98304EA851445211578B0000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00005F626CC26ECE7005705070AF719273E97469834A87A28861900890A293A3 -99A8516E5F5760E0616766B385598E4A91AF978B4E4E4E92547C58D558FA597D -5CB55F2762366248660A66676BEB6D696DCF6E566EF86F946FE06FE9705D72D0 -7425745A74E07693795C7CCA7E1E80E182A6846B84BF864E865F87748B778C6A -93AC9800986560D1621691775A5A660F6DF76E3E743F9B425FFD60DA7B0F54C4 -5F186C5E6CD36D2A70D87D0586798A0C9D3B5316548C5B056A3A706B75750000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000798D79BE82B183EF8A718B418CA89774FA0B64F4652B78BA78BB7A6B4E38 -559A59505BA65E7B60A363DB6B61666568536E19716574B07D0890849A699C25 -6D3B6ED1733E8C4195CA51F05E4C5FA8604D60F66130614C6643664469A56CC1 -6E5F6EC96F62714C749C76877BC17C27835287579051968D9EC3532F56DE5EFB -5F8A6062609461F7666667036A9C6DEE6FAE7070736A7E6A81BE833486D48AA8 -8CC4528373725B966A6B940454EE56865B5D6548658566C9689F6D8D6DC60000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000723B80B491759A4D4FAF5019539A540E543C558955C55E3F5F8C673D7166 -73DD900552DB52F3586458CE7104718F71FB85B08A13668885A855A76684714A -8431534955996BC15F595FBD63EE668971478AF18F1D9EBE4F11643A70CB7566 -866760648B4E9DF8514751F653086D3680F89ED166156B23709875D554035C79 -7D078A166B206B3D6B46543860706D3D7FD5820850D651DE559C566B56CD59EC -5B095E0C619961986231665E66E6719971B971BA72A779A77A007FB28A700000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/macCentEuro.enc b/src/runtime/tcl_library/encoding/macCentEuro.enc deleted file mode 100644 index dde616a4..00000000 --- a/src/runtime/tcl_library/encoding/macCentEuro.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macCentEuro, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C40100010100C9010400D600DC00E10105010C00E4010D0106010700E90179 -017A010E00ED010F01120113011600F3011700F400F600F500FA011A011B00FC -202000B0011800A300A7202200B600DF00AE00A92122011900A822600123012E -012F012A22642265012B0136220222110142013B013C013D013E0139013A0145 -0146014300AC221A01440147220600AB00BB202600A00148015000D50151014C -20132014201C201D2018201900F725CA014D0154015501582039203A01590156 -01570160201A201E0161015A015B00C10164016500CD017D017E016A00D300D4 -016B016E00DA016F017001710172017300DD00FD0137017B0141017C012202C7 diff --git a/src/runtime/tcl_library/encoding/macCroatian.enc b/src/runtime/tcl_library/encoding/macCroatian.enc deleted file mode 100644 index c23d0f0b..00000000 --- a/src/runtime/tcl_library/encoding/macCroatian.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macCroatian, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C400C500C700C900D100D600DC00E100E000E200E400E300E500E700E900E8 -00EA00EB00ED00EC00EE00EF00F100F300F200F400F600F500FA00F900FB00FC -202000B000A200A300A7202200B600DF00AE0160212200B400A82260017D00D8 -221E00B122642265220600B522022211220F0161222B00AA00BA03A9017E00F8 -00BF00A100AC221A01922248010600AB010C202600A000C000C300D501520153 -01102014201C201D2018201900F725CAF8FF00A9204420AC2039203A00C600BB -201300B7201A201E203000C2010700C1010D00C800CD00CE00CF00CC00D300D4 -011100D200DA00DB00D9013102C602DC00AF03C000CB02DA00B800CA00E602C7 diff --git a/src/runtime/tcl_library/encoding/macCyrillic.enc b/src/runtime/tcl_library/encoding/macCyrillic.enc deleted file mode 100644 index e657739b..00000000 --- a/src/runtime/tcl_library/encoding/macCyrillic.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macCyrillic, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0410041104120413041404150416041704180419041A041B041C041D041E041F -0420042104220423042404250426042704280429042A042B042C042D042E042F -202000B0049000A300A7202200B6040600AE00A9212204020452226004030453 -221E00B122642265045600B504910408040404540407045704090459040A045A -0458040500AC221A01922248220600AB00BB202600A0040B045B040C045C0455 -20132014201C201D2018201900F7201E040E045E040F045F211604010451044F -0430043104320433043404350436043704380439043A043B043C043D043E043F -0440044104420443044404450446044704480449044A044B044C044D044E20AC diff --git a/src/runtime/tcl_library/encoding/macDingbats.enc b/src/runtime/tcl_library/encoding/macDingbats.enc deleted file mode 100644 index 9fa47b56..00000000 --- a/src/runtime/tcl_library/encoding/macDingbats.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macDingbats, single-byte -S -003F 1 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -00202701270227032704260E2706270727082709261B261E270C270D270E270F -2710271127122713271427152716271727182719271A271B271C271D271E271F -2720272127222723272427252726272726052729272A272B272C272D272E272F -2730273127322733273427352736273727382739273A273B273C273D273E273F -2740274127422743274427452746274727482749274A274B25CF274D25A0274F -27502751275225B225BC25C6275625D727582759275A275B275C275D275E007F -F8D7F8D8F8D9F8DAF8DBF8DCF8DDF8DEF8DFF8E0F8E1F8E2F8E3F8E400000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000276127622763276427652766276726632666266526602460246124622463 -2464246524662467246824692776277727782779277A277B277C277D277E277F -2780278127822783278427852786278727882789278A278B278C278D278E278F -2790279127922793279421922194219527982799279A279B279C279D279E279F -27A027A127A227A327A427A527A627A727A827A927AA27AB27AC27AD27AE27AF -000027B127B227B327B427B527B627B727B827B927BA27BB27BC27BD27BE0000 diff --git a/src/runtime/tcl_library/encoding/macGreek.enc b/src/runtime/tcl_library/encoding/macGreek.enc deleted file mode 100644 index 67b9953d..00000000 --- a/src/runtime/tcl_library/encoding/macGreek.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macGreek, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C400B900B200C900B300D600DC038500E000E200E4038400A800E700E900E8 -00EA00EB00A3212200EE00EF202200BD203000F400F600A600AD00F900FB00FC -2020039303940398039B039E03A000DF00AE00A903A303AA00A7226000B000B7 -039100B12264226500A503920395039603970399039A039C03A603AB03A803A9 -03AC039D00AC039F03A1224803A400AB00BB202600A003A503A7038603880153 -20132015201C201D2018201900F70389038A038C038E03AD03AE03AF03CC038F -03CD03B103B203C803B403B503C603B303B703B903BE03BA03BB03BC03BD03BF -03C003CE03C103C303C403B803C903C203C703C503B603CA03CB039003B0F8A0 diff --git a/src/runtime/tcl_library/encoding/macIceland.enc b/src/runtime/tcl_library/encoding/macIceland.enc deleted file mode 100644 index c6360698..00000000 --- a/src/runtime/tcl_library/encoding/macIceland.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macIceland, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C400C500C700C900D100D600DC00E100E000E200E400E300E500E700E900E8 -00EA00EB00ED00EC00EE00EF00F100F300F200F400F600F500FA00F900FB00FC -00DD00B000A200A300A7202200B600DF00AE00A9212200B400A8226000C600D8 -221E00B12264226500A500B522022211220F03C0222B00AA00BA03A900E600F8 -00BF00A100AC221A01922248220600AB00BB202600A000C000C300D501520153 -20132014201C201D2018201900F725CA00FF0178204420AC00D000F000DE00FE -00FD00B7201A201E203000C200CA00C100CB00C800CD00CE00CF00CC00D300D4 -F8FF00D200DA00DB00D9013102C602DC00AF02D802D902DA00B802DD02DB02C7 diff --git a/src/runtime/tcl_library/encoding/macJapan.enc b/src/runtime/tcl_library/encoding/macJapan.enc deleted file mode 100644 index 9f3f03b7..00000000 --- a/src/runtime/tcl_library/encoding/macJapan.enc +++ /dev/null @@ -1,785 +0,0 @@ -# Encoding file: macJapan, multi-byte -M -003F 0 46 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00A0FF61FF62FF63FF64FF65FF66FF67FF68FF69FF6AFF6BFF6CFF6DFF6EFF6F -FF70FF71FF72FF73FF74FF75FF76FF77FF78FF79FF7AFF7BFF7CFF7DFF7EFF7F -FF80FF81FF82FF83FF84FF85FF86FF87FF88FF89FF8AFF8BFF8CFF8DFF8EFF8F -FF90FF91FF92FF93FF94FF95FF96FF97FF98FF99FF9AFF9BFF9CFF9DFF9EFF9F -0000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000A921222026 -81 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -300030013002FF0CFF0E30FBFF1AFF1BFF1FFF01309B309C00B4FF4000A8FF3E -203EFF3F30FD30FE309D309E30034EDD30053006300730FC20142010FF0FFF3C -301C2016FF5C22EF202520182019201C201DFF08FF0930143015FF3BFF3DFF5B -FF5D30083009300A300B300C300D300E300F30103011FF0B221200B100D70000 -00F7FF1D2260FF1CFF1E22662267221E22342642264000B0203220332103FFE5 -FF0400A200A3FF05FF03FF06FF0AFF2000A72606260525CB25CF25CE25C725C6 -25A125A025B325B225BD25BC203B301221922190219121933013000000000000 -000000000000000000000000000000002208220B2286228722822283222A2229 -000000000000000000000000000000002227222800AC21D221D4220022030000 -0000000000000000000000000000000000000000222022A52312220222072261 -2252226A226B221A223D221D2235222B222C0000000000000000000000000000 -212B2030266F266D266A2020202100B6000000000000000025EF000000000000 -82 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000FF10 -FF11FF12FF13FF14FF15FF16FF17FF18FF190000000000000000000000000000 -FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2FFF30 -FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3A000000000000000000000000 -0000FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5A00000000000000003041 -30423043304430453046304730483049304A304B304C304D304E304F30503051 -30523053305430553056305730583059305A305B305C305D305E305F30603061 -30623063306430653066306730683069306A306B306C306D306E306F30703071 -30723073307430753076307730783079307A307B307C307D307E307F30803081 -30823083308430853086308730883089308A308B308C308D308E308F30903091 -3092309300000000000000000000000000000000000000000000000000000000 -83 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF30B0 -30B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF30C0 -30C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF30D0 -30D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF0000 -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000391 -03920393039403950396039703980399039A039B039C039D039E039F03A003A1 -03A303A403A503A603A703A803A90000000000000000000000000000000003B1 -03B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF03C003C1 -03C303C403C503C603C703C803C9000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -84 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -04100411041204130414041504010416041704180419041A041B041C041D041E -041F0420042104220423042404250426042704280429042A042B042C042D042E -042F000000000000000000000000000000000000000000000000000000000000 -04300431043204330434043504510436043704380439043A043B043C043D0000 -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000002500 -2502250C251025182514251C252C25242534253C25012503250F2513251B2517 -25232533252B253B254B2520252F25282537253F251D25302525253825420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -85 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -2460246124622463246424652466246724682469246A246B246C246D246E246F -2470247124722473000000000000000000000000000000000000000024742475 -2476247724782479247A247B247C247D247E247F248024812482248324842485 -2486248700000000000000000000000000000000000000002776277727780000 -2779277A277B277C277D277E0000000000000000000000000000000000000000 -0000F8A124882489248A248B248C248D248E248F249000000000000000002160 -216121622163216421652166216721682169216A216BF8A2F8A3F8A400000000 -0000000000002170217121722173217421752176217721782179217A217BF8A5 -F8A6F8A700000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000249C249D249E249F24A0 -24A124A224A324A424A524A624A724A824A924AA24AB24AC24AD24AE24AF24B0 -24B124B224B324B424B500000000000000000000000000000000000000000000 -86 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -339C339F339D33A033A4F8A833A133A5339E33A2338EF8A9338F33C433963397 -F8AA339833B333B233B133B0210933D433CB3390338533863387F8AB00000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000211633CD2121F8AC2664 -2667266126622660266326652666000000000000000000000000000000000000 -0000000000003020260E30040000000000000000000000000000000000000000 -0000000000000000000000000000261E261C261D261F21C621C421C5F8AD21E8 -21E621E721E9F8AEF8AFF8B0F8B1000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -87 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -3230322A322B322C322D322E322F32403237324232433239323A3231323E3234 -3232323B323632333235323C323D323F32380000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000059275C0F32A432A532A632A732A832A93296329D3298329E63A732993349 -3322334D3314331633053333334E330333363318331533273351334A33393357 -330D334233233326333B332B00000000000000000000000000003300331E332A -3331334700000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000337E337D337C337B0000000000000000000000000000 -0000000000000000000000000000000000000000337FF8B2F8B3000000000000 -88 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -222E221F22BF0000000000000000000000000000000000000000000000000000 -0000000000000000301DF8B40000000000000000000000000000000000000000 -000000000000000000000000000000003094000030F730F830F930FA00000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000004E9C -55165A03963F54C0611B632859F690228475831C7A5060AA63E16E2565ED8466 -82A69BF56893572765A162715B9B59D0867B98F47D627DBE9B8E62167C9F88B7 -5B895EB563096697684895C7978D674F4EE54F0A4F4D4F9D504956F2593759D4 -5A015C0960DF610F61706613690570BA754F757079FB7DAD7DEF80C3840E8863 -8B029055907A533B4E954EA557DF80B290C178EF4E0058F16EA290387A328328 -828B9C2F5141537054BD54E156E059FB5F1598F26DEB80E4852D000000000000 -89 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9662967096A097FB540B53F35B8770CF7FBD8FC296E8536F9D5C7ABA4E117893 -81FC6E26561855046B1D851A9C3B59E553A96D6674DC958F56424E91904B96F2 -834F990C53E155B65B305F71662066F368046C386CF36D29745B76C87A4E9834 -82F1885B8A6092ED6DB275AB76CA99C560A68B018D8A95B2698E53AD51860000 -5712583059445BB45EF6602863A963F46CBF6F14708E7114715971D5733F7E01 -827682D185979060925B9D1B586965BC6C5A752551F9592E59655F805FDC62BC -65FA6A2A6B276BB4738B7FC189569D2C9D0E9EC45CA16C96837B51045C4B61B6 -81C6687672614E594FFA537860696E297A4F97F34E0B53164EEE4F554F3D4FA1 -4F7352A053EF5609590F5AC15BB65BE179D16687679C67B66B4C6CB3706B73C2 -798D79BE7A3C7B8782B182DB8304837783EF83D387668AB256298CA88FE6904E -971E868A4FC45CE862117259753B81E582BD86FE8CC096C5991399D54ECB4F1A -89E356DE584A58CA5EFB5FEB602A6094606261D0621262D06539000000000000 -8A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9B41666668B06D777070754C76867D7582A587F9958B968E8C9D51F152BE5916 -54B35BB35D16616869826DAF788D84CB88578A7293A79AB86D6C99A886D957A3 -67FF86CE920E5283568754045ED362E164B9683C68386BBB737278BA7A6B899A -89D28D6B8F0390ED95A3969497695B665CB3697D984D984E639B7B206A2B0000 -6A7F68B69C0D6F5F5272559D607062EC6D3B6E076ED1845B89108F444E149C39 -53F6691B6A3A9784682A515C7AC384B291DC938C565B9D286822830584317CA5 -520882C574E64E7E4F8351A05BD2520A52D852E75DFB559A582A59E65B8C5B98 -5BDB5E725E7960A3611F616361BE63DB656267D1685368FA6B3E6B536C576F22 -6F976F4574B0751876E3770B7AFF7BA17C217DE97F367FF0809D8266839E89B3 -8ACC8CAB908494519593959195A2966597D3992882184E38542B5CB85DCC73A9 -764C773C5CA97FEB8D0B96C19811985498584F014F0E5371559C566857FA5947 -5B095BC45C905E0C5E7E5FCC63EE673A65D765E2671F68CB68C4000000000000 -8B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A5F5E306BC56C176C7D757F79485B637A007D005FBD898F8A188CB48D778ECC -8F1D98E29A0E9B3C4E80507D510059935B9C622F628064EC6B3A72A075917947 -7FA987FB8ABC8B7063AC83CA97A05409540355AB68546A588A70782767759ECD -53745BA2811A865090064E184E454EC74F1153CA54385BAE5F13602565510000 -673D6C426C726CE3707874037A767AAE7B087D1A7CFE7D6665E7725B53BB5C45 -5DE862D262E063196E20865A8A318DDD92F86F0179A69B5A4EA84EAB4EAC4F9B -4FA050D151477AF6517151F653545321537F53EB55AC58835CE15F375F4A602F -6050606D631F65596A4B6CC172C272ED77EF80F881058208854E90F793E197FF -99579A5A4EF051DD5C2D6681696D5C4066F26975738968507C8150C552E45747 -5DFE932665A46B236B3D7434798179BD7B4B7DCA82B983CC887F895F8B398FD1 -91D1541F92804E5D503653E5533A72D7739677E982E68EAF99C699C899D25177 -611A865E55B07A7A50765BD3904796854E326ADB91E75C515C48000000000000 -8C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63987A9F6C9397748F617AAA718A96887C8268177E706851936C52F2541B85AB -8A137FA48ECD90E15366888879414FC250BE521151445553572D73EA578B5951 -5F625F8460756176616761A963B2643A656C666F68426E1375667A3D7CFB7D4C -7D997E4B7F6B830E834A86CD8A088A638B668EFD981A9D8F82B88FCE9BE80000 -5287621F64836FC09699684150916B206C7A6F547A747D5088408A2367084EF6 -503950265065517C5238526355A7570F58055ACC5EFA61B261F862F36372691C -6A29727D72AC732E7814786F7D79770C80A9898B8B198CE28ED290639375967A -98559A139E785143539F53B35E7B5F266E1B6E90738473FE7D4382378A008AFA -96504E4E500B53E4547C56FA59D15B645DF15EAB5F276238654567AF6E5672D0 -7CCA88B480A180E183F0864E8A878DE8923796C798679F134E944E924F0D5348 -5449543E5A2F5F8C5FA1609F68A76A8E745A78818A9E8AA48B7791904E5E9BC9 -4EA44F7C4FAF501950165149516C529F52B952FE539A53E35411000000000000 -8D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -540E5589575157A2597D5B545B5D5B8F5DE55DE75DF75E785E835E9A5EB75F18 -6052614C629762D863A7653B6602664366F4676D6821689769CB6C5F6D2A6D69 -6E2F6E9D75327687786C7A3F7CE07D057D187D5E7DB18015800380AF80B18154 -818F822A8352884C88618B1B8CA28CFC90CA91759271783F92FC95A4964D0000 -980599999AD89D3B525B52AB53F7540858D562F76FE08C6A8F5F9EB9514B523B -544A56FD7A4091779D609ED273446F09817075115FFD60DA9AA872DB8FBC6B64 -98034ECA56F0576458BE5A5A606861C7660F6606683968B16DF775D57D3A826E -9B424E9B4F5053C955065D6F5DE65DEE67FB6C99747378028A50939688DF5750 -5EA7632B50B550AC518D670054C9585E59BB5BB05F69624D63A1683D6B736E08 -707D91C7728078157826796D658E7D3083DC88C18F09969B5264572867507F6A -8CA151B45742962A583A698A80B454B25D0E57FC78959DFA4F5C524A548B643E -6628671467F57A847B567D22932F685C9BAD7B395319518A5237000000000000 -8E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5BDF62F664AE64E6672D6BBA85A996D176909BD6634C93069BAB76BF66524E09 -509853C25C7160E864926563685F71E673CA75237B977E8286958B838CDB9178 -991065AC66AB6B8B4ED54ED44F3A4F7F523A53F853F255E356DB58EB59CB59C9 -59FF5B505C4D5E025E2B5FD7601D6307652F5B5C65AF65BD65E8679D6B620000 -6B7B6C0F7345794979C17CF87D197D2B80A2810281F389968A5E8A698A668A8C -8AEE8CC78CDC96CC98FC6B6F4E8B4F3C4F8D51505B575BFA6148630166426B21 -6ECB6CBB723E74BD75D478C1793A800C803381EA84948F9E6C509E7F5F0F8B58 -9D2B7AFA8EF85B8D96EB4E0353F157F759315AC95BA460896E7F6F0675BE8CEA -5B9F85007BE0507267F4829D5C61854A7E1E820E51995C0463688D66659C716E -793E7D1780058B1D8ECA906E86C790AA501F52FA5C3A6753707C7235914C91C8 -932B82E55BC25F3160F94E3B53D65B88624B67316B8A72E973E07A2E816B8DA3 -91529996511253D7546A5BFF63886A397DAC970056DA53CE5468000000000000 -8F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B975C315DDE4FEE610162FE6D3279C079CB7D427E4D7FD281ED821F84908846 -89728B908E748F2F9031914B916C96C6919C4EC04F4F514553415F93620E67D4 -6C416E0B73637E2691CD928353D459195BBF6DD1795D7E2E7C9B587E719F51FA -88538FF04FCA5CFB662577AC7AE3821C99FF51C65FAA65EC696F6B896DF30000 -6E966F6476FE7D145DE190759187980651E6521D6240669166D96E1A5EB67DD2 -7F7266F885AF85F78AF852A953D959735E8F5F90605592E4966450B7511F52DD -5320534753EC54E8554655315617596859BE5A3C5BB55C065C0F5C115C1A5E84 -5E8A5EE05F70627F628462DB638C63776607660C662D6676677E68A26A1F6A35 -6CBC6D886E096E58713C7126716775C77701785D7901796579F07AE07B117CA7 -7D39809683D6848B8549885D88F38A1F8A3C8A548A738C618CDE91A49266937E -9418969C97984E0A4E084E1E4E575197527057CE583458CC5B225E3860C564FE -676167566D4472B675737A6384B88B7291B89320563157F498FE000000000000 -90 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62ED690D6B9671ED7E548077827289E698DF87558FB15C3B4F384FE14FB55507 -5A205BDD5BE95FC3614E632F65B0664B68EE699B6D786DF1753375B9771F795E -79E67D3381E382AF85AA89AA8A3A8EAB8F9B903291DD97074EBA4EC152035875 -58EC5C0B751A5C3D814E8A0A8FC59663976D7B258ACF9808916256F353A80000 -9017543957825E2563A86C34708A77617C8B7FE088709042915493109318968F -745E9AC45D075D69657067A28DA896DB636E6749691983C5981796C088FE6F84 -647A5BF84E16702C755D662F51C4523652E259D35F8160276210653F6574661F -667468F268166B636E057272751F76DB7CBE805658F088FD897F8AA08A938ACB -901D91929752975965897A0E810696BB5E2D60DC621A65A56614679077F37A4D -7C4D7E3E810A8CAC8D648DE18E5F78A9520762D963A5644262988A2D7A837BC0 -8AAC96EA7D76820C87494ED95148534353605BA35C025C165DDD6226624764B0 -681368346CC96D456D1767D36F5C714E717D65CB7A7F7BAD7DDA000000000000 -91 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E4A7FA8817A821B823985A68A6E8CCE8DF59078907792AD929195839BAE524D -55846F387136516879857E5581B37CCE564C58515CA863AA66FE66FD695A72D9 -758F758E790E795679DF7C977D207D4486078A34963B90619F2050E7527553CC -53E2500955AA58EE594F723D5B8B5C64531D60E360F3635C6383633F63BB0000 -64CD65E966F95DE369CD69FD6F1571E54E8975E976F87A937CDF7DCF7D9C8061 -83498358846C84BC85FB88C58D709001906D9397971C9A1250CF5897618E81D3 -85358D0890204FC3507452475373606F6349675F6E2C8DB3901F4FD75C5E8CCA -65CF7D9A53528896517663C35B585B6B5C0A640D6751905C4ED6591A592A6C70 -8A51553E581559A560F0625367C182356955964099C49A284F5358065BFE8010 -5CB15E2F5F856020614B623466FF6CF06EDE80CE817F82D4888B8CB89000902E -968A9EDB9BDB4EE353F059277B2C918D984C9DF96EDD7027535355445B856258 -629E62D36CA26FEF74228A1794386FC18AFE833851E786F853EA000000000000 -92 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53E94F4690548FB0596A81315DFD7AEA8FBF68DA8C3772F89C486A3D8AB04E39 -53585606576662C563A265E66B4E6DE16E5B70AD77ED7AEF7BAA7DBB803D80C6 -86CB8A95935B56E358C75F3E65AD66966A806BB575378AC7502477E557305F1B -6065667A6C6075F47A1A7F6E81F48718904599B37BC9755C7AF97B5184C40000 -901079E97A9283365AE177404E2D4EF25B995FE062BD663C67F16CE8866B8877 -8A3B914E92F399D06A177026732A82E784578CAF4E01514651CB558B5BF55E16 -5E335E815F145F355F6B5FB461F2631166A2671D6F6E7252753A773A80748139 -817887768ABF8ADC8D858DF3929A957798029CE552C5635776F467156C8873CD -8CC393AE96736D25589C690E69CC8FFD939A75DB901A585A680263B469FB4F43 -6F2C67D88FBB85267DB49354693F6F70576A58F75B2C7D2C722A540A91E39DB4 -4EAD4F4E505C507552438C9E544858245B9A5E1D5E955EAD5EF75F1F608C62B5 -633A63D068AF6C407887798E7A0B7DE082478A028AE68E449013000000000000 -93 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -90B8912D91D89F0E6CE5645864E265756EF476847B1B906993D16EBA54F25FB9 -64A48F4D8FED92445178586B59295C555E976DFB7E8F751C8CBC8EE2985B70B9 -4F1D6BBF6FB1753096FB514E54105835585759AC5C605F926597675C6E21767B -83DF8CED901490FD934D7825783A52AA5EA6571F597460125012515A51AC0000 -51CD520055105854585859575B955CF65D8B60BC6295642D6771684368BC68DF -76D76DD86E6F6D9B706F71C85F5375D879777B497B547B527CD67D7152308463 -856985E48A0E8B048C468E0F9003900F94199676982D9A3095D850CD52D5540C -58025C0E61A7649E6D1E77B37AE580F48404905392855CE09D07533F5F975FB3 -6D9C7279776379BF7BE46BD272EC8AAD68036A6151F87A8169345C4A9CF682EB -5BC59149701E56785C6F60C765666C8C8C5A90419813545166C7920D594890A3 -51854E4D51EA85998B0E7058637A934B696299B47E047577535769608EDF96E3 -6C5D4E8C5C3C5F108FE953028CD1808986795EFF65E54E735165000000000000 -94 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59825C3F97EE4EFB598A5FCD8A8D6FE179B079625BE78471732B71B15E745FF5 -637B649A71C37C984E435EFC4E4B57DC56A260A96FC37D0D80FD813381BF8FB2 -899786A45DF4628A64AD898767776CE26D3E743678345A467F7582AD99AC4FF3 -5EC362DD63926557676F76C3724C80CC80BA8F29914D500D57F95A9268850000 -6973716472FD8CB758F28CE0966A9019877F79E477E784294F2F5265535A62CD -67CF6CCA767D7B947C95823685848FEB66DD6F2072067E1B83AB99C19EA651FD -7BB178727BB880877B486AE85E61808C75517560516B92626E8C767A91979AEA -4F107F70629C7B4F95A59CE9567A585986E496BC4F345224534A53CD53DB5E06 -642C6591677F6C3E6C4E724872AF73ED75547E41822C85E98CA97BC491C67169 -981298EF633D6669756A76E478D0854386EE532A5351542659835E875F7C60B2 -6249627962AB65906BD46CCC75B276AE789179D87DCB7F7780A588AB8AB98CBB -907F975E98DB6A0B7C3850995C3E5FAE67876BD8743577097F8E000000000000 -95 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9F3B67CA7A175339758B9AED5F66819D83F180985F3C5FC575627B46903C6867 -59EB5A9B7D10767E8B2C4FF55F6A6A196C376F0274E2796888688A558C795EDF -63CF75C579D282D7932892F2849C86ED9C2D54C15F6C658C6D5C70158CA78CD3 -983B654F74F64E0D4ED857E0592B5A665BCC51A85E035E9C6016627665770000 -65A7666E6D6E72367B268150819A82998B5C8CA08CE68D74961C96444FAE64AB -6B66821E8461856A90E85C01695398A8847A85574F0F526F5FA95E45670D798F -8179890789866DF55F1762556CB84ECF72699B925206543B567458B361A4626E -711A596E7C897CDE7D1B96F06587805E4E194F75517558405E635E735F0A67C4 -4E26853D9589965B7C73980150FB58C1765678A7522577A585117B86504F5909 -72477BC77DE88FBA8FD4904D4FBF52C95A295F0197AD4FDD821792EA57036355 -6B69752B88DC8F147A4252DF58936155620A66AE6BCD7C3F83E950234FF85305 -5446583159495B9D5CF05CEF5D295E9662B16367653E65B9670B000000000000 -96 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6CD56CE170F978327E2B80DE82B3840C84EC870289128A2A8C4A90A692D298FD -9CF39D6C4E4F4EA1508D5256574A59A85E3D5FD85FD9623F66B4671B67D068D2 -51927D2180AA81A88B008C8C8CBF927E96325420982C531750D5535C58A864B2 -6734726777667A4691E652C36CA16B8658005E4C5954672C7FFB51E176C60000 -646978E89B549EBB57CB59B96627679A6BCE54E969D95E55819C67959BAA67FE -9C52685D4EA64FE353C862B9672B6CAB8FC44FAD7E6D9EBF4E0761626E806F2B -85135473672A9B455DF37B955CAC5BC6871C6E4A84D17A14810859997C8D6C11 -772052D959227121725F77DB97279D61690B5A7F5A1851A5540D547D660E76DF -8FF792989CF459EA725D6EC5514D68C97DBF7DEC97629EBA64786A2183025984 -5B5F6BDB731B76F27DB280178499513267289ED976EE676252FF99055C24623B -7C7E8CB0554F60B67D0B958053014E5F51B6591C723A803691CE5F2577E25384 -5F797D0485AC8A338E8D975667F385AE9453610961086CB97652000000000000 -97 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8AED8F38552F4F51512A52C753CB5BA55E7D60A0618263D6670967DA6E676D8C -733673377531795088D58A98904A909190F596C4878D59154E884F594E0E8A89 -8F3F981050AD5E7C59965BB95EB863DA63FA64C166DC694A69D86D0B6EB67194 -75287AAF7F8A8000844984C989818B218E0A9065967D990A617E62916B320000 -6C836D747FCC7FFC6DC07F8587BA88F8676583B1983C96F76D1B7D61843D916A -4E7153755D506B046FEB85CD862D89A75229540F5C65674E68A87406748375E2 -88CF88E191CC96E296785F8B73877ACB844E63A0756552896D416E9C74097559 -786B7C9296867ADC9F8D4FB6616E65C5865C4E864EAE50DA4E2151CC5BEE6599 -68816DBC731F764277AD7A1C7CE7826F8AD2907C91CF96759818529B7DD1502B -539867976DCB71D0743381E88F2A96A39C579E9F746058416D997D2F985E4EE4 -4F364F8B51B752B15DBA601C73B2793C82D3923496B796F6970A9E979F6266A6 -6B74521752A370C888C25EC9604B61906F2371497C3E7DF4806F000000000000 -98 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -84EE9023932C54429B6F6AD370898CC28DEF973252B45A415ECA5F046717697C -69946D6A6F0F726272FC7BED8001807E874B90CE516D9E937984808B93328AD6 -502D548C8A716B6A8CC4810760D167A09DF24E994E989C108A6B85C185686900 -6E7E789781550000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000005F0C -4E104E154E2A4E314E364E3C4E3F4E424E564E584E824E858C6B4E8A82125F0D -4E8E4E9E4E9F4EA04EA24EB04EB34EB64ECE4ECD4EC44EC64EC24ED74EDE4EED -4EDF4EF74F094F5A4F304F5B4F5D4F574F474F764F884F8F4F984F7B4F694F70 -4F914F6F4F864F9651184FD44FDF4FCE4FD84FDB4FD14FDA4FD04FE44FE5501A -50285014502A502550054F1C4FF650215029502C4FFE4FEF5011500650435047 -6703505550505048505A5056506C50785080509A508550B450B2000000000000 -99 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50C950CA50B350C250D650DE50E550ED50E350EE50F950F55109510151025116 -51155114511A5121513A5137513C513B513F51405152514C515451627AF85169 -516A516E5180518256D8518C5189518F519151935195519651A451A651A251A9 -51AA51AB51B351B151B251B051B551BD51C551C951DB51E0865551E951ED0000 -51F051F551FE5204520B5214520E5227522A522E52335239524F5244524B524C -525E5254526A527452695273527F527D528D529452925271528852918FA88FA7 -52AC52AD52BC52B552C152CD52D752DE52E352E698ED52E052F352F552F852F9 -530653087538530D5310530F5315531A5323532F533153335338534053465345 -4E175349534D51D6535E5369536E5918537B53775382539653A053A653A553AE -53B053B653C37C1296D953DF66FC71EE53EE53E853ED53FA5401543D5440542C -542D543C542E54365429541D544E548F5475548E545F5471547754705492547B -5480547654845490548654C754A254B854A554AC54C454C854A8000000000000 -9A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54AB54C254A454BE54BC54D854E554E6550F551454FD54EE54ED54FA54E25539 -55405563554C552E555C55455556555755385533555D5599558054AF558A559F -557B557E5598559E55AE557C558355A9558755A855DA55C555DF55C455DC55E4 -55D4561455F7561655FE55FD561B55F9564E565071DF56345636563256380000 -566B5664562F566C566A56865680568A56A05694568F56A556AE56B656B456C2 -56BC56C156C356C056C856CE56D156D356D756EE56F9570056FF570457095708 -570B570D57135718571655C7571C572657375738574E573B5740574F576957C0 -57885761577F5789579357A057B357A457AA57B057C357C657D457D257D3580A -57D657E3580B5819581D587258215862584B58706BC05852583D5879588558B9 -589F58AB58BA58DE58BB58B858AE58C558D358D158D758D958D858E558DC58E4 -58DF58EF58FA58F958FB58FC58FD5902590A5910591B68A65925592C592D5932 -5938593E7AD259555950594E595A5958596259605967596C5969000000000000 -9B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59785981599D4F5E4FAB59A359B259C659E859DC598D59D959DA5A255A1F5A11 -5A1C5A095A1A5A405A6C5A495A355A365A625A6A5A9A5ABC5ABE5ACB5AC25ABD -5AE35AD75AE65AE95AD65AFA5AFB5B0C5B0B5B165B325AD05B2A5B365B3E5B43 -5B455B405B515B555B5A5B5B5B655B695B705B735B755B7865885B7A5B800000 -5B835BA65BB85BC35BC75BC95BD45BD05BE45BE65BE25BDE5BE55BEB5BF05BF6 -5BF35C055C075C085C0D5C135C205C225C285C385C395C415C465C4E5C535C50 -5C4F5B715C6C5C6E4E625C765C795C8C5C915C94599B5CAB5CBB5CB65CBC5CB7 -5CC55CBE5CC75CD95CE95CFD5CFA5CED5D8C5CEA5D0B5D155D175D5C5D1F5D1B -5D115D145D225D1A5D195D185D4C5D525D4E5D4B5D6C5D735D765D875D845D82 -5DA25D9D5DAC5DAE5DBD5D905DB75DBC5DC95DCD5DD35DD25DD65DDB5DEB5DF2 -5DF55E0B5E1A5E195E115E1B5E365E375E445E435E405E4E5E575E545E5F5E62 -5E645E475E755E765E7A9EBC5E7F5EA05EC15EC25EC85ED05ECF000000000000 -9C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5ED65EE35EDD5EDA5EDB5EE25EE15EE85EE95EEC5EF15EF35EF05EF45EF85EFE -5F035F095F5D5F5C5F0B5F115F165F295F2D5F385F415F485F4C5F4E5F2F5F51 -5F565F575F595F615F6D5F735F775F835F825F7F5F8A5F885F915F875F9E5F99 -5F985FA05FA85FAD5FBC5FD65FFB5FE45FF85FF15FDD60B35FFF602160600000 -601960106029600E6031601B6015602B6026600F603A605A6041606A6077605F -604A6046604D6063604360646042606C606B60596081608D60E76083609A6084 -609B60966097609260A7608B60E160B860E060D360B45FF060BD60C660B560D8 -614D6115610660F660F7610060F460FA6103612160FB60F1610D610E6147613E -61286127614A613F613C612C6134613D614261446173617761586159615A616B -6174616F61656171615F615D6153617561996196618761AC6194619A618A6191 -61AB61AE61CC61CA61C961F761C861C361C661BA61CB7F7961CD61E661E361F6 -61FA61F461FF61FD61FC61FE620062086209620D620C6214621B000000000000 -9D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -621E6221622A622E6230623262336241624E625E6263625B62606268627C6282 -6289627E62926293629662D46283629462D762D162BB62CF62FF62C664D462C8 -62DC62CC62CA62C262C7629B62C9630C62EE62F163276302630862EF62F56350 -633E634D641C634F6396638E638063AB637663A3638F6389639F63B5636B0000 -636963BE63E963C063C663E363C963D263F663C4641664346406641364266436 -651D64176428640F6467646F6476644E652A6495649364A564A9648864BC64DA -64D264C564C764BB64D864C264F164E7820964E064E162AC64E364EF652C64F6 -64F464F264FA650064FD6518651C650565246523652B65346535653765366538 -754B654865566555654D6558655E655D65726578658265838B8A659B659F65AB -65B765C365C665C165C465CC65D265DB65D965E065E165F16772660A660365FB -6773663566366634661C664F664466496641665E665D666466676668665F6662 -667066836688668E668966846698669D66C166B966C966BE66BC000000000000 -9E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66C466B866D666DA66E0663F66E666E966F066F566F7670F6716671E67266727 -9738672E673F67366741673867376746675E67606759676367646789677067A9 -677C676A678C678B67A667A1678567B767EF67B467EC67B367E967B867E467DE -67DD67E267EE67B967CE67C667E76A9C681E684668296840684D6832684E0000 -68B3682B685968636877687F689F688F68AD6894689D689B68836AAE68B96874 -68B568A068BA690F688D687E690168CA690868D86922692668E1690C68CD68D4 -68E768D569366912690468D768E3692568F968E068EF6928692A691A69236921 -68C669796977695C6978696B6954697E696E69396974693D695969306961695E -695D6981696A69B269AE69D069BF69C169D369BE69CE5BE869CA69DD69BB69C3 -69A76A2E699169A0699C699569B469DE69E86A026A1B69FF6B0A69F969F269E7 -6A0569B16A1E69ED6A1469EB6A0A6A126AC16A236A136A446A0C6A726A366A78 -6A476A626A596A666A486A386A226A906A8D6AA06A846AA26AA3000000000000 -9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A9786176ABB6AC36AC26AB86AB36AAC6ADE6AD16ADF6AAA6ADA6AEA6AFB6B05 -86166AFA6B126B169B316B1F6B386B3776DC6B3998EE6B476B436B496B506B59 -6B546B5B6B5F6B616B786B796B7F6B806B846B836B8D6B986B956B9E6BA46BAA -6BAB6BAF6BB26BB16BB36BB76BBC6BC66BCB6BD36BDF6BEC6BEB6BF36BEF0000 -9EBE6C086C136C146C1B6C246C236C5E6C556C626C6A6C826C8D6C9A6C816C9B -6C7E6C686C736C926C906CC46CF16CD36CBD6CD76CC56CDD6CAE6CB16CBE6CBA -6CDB6CEF6CD96CEA6D1F884D6D366D2B6D3D6D386D196D356D336D126D0C6D63 -6D936D646D5A6D796D596D8E6D956FE46D856DF96E156E0A6DB56DC76DE66DB8 -6DC66DEC6DDE6DCC6DE86DD26DC56DFA6DD96DE46DD56DEA6DEE6E2D6E6E6E2E -6E196E726E5F6E3E6E236E6B6E2B6E766E4D6E1F6E436E3A6E4E6E246EFF6E1D -6E386E826EAA6E986EC96EB76ED36EBD6EAF6EC46EB26ED46ED56E8F6EA56EC2 -6E9F6F416F11704C6EEC6EF86EFE6F3F6EF26F316EEF6F326ECC000000000000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F3E6F136EF76F866F7A6F786F816F806F6F6F5B6FF36F6D6F826F7C6F586F8E -6F916FC26F666FB36FA36FA16FA46FB96FC66FAA6FDF6FD56FEC6FD46FD86FF1 -6FEE6FDB7009700B6FFA70117001700F6FFE701B701A6F74701D7018701F7030 -703E7032705170637099709270AF70F170AC70B870B370AE70DF70CB70DD0000 -70D9710970FD711C711971657155718871667162714C7156716C718F71FB7184 -719571A871AC71D771B971BE71D271C971D471CE71E071EC71E771F571FC71F9 -71FF720D7210721B7228722D722C72307232723B723C723F72407246724B7258 -7274727E7282728172877292729672A272A772B972B272C372C672C472CE72D2 -72E272E072E172F972F7500F7317730A731C7316731D7334732F73297325733E -734E734F9ED87357736A7368737073787375737B737A73C873B373CE73BB73C0 -73E573EE73DE74A27405746F742573F87432743A7455743F745F74597441745C -746974707463746A7476747E748B749E74A774CA74CF74D473F1000000000000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74E074E374E774E974EE74F274F074F174F874F7750475037505750C750E750D -75157513751E7526752C753C7544754D754A7549755B7546755A756975647567 -756B756D75787576758675877574758A758975827594759A759D75A575A375C2 -75B375C375B575BD75B875BC75B175CD75CA75D275D975E375DE75FE75FF0000 -75FC760175F075FA75F275F3760B760D7609761F762776207621762276247634 -7630763B764776487646765C76587661766276687669766A7667766C76707672 -76767678767C768076837688768B768E769676937699769A76B076B476B876B9 -76BA76C276CD76D676D276DE76E176E576E776EA862F76FB7708770777047729 -7724771E77257726771B773777387747775A7768776B775B7765777F777E7779 -778E778B779177A0779E77B077B677B977BF77BC77BD77BB77C777CD77D777DA -77DC77E377EE77FC780C781279267820792A7845788E78747886787C789A788C -78A378B578AA78AF78D178C678CB78D478BE78BC78C578CA78EC000000000000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -78E778DA78FD78F47907791279117919792C792B794079607957795F795A7955 -7953797A797F798A799D79A79F4B79AA79AE79B379B979BA79C979D579E779EC -79E179E37A087A0D7A187A197A207A1F79807A317A3B7A3E7A377A437A577A49 -7A617A627A699F9D7A707A797A7D7A887A977A957A987A967AA97AC87AB00000 -7AB67AC57AC47ABF90837AC77ACA7ACD7ACF7AD57AD37AD97ADA7ADD7AE17AE2 -7AE67AED7AF07B027B0F7B0A7B067B337B187B197B1E7B357B287B367B507B7A -7B047B4D7B0B7B4C7B457B757B657B747B677B707B717B6C7B6E7B9D7B987B9F -7B8D7B9C7B9A7B8B7B927B8F7B5D7B997BCB7BC17BCC7BCF7BB47BC67BDD7BE9 -7C117C147BE67BE57C607C007C077C137BF37BF77C177C0D7BF67C237C277C2A -7C1F7C377C2B7C3D7C4C7C437C547C4F7C407C507C587C5F7C647C567C657C6C -7C757C837C907CA47CAD7CA27CAB7CA17CA87CB37CB27CB17CAE7CB97CBD7CC0 -7CC57CC27CD87CD27CDC7CE29B3B7CEF7CF27CF47CF67CFA7D06000000000000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D027D1C7D157D0A7D457D4B7D2E7D327D3F7D357D467D737D567D4E7D727D68 -7D6E7D4F7D637D937D897D5B7D8F7D7D7D9B7DBA7DAE7DA37DB57DC77DBD7DAB -7E3D7DA27DAF7DDC7DB87D9F7DB07DD87DDD7DE47DDE7DFB7DF27DE17E057E0A -7E237E217E127E317E1F7E097E0B7E227E467E667E3B7E357E397E437E370000 -7E327E3A7E677E5D7E567E5E7E597E5A7E797E6A7E697E7C7E7B7E837DD57E7D -8FAE7E7F7E887E897E8C7E927E907E937E947E967E8E7E9B7E9C7F387F3A7F45 -7F4C7F4D7F4E7F507F517F557F547F587F5F7F607F687F697F677F787F827F86 -7F837F887F877F8C7F947F9E7F9D7F9A7FA37FAF7FB27FB97FAE7FB67FB88B71 -7FC57FC67FCA7FD57FD47FE17FE67FE97FF37FF998DC80068004800B80128018 -8019801C80218028803F803B804A804680528058805A805F8062806880738072 -807080768079807D807F808480868085809B8093809A80AD519080AC80DB80E5 -80D980DD80C480DA80D6810980EF80F1811B81298123812F814B000000000000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -968B8146813E8153815180FC8171816E81658166817481838188818A81808182 -81A0819581A481A3815F819381A981B081B581BE81B881BD81C081C281BA81C9 -81CD81D181D981D881C881DA81DF81E081E781FA81FB81FE8201820282058207 -820A820D821082168229822B82388233824082598258825D825A825F82640000 -82628268826A826B822E827182778278827E828D829282AB829F82BB82AC82E1 -82E382DF82D282F482F382FA8393830382FB82F982DE830682DC830982D98335 -83348316833283318340833983508345832F832B831783188385839A83AA839F -83A283968323838E8387838A837C83B58373837583A0838983A883F4841383EB -83CE83FD840383D8840B83C183F7840783E083F2840D8422842083BD84388506 -83FB846D842A843C855A84848477846B84AD846E848284698446842C846F8479 -843584CA846284B984BF849F84D984CD84BB84DA84D084C184C684D684A18521 -84FF84F485178518852C851F8515851484FC8540856385588548000000000000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -85418602854B8555858085A485888591858A85A8856D8594859B85EA8587859C -8577857E859085C985BA85CF85B985D085D585DD85E585DC85F9860A8613860B -85FE85FA86068622861A8630863F864D4E558654865F86678671869386A386A9 -86AA868B868C86B686AF86C486C686B086C9882386AB86D486DE86E986EC0000 -86DF86DB86EF8712870687088700870386FB87118709870D86F9870A8734873F -8737873B87258729871A8760875F8778874C874E877487578768876E87598753 -8763876A880587A2879F878287AF87CB87BD87C087D096D687AB87C487B387C7 -87C687BB87EF87F287E0880F880D87FE87F687F7880E87D28811881688158822 -88218831883688398827883B8844884288528859885E8862886B8881887E889E -8875887D88B5887288828897889288AE889988A2888D88A488B088BF88B188C3 -88C488D488D888D988DD88F9890288FC88F488E888F28904890C890A89138943 -891E8925892A892B89418944893B89368938894C891D8960895E000000000000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89668964896D896A896F89748977897E89838988898A8993899889A189A989A6 -89AC89AF89B289BA89BD89BF89C089DA89DC89DD89E789F489F88A038A168A10 -8A0C8A1B8A1D8A258A368A418A5B8A528A468A488A7C8A6D8A6C8A628A858A82 -8A848AA88AA18A918AA58AA68A9A8AA38AC48ACD8AC28ADA8AEB8AF38AE70000 -8AE48AF18B148AE08AE28AF78ADE8ADB8B0C8B078B1A8AE18B168B108B178B20 -8B3397AB8B268B2B8B3E8B288B418B4C8B4F8B4E8B498B568B5B8B5A8B6B8B5F -8B6C8B6F8B748B7D8B808B8C8B8E8B928B938B968B998B9A8C3A8C418C3F8C48 -8C4C8C4E8C508C558C628C6C8C788C7A8C828C898C858C8A8C8D8C8E8C948C7C -8C98621D8CAD8CAA8CBD8CB28CB38CAE8CB68CC88CC18CE48CE38CDA8CFD8CFA -8CFB8D048D058D0A8D078D0F8D0D8D109F4E8D138CCD8D148D168D678D6D8D71 -8D738D818D998DC28DBE8DBA8DCF8DDA8DD68DCC8DDB8DCB8DEA8DEB8DDF8DE3 -8DFC8E088E098DFF8E1D8E1E8E108E1F8E428E358E308E348E4A000000000000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E478E498E4C8E508E488E598E648E608E2A8E638E558E768E728E7C8E818E87 -8E858E848E8B8E8A8E938E918E948E998EAA8EA18EAC8EB08EC68EB18EBE8EC5 -8EC88ECB8EDB8EE38EFC8EFB8EEB8EFE8F0A8F058F158F128F198F138F1C8F1F -8F1B8F0C8F268F338F3B8F398F458F428F3E8F4C8F498F468F4E8F578F5C0000 -8F628F638F648F9C8F9F8FA38FAD8FAF8FB78FDA8FE58FE28FEA8FEF90878FF4 -90058FF98FFA901190159021900D901E9016900B90279036903590398FF8904F -905090519052900E9049903E90569058905E9068906F907696A890729082907D -90819080908A9089908F90A890AF90B190B590E290E4624890DB910291129119 -91329130914A9156915891639165916991739172918B9189918291A291AB91AF -91AA91B591B491BA91C091C191C991CB91D091D691DF91E191DB91FC91F591F6 -921E91FF9214922C92159211925E925792459249926492489295923F924B9250 -929C92969293929B925A92CF92B992B792E9930F92FA9344932E000000000000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -93199322931A9323933A9335933B935C9360937C936E935693B093AC93AD9394 -93B993D693D793E893E593D893C393DD93D093C893E4941A9414941394039407 -94109436942B94359421943A944194529444945B94609462945E946A92299470 -94759477947D945A947C947E9481947F95829587958A95949596959895990000 -95A095A895A795AD95BC95BB95B995BE95CA6FF695C395CD95CC95D595D495D6 -95DC95E195E595E296219628962E962F9642964C964F964B9677965C965E965D -965F96669672966C968D96989695969796AA96A796B196B296B096B496B696B8 -96B996CE96CB96C996CD894D96DC970D96D596F99704970697089713970E9711 -970F971697199724972A97309739973D973E97449746974897429749975C9760 -97649766976852D2976B977197799785977C9781977A9786978B978F9790979C -97A897A697A397B397B497C397C697C897CB97DC97ED9F4F97F27ADF97F697F5 -980F980C9838982498219837983D9846984F984B986B986F9870000000000000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -98719874987398AA98AF98B198B698C498C398C698E998EB9903990999129914 -99189921991D991E99249920992C992E993D993E9942994999459950994B9951 -9952994C99559997999899A599AD99AE99BC99DF99DB99DD99D899D199ED99EE -99F199F299FB99F89A019A0F9A0599E29A199A2B9A379A459A429A409A430000 -9A3E9A559A4D9A5B9A579A5F9A629A659A649A699A6B9A6A9AAD9AB09ABC9AC0 -9ACF9AD19AD39AD49ADE9ADF9AE29AE39AE69AEF9AEB9AEE9AF49AF19AF79AFB -9B069B189B1A9B1F9B229B239B259B279B289B299B2A9B2E9B2F9B329B449B43 -9B4F9B4D9B4E9B519B589B749B939B839B919B969B979B9F9BA09BA89BB49BC0 -9BCA9BB99BC69BCF9BD19BD29BE39BE29BE49BD49BE19C3A9BF29BF19BF09C15 -9C149C099C139C0C9C069C089C129C0A9C049C2E9C1B9C259C249C219C309C47 -9C329C469C3E9C5A9C609C679C769C789CE79CEC9CF09D099D089CEB9D039D06 -9D2A9D269DAF9D239D1F9D449D159D129D419D3F9D3E9D469D48000000000000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9D5D9D5E9D649D519D509D599D729D899D879DAB9D6F9D7A9D9A9DA49DA99DB2 -9DC49DC19DBB9DB89DBA9DC69DCF9DC29DD99DD39DF89DE69DED9DEF9DFD9E1A -9E1B9E1E9E759E799E7D9E819E889E8B9E8C9E929E959E919E9D9EA59EA99EB8 -9EAA9EAD97619ECC9ECE9ECF9ED09ED49EDC9EDE9EDD9EE09EE59EE89EEF0000 -9EF49EF69EF79EF99EFB9EFC9EFD9F079F0876B79F159F219F2C9F3E9F4A9F52 -9F549F639F5F9F609F619F669F679F6C9F6A9F779F729F769F959F9C9FA0582F -69C79059746451DC719900000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -EB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F8B5F8B60000000000000000000000000000000000000000000000000000 -F8B7FE33000000000000000000000000000000000000F8B8FE31F8B900000000 -F8BAF8BBF8BCF8BDFE300000000000000000FE35FE36FE39FE3AF8BEF8BFFE37 -FE38FE3FFE40FE3DFE3EFE41FE42FE43FE44FE3BFE3C00000000000000000000 -0000F8C000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000F8C1 -0000F8C20000F8C30000F8C40000F8C500000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F8C600000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000F8C70000F8C80000F8C9000000000000000000000000F8CA000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -ED -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -F8CB0000F8CC0000F8CD0000F8CE0000F8CF0000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000000F8D00000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000000000F8D10000F8D20000F8D3000000000000000000000000F8D40000 -00000000000000000000F8D5F8D6000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/runtime/tcl_library/encoding/macRoman.enc b/src/runtime/tcl_library/encoding/macRoman.enc deleted file mode 100644 index 15de2662..00000000 --- a/src/runtime/tcl_library/encoding/macRoman.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macRoman, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C400C500C700C900D100D600DC00E100E000E200E400E300E500E700E900E8 -00EA00EB00ED00EC00EE00EF00F100F300F200F400F600F500FA00F900FB00FC -202000B000A200A300A7202200B600DF00AE00A9212200B400A8226000C600D8 -221E00B12264226500A500B522022211220F03C0222B00AA00BA03A900E600F8 -00BF00A100AC221A01922248220600AB00BB202600A000C000C300D501520153 -20132014201C201D2018201900F725CA00FF0178204420AC2039203AFB01FB02 -202100B7201A201E203000C200CA00C100CB00C800CD00CE00CF00CC00D300D4 -F8FF00D200DA00DB00D9013102C602DC00AF02D802D902DA00B802DD02DB02C7 diff --git a/src/runtime/tcl_library/encoding/macRomania.enc b/src/runtime/tcl_library/encoding/macRomania.enc deleted file mode 100644 index ce41cf42..00000000 --- a/src/runtime/tcl_library/encoding/macRomania.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macRomania, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C400C500C700C900D100D600DC00E100E000E200E400E300E500E700E900E8 -00EA00EB00ED00EC00EE00EF00F100F300F200F400F600F500FA00F900FB00FC -202000B000A200A300A7202200B600DF00AE00A9212200B400A822600102015E -221E00B12264226500A500B522022211220F03C0222B00AA00BA21260103015F -00BF00A100AC221A01922248220600AB00BB202600A000C000C300D501520153 -20132014201C201D2018201900F725CA00FF0178204400A42039203A01620163 -202100B7201A201E203000C200CA00C100CB00C800CD00CE00CF00CC00D300D4 -F8FF00D200DA00DB00D9013102C602DC00AF02D802D902DA00B802DD02DB02C7 diff --git a/src/runtime/tcl_library/encoding/macThai.enc b/src/runtime/tcl_library/encoding/macThai.enc deleted file mode 100644 index 7d9c8ad4..00000000 --- a/src/runtime/tcl_library/encoding/macThai.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macThai, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00AB00BB2026F88CF88FF892F895F898F88BF88EF891F894F897201C201DF899 -FFFD2022F884F889F885F886F887F888F88AF88DF890F893F89620182019FFFD -00A00E010E020E030E040E050E060E070E080E090E0A0E0B0E0C0E0D0E0E0E0F -0E100E110E120E130E140E150E160E170E180E190E1A0E1B0E1C0E1D0E1E0E1F -0E200E210E220E230E240E250E260E270E280E290E2A0E2B0E2C0E2D0E2E0E2F -0E300E310E320E330E340E350E360E370E380E390E3AFEFF200B201320140E3F -0E400E410E420E430E440E450E460E470E480E490E4A0E4B0E4C0E4D21220E4F -0E500E510E520E530E540E550E560E570E580E5900AE00A9FFFDFFFDFFFDFFFD diff --git a/src/runtime/tcl_library/encoding/macTurkish.enc b/src/runtime/tcl_library/encoding/macTurkish.enc deleted file mode 100644 index f9542ae5..00000000 --- a/src/runtime/tcl_library/encoding/macTurkish.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macTurkish, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -00C400C500C700C900D100D600DC00E100E000E200E400E300E500E700E900E8 -00EA00EB00ED00EC00EE00EF00F100F300F200F400F600F500FA00F900FB00FC -202000B000A200A300A7202200B600DF00AE00A9212200B400A8226000C600D8 -221E00B12264226500A500B522022211220F03C0222B00AA00BA03A900E600F8 -00BF00A100AC221A01922248220600AB00BB202600A000C000C300D501520153 -20132014201C201D2018201900F725CA00FF0178011E011F01300131015E015F -202100B7201A201E203000C200CA00C100CB00C800CD00CE00CF00CC00D300D4 -F8FF00D200DA00DB00D9F8A002C602DC00AF02D802D902DA00B802DD02DB02C7 diff --git a/src/runtime/tcl_library/encoding/macUkraine.enc b/src/runtime/tcl_library/encoding/macUkraine.enc deleted file mode 100644 index 643cc45e..00000000 --- a/src/runtime/tcl_library/encoding/macUkraine.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: macUkraine, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0410041104120413041404150416041704180419041A041B041C041D041E041F -0420042104220423042404250426042704280429042A042B042C042D042E042F -202000B0049000A300A7202200B6040600AE00A9212204020452226004030453 -221E00B122642265045600B504910408040404540407045704090459040A045A -0458040500AC221A01922248220600AB00BB202600A0040B045B040C045C0455 -20132014201C201D2018201900F7201E040E045E040F045F211604010451044F -0430043104320433043404350436043704380439043A043B043C043D043E043F -0440044104420443044404450446044704480449044A044B044C044D044E00A4 diff --git a/src/runtime/tcl_library/encoding/shiftjis.enc b/src/runtime/tcl_library/encoding/shiftjis.enc deleted file mode 100644 index 3ba972e3..00000000 --- a/src/runtime/tcl_library/encoding/shiftjis.enc +++ /dev/null @@ -1,690 +0,0 @@ -# Encoding file: shiftjis, multi-byte -M -003F 0 40 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000FF61FF62FF63FF64FF65FF66FF67FF68FF69FF6AFF6BFF6CFF6DFF6EFF6F -FF70FF71FF72FF73FF74FF75FF76FF77FF78FF79FF7AFF7BFF7CFF7DFF7EFF7F -FF80FF81FF82FF83FF84FF85FF86FF87FF88FF89FF8AFF8BFF8CFF8DFF8EFF8F -FF90FF91FF92FF93FF94FF95FF96FF97FF98FF99FF9AFF9BFF9CFF9DFF9EFF9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -81 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -300030013002FF0CFF0E30FBFF1AFF1BFF1FFF01309B309C00B4FF4000A8FF3E -FFE3FF3F30FD30FE309D309E30034EDD30053006300730FC20152010FF0FFF3C -301C2016FF5C2026202520182019201C201DFF08FF0930143015FF3BFF3DFF5B -FF5D30083009300A300B300C300D300E300F30103011FF0B221200B100D70000 -00F7FF1D2260FF1CFF1E22662267221E22342642264000B0203220332103FFE5 -FF0400A200A3FF05FF03FF06FF0AFF2000A72606260525CB25CF25CE25C725C6 -25A125A025B325B225BD25BC203B301221922190219121933013000000000000 -000000000000000000000000000000002208220B2286228722822283222A2229 -000000000000000000000000000000002227222800AC21D221D4220022030000 -0000000000000000000000000000000000000000222022A52312220222072261 -2252226A226B221A223D221D2235222B222C0000000000000000000000000000 -212B2030266F266D266A2020202100B6000000000000000025EF000000000000 -82 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000FF10 -FF11FF12FF13FF14FF15FF16FF17FF18FF190000000000000000000000000000 -FF21FF22FF23FF24FF25FF26FF27FF28FF29FF2AFF2BFF2CFF2DFF2EFF2FFF30 -FF31FF32FF33FF34FF35FF36FF37FF38FF39FF3A000000000000000000000000 -0000FF41FF42FF43FF44FF45FF46FF47FF48FF49FF4AFF4BFF4CFF4DFF4EFF4F -FF50FF51FF52FF53FF54FF55FF56FF57FF58FF59FF5A00000000000000003041 -30423043304430453046304730483049304A304B304C304D304E304F30503051 -30523053305430553056305730583059305A305B305C305D305E305F30603061 -30623063306430653066306730683069306A306B306C306D306E306F30703071 -30723073307430753076307730783079307A307B307C307D307E307F30803081 -30823083308430853086308730883089308A308B308C308D308E308F30903091 -3092309300000000000000000000000000000000000000000000000000000000 -83 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -30A130A230A330A430A530A630A730A830A930AA30AB30AC30AD30AE30AF30B0 -30B130B230B330B430B530B630B730B830B930BA30BB30BC30BD30BE30BF30C0 -30C130C230C330C430C530C630C730C830C930CA30CB30CC30CD30CE30CF30D0 -30D130D230D330D430D530D630D730D830D930DA30DB30DC30DD30DE30DF0000 -30E030E130E230E330E430E530E630E730E830E930EA30EB30EC30ED30EE30EF -30F030F130F230F330F430F530F6000000000000000000000000000000000391 -03920393039403950396039703980399039A039B039C039D039E039F03A003A1 -03A303A403A503A603A703A803A90000000000000000000000000000000003B1 -03B203B303B403B503B603B703B803B903BA03BB03BC03BD03BE03BF03C003C1 -03C303C403C503C603C703C803C9000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -84 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -04100411041204130414041504010416041704180419041A041B041C041D041E -041F0420042104220423042404250426042704280429042A042B042C042D042E -042F000000000000000000000000000000000000000000000000000000000000 -04300431043204330434043504510436043704380439043A043B043C043D0000 -043E043F0440044104420443044404450446044704480449044A044B044C044D -044E044F00000000000000000000000000000000000000000000000000002500 -2502250C251025182514251C252C25242534253C25012503250F2513251B2517 -25232533252B253B254B2520252F25282537253F251D25302525253825420000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -88 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000004E9C -55165A03963F54C0611B632859F690228475831C7A5060AA63E16E2565ED8466 -82A69BF56893572765A162715B9B59D0867B98F47D627DBE9B8E62167C9F88B7 -5B895EB563096697684895C7978D674F4EE54F0A4F4D4F9D504956F2593759D4 -5A015C0960DF610F61706613690570BA754F757079FB7DAD7DEF80C3840E8863 -8B029055907A533B4E954EA557DF80B290C178EF4E0058F16EA290387A328328 -828B9C2F5141537054BD54E156E059FB5F1598F26DEB80E4852D000000000000 -89 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9662967096A097FB540B53F35B8770CF7FBD8FC296E8536F9D5C7ABA4E117893 -81FC6E26561855046B1D851A9C3B59E553A96D6674DC958F56424E91904B96F2 -834F990C53E155B65B305F71662066F368046C386CF36D29745B76C87A4E9834 -82F1885B8A6092ED6DB275AB76CA99C560A68B018D8A95B2698E53AD51860000 -5712583059445BB45EF6602863A963F46CBF6F14708E7114715971D5733F7E01 -827682D185979060925B9D1B586965BC6C5A752551F9592E59655F805FDC62BC -65FA6A2A6B276BB4738B7FC189569D2C9D0E9EC45CA16C96837B51045C4B61B6 -81C6687672614E594FFA537860696E297A4F97F34E0B53164EEE4F554F3D4FA1 -4F7352A053EF5609590F5AC15BB65BE179D16687679C67B66B4C6CB3706B73C2 -798D79BE7A3C7B8782B182DB8304837783EF83D387668AB256298CA88FE6904E -971E868A4FC45CE862117259753B81E582BD86FE8CC096C5991399D54ECB4F1A -89E356DE584A58CA5EFB5FEB602A6094606261D0621262D06539000000000000 -8A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9B41666668B06D777070754C76867D7582A587F9958B968E8C9D51F152BE5916 -54B35BB35D16616869826DAF788D84CB88578A7293A79AB86D6C99A886D957A3 -67FF86CE920E5283568754045ED362E164B9683C68386BBB737278BA7A6B899A -89D28D6B8F0390ED95A3969497695B665CB3697D984D984E639B7B206A2B0000 -6A7F68B69C0D6F5F5272559D607062EC6D3B6E076ED1845B89108F444E149C39 -53F6691B6A3A9784682A515C7AC384B291DC938C565B9D286822830584317CA5 -520882C574E64E7E4F8351A05BD2520A52D852E75DFB559A582A59E65B8C5B98 -5BDB5E725E7960A3611F616361BE63DB656267D1685368FA6B3E6B536C576F22 -6F976F4574B0751876E3770B7AFF7BA17C217DE97F367FF0809D8266839E89B3 -8ACC8CAB908494519593959195A2966597D3992882184E38542B5CB85DCC73A9 -764C773C5CA97FEB8D0B96C19811985498584F014F0E5371559C566857FA5947 -5B095BC45C905E0C5E7E5FCC63EE673A65D765E2671F68CB68C4000000000000 -8B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A5F5E306BC56C176C7D757F79485B637A007D005FBD898F8A188CB48D778ECC -8F1D98E29A0E9B3C4E80507D510059935B9C622F628064EC6B3A72A075917947 -7FA987FB8ABC8B7063AC83CA97A05409540355AB68546A588A70782767759ECD -53745BA2811A865090064E184E454EC74F1153CA54385BAE5F13602565510000 -673D6C426C726CE3707874037A767AAE7B087D1A7CFE7D6665E7725B53BB5C45 -5DE862D262E063196E20865A8A318DDD92F86F0179A69B5A4EA84EAB4EAC4F9B -4FA050D151477AF6517151F653545321537F53EB55AC58835CE15F375F4A602F -6050606D631F65596A4B6CC172C272ED77EF80F881058208854E90F793E197FF -99579A5A4EF051DD5C2D6681696D5C4066F26975738968507C8150C552E45747 -5DFE932665A46B236B3D7434798179BD7B4B7DCA82B983CC887F895F8B398FD1 -91D1541F92804E5D503653E5533A72D7739677E982E68EAF99C699C899D25177 -611A865E55B07A7A50765BD3904796854E326ADB91E75C515C48000000000000 -8C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -63987A9F6C9397748F617AAA718A96887C8268177E706851936C52F2541B85AB -8A137FA48ECD90E15366888879414FC250BE521151445553572D73EA578B5951 -5F625F8460756176616761A963B2643A656C666F68426E1375667A3D7CFB7D4C -7D997E4B7F6B830E834A86CD8A088A638B668EFD981A9D8F82B88FCE9BE80000 -5287621F64836FC09699684150916B206C7A6F547A747D5088408A2367084EF6 -503950265065517C5238526355A7570F58055ACC5EFA61B261F862F36372691C -6A29727D72AC732E7814786F7D79770C80A9898B8B198CE28ED290639375967A -98559A139E785143539F53B35E7B5F266E1B6E90738473FE7D4382378A008AFA -96504E4E500B53E4547C56FA59D15B645DF15EAB5F276238654567AF6E5672D0 -7CCA88B480A180E183F0864E8A878DE8923796C798679F134E944E924F0D5348 -5449543E5A2F5F8C5FA1609F68A76A8E745A78818A9E8AA48B7791904E5E9BC9 -4EA44F7C4FAF501950165149516C529F52B952FE539A53E35411000000000000 -8D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -540E5589575157A2597D5B545B5D5B8F5DE55DE75DF75E785E835E9A5EB75F18 -6052614C629762D863A7653B6602664366F4676D6821689769CB6C5F6D2A6D69 -6E2F6E9D75327687786C7A3F7CE07D057D187D5E7DB18015800380AF80B18154 -818F822A8352884C88618B1B8CA28CFC90CA91759271783F92FC95A4964D0000 -980599999AD89D3B525B52AB53F7540858D562F76FE08C6A8F5F9EB9514B523B -544A56FD7A4091779D609ED273446F09817075115FFD60DA9AA872DB8FBC6B64 -98034ECA56F0576458BE5A5A606861C7660F6606683968B16DF775D57D3A826E -9B424E9B4F5053C955065D6F5DE65DEE67FB6C99747378028A50939688DF5750 -5EA7632B50B550AC518D670054C9585E59BB5BB05F69624D63A1683D6B736E08 -707D91C7728078157826796D658E7D3083DC88C18F09969B5264572867507F6A -8CA151B45742962A583A698A80B454B25D0E57FC78959DFA4F5C524A548B643E -6628671467F57A847B567D22932F685C9BAD7B395319518A5237000000000000 -8E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5BDF62F664AE64E6672D6BBA85A996D176909BD6634C93069BAB76BF66524E09 -509853C25C7160E864926563685F71E673CA75237B977E8286958B838CDB9178 -991065AC66AB6B8B4ED54ED44F3A4F7F523A53F853F255E356DB58EB59CB59C9 -59FF5B505C4D5E025E2B5FD7601D6307652F5B5C65AF65BD65E8679D6B620000 -6B7B6C0F7345794979C17CF87D197D2B80A2810281F389968A5E8A698A668A8C -8AEE8CC78CDC96CC98FC6B6F4E8B4F3C4F8D51505B575BFA6148630166426B21 -6ECB6CBB723E74BD75D478C1793A800C803381EA84948F9E6C509E7F5F0F8B58 -9D2B7AFA8EF85B8D96EB4E0353F157F759315AC95BA460896E7F6F0675BE8CEA -5B9F85007BE0507267F4829D5C61854A7E1E820E51995C0463688D66659C716E -793E7D1780058B1D8ECA906E86C790AA501F52FA5C3A6753707C7235914C91C8 -932B82E55BC25F3160F94E3B53D65B88624B67316B8A72E973E07A2E816B8DA3 -91529996511253D7546A5BFF63886A397DAC970056DA53CE5468000000000000 -8F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5B975C315DDE4FEE610162FE6D3279C079CB7D427E4D7FD281ED821F84908846 -89728B908E748F2F9031914B916C96C6919C4EC04F4F514553415F93620E67D4 -6C416E0B73637E2691CD928353D459195BBF6DD1795D7E2E7C9B587E719F51FA -88538FF04FCA5CFB662577AC7AE3821C99FF51C65FAA65EC696F6B896DF30000 -6E966F6476FE7D145DE190759187980651E6521D6240669166D96E1A5EB67DD2 -7F7266F885AF85F78AF852A953D959735E8F5F90605592E4966450B7511F52DD -5320534753EC54E8554655315617596859BE5A3C5BB55C065C0F5C115C1A5E84 -5E8A5EE05F70627F628462DB638C63776607660C662D6676677E68A26A1F6A35 -6CBC6D886E096E58713C7126716775C77701785D7901796579F07AE07B117CA7 -7D39809683D6848B8549885D88F38A1F8A3C8A548A738C618CDE91A49266937E -9418969C97984E0A4E084E1E4E575197527057CE583458CC5B225E3860C564FE -676167566D4472B675737A6384B88B7291B89320563157F498FE000000000000 -90 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -62ED690D6B9671ED7E548077827289E698DF87558FB15C3B4F384FE14FB55507 -5A205BDD5BE95FC3614E632F65B0664B68EE699B6D786DF1753375B9771F795E -79E67D3381E382AF85AA89AA8A3A8EAB8F9B903291DD97074EBA4EC152035875 -58EC5C0B751A5C3D814E8A0A8FC59663976D7B258ACF9808916256F353A80000 -9017543957825E2563A86C34708A77617C8B7FE088709042915493109318968F -745E9AC45D075D69657067A28DA896DB636E6749691983C5981796C088FE6F84 -647A5BF84E16702C755D662F51C4523652E259D35F8160276210653F6574661F -667468F268166B636E057272751F76DB7CBE805658F088FD897F8AA08A938ACB -901D91929752975965897A0E810696BB5E2D60DC621A65A56614679077F37A4D -7C4D7E3E810A8CAC8D648DE18E5F78A9520762D963A5644262988A2D7A837BC0 -8AAC96EA7D76820C87494ED95148534353605BA35C025C165DDD6226624764B0 -681368346CC96D456D1767D36F5C714E717D65CB7A7F7BAD7DDA000000000000 -91 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7E4A7FA8817A821B823985A68A6E8CCE8DF59078907792AD929195839BAE524D -55846F387136516879857E5581B37CCE564C58515CA863AA66FE66FD695A72D9 -758F758E790E795679DF7C977D207D4486078A34963B90619F2050E7527553CC -53E2500955AA58EE594F723D5B8B5C64531D60E360F3635C6383633F63BB0000 -64CD65E966F95DE369CD69FD6F1571E54E8975E976F87A937CDF7DCF7D9C8061 -83498358846C84BC85FB88C58D709001906D9397971C9A1250CF5897618E81D3 -85358D0890204FC3507452475373606F6349675F6E2C8DB3901F4FD75C5E8CCA -65CF7D9A53528896517663C35B585B6B5C0A640D6751905C4ED6591A592A6C70 -8A51553E581559A560F0625367C182356955964099C49A284F5358065BFE8010 -5CB15E2F5F856020614B623466FF6CF06EDE80CE817F82D4888B8CB89000902E -968A9EDB9BDB4EE353F059277B2C918D984C9DF96EDD7027535355445B856258 -629E62D36CA26FEF74228A1794386FC18AFE833851E786F853EA000000000000 -92 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -53E94F4690548FB0596A81315DFD7AEA8FBF68DA8C3772F89C486A3D8AB04E39 -53585606576662C563A265E66B4E6DE16E5B70AD77ED7AEF7BAA7DBB803D80C6 -86CB8A95935B56E358C75F3E65AD66966A806BB575378AC7502477E557305F1B -6065667A6C6075F47A1A7F6E81F48718904599B37BC9755C7AF97B5184C40000 -901079E97A9283365AE177404E2D4EF25B995FE062BD663C67F16CE8866B8877 -8A3B914E92F399D06A177026732A82E784578CAF4E01514651CB558B5BF55E16 -5E335E815F145F355F6B5FB461F2631166A2671D6F6E7252753A773A80748139 -817887768ABF8ADC8D858DF3929A957798029CE552C5635776F467156C8873CD -8CC393AE96736D25589C690E69CC8FFD939A75DB901A585A680263B469FB4F43 -6F2C67D88FBB85267DB49354693F6F70576A58F75B2C7D2C722A540A91E39DB4 -4EAD4F4E505C507552438C9E544858245B9A5E1D5E955EAD5EF75F1F608C62B5 -633A63D068AF6C407887798E7A0B7DE082478A028AE68E449013000000000000 -93 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -90B8912D91D89F0E6CE5645864E265756EF476847B1B906993D16EBA54F25FB9 -64A48F4D8FED92445178586B59295C555E976DFB7E8F751C8CBC8EE2985B70B9 -4F1D6BBF6FB1753096FB514E54105835585759AC5C605F926597675C6E21767B -83DF8CED901490FD934D7825783A52AA5EA6571F597460125012515A51AC0000 -51CD520055105854585859575B955CF65D8B60BC6295642D6771684368BC68DF -76D76DD86E6F6D9B706F71C85F5375D879777B497B547B527CD67D7152308463 -856985E48A0E8B048C468E0F9003900F94199676982D9A3095D850CD52D5540C -58025C0E61A7649E6D1E77B37AE580F48404905392855CE09D07533F5F975FB3 -6D9C7279776379BF7BE46BD272EC8AAD68036A6151F87A8169345C4A9CF682EB -5BC59149701E56785C6F60C765666C8C8C5A90419813545166C7920D594890A3 -51854E4D51EA85998B0E7058637A934B696299B47E047577535769608EDF96E3 -6C5D4E8C5C3C5F108FE953028CD1808986795EFF65E54E735165000000000000 -94 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59825C3F97EE4EFB598A5FCD8A8D6FE179B079625BE78471732B71B15E745FF5 -637B649A71C37C984E435EFC4E4B57DC56A260A96FC37D0D80FD813381BF8FB2 -899786A45DF4628A64AD898767776CE26D3E743678345A467F7582AD99AC4FF3 -5EC362DD63926557676F76C3724C80CC80BA8F29914D500D57F95A9268850000 -6973716472FD8CB758F28CE0966A9019877F79E477E784294F2F5265535A62CD -67CF6CCA767D7B947C95823685848FEB66DD6F2072067E1B83AB99C19EA651FD -7BB178727BB880877B486AE85E61808C75517560516B92626E8C767A91979AEA -4F107F70629C7B4F95A59CE9567A585986E496BC4F345224534A53CD53DB5E06 -642C6591677F6C3E6C4E724872AF73ED75547E41822C85E98CA97BC491C67169 -981298EF633D6669756A76E478D0854386EE532A5351542659835E875F7C60B2 -6249627962AB65906BD46CCC75B276AE789179D87DCB7F7780A588AB8AB98CBB -907F975E98DB6A0B7C3850995C3E5FAE67876BD8743577097F8E000000000000 -95 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9F3B67CA7A175339758B9AED5F66819D83F180985F3C5FC575627B46903C6867 -59EB5A9B7D10767E8B2C4FF55F6A6A196C376F0274E2796888688A558C795EDF -63CF75C579D282D7932892F2849C86ED9C2D54C15F6C658C6D5C70158CA78CD3 -983B654F74F64E0D4ED857E0592B5A665BCC51A85E035E9C6016627665770000 -65A7666E6D6E72367B268150819A82998B5C8CA08CE68D74961C96444FAE64AB -6B66821E8461856A90E85C01695398A8847A85574F0F526F5FA95E45670D798F -8179890789866DF55F1762556CB84ECF72699B925206543B567458B361A4626E -711A596E7C897CDE7D1B96F06587805E4E194F75517558405E635E735F0A67C4 -4E26853D9589965B7C73980150FB58C1765678A7522577A585117B86504F5909 -72477BC77DE88FBA8FD4904D4FBF52C95A295F0197AD4FDD821792EA57036355 -6B69752B88DC8F147A4252DF58936155620A66AE6BCD7C3F83E950234FF85305 -5446583159495B9D5CF05CEF5D295E9662B16367653E65B9670B000000000000 -96 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6CD56CE170F978327E2B80DE82B3840C84EC870289128A2A8C4A90A692D298FD -9CF39D6C4E4F4EA1508D5256574A59A85E3D5FD85FD9623F66B4671B67D068D2 -51927D2180AA81A88B008C8C8CBF927E96325420982C531750D5535C58A864B2 -6734726777667A4691E652C36CA16B8658005E4C5954672C7FFB51E176C60000 -646978E89B549EBB57CB59B96627679A6BCE54E969D95E55819C67959BAA67FE -9C52685D4EA64FE353C862B9672B6CAB8FC44FAD7E6D9EBF4E0761626E806F2B -85135473672A9B455DF37B955CAC5BC6871C6E4A84D17A14810859997C8D6C11 -772052D959227121725F77DB97279D61690B5A7F5A1851A5540D547D660E76DF -8FF792989CF459EA725D6EC5514D68C97DBF7DEC97629EBA64786A2183025984 -5B5F6BDB731B76F27DB280178499513267289ED976EE676252FF99055C24623B -7C7E8CB0554F60B67D0B958053014E5F51B6591C723A803691CE5F2577E25384 -5F797D0485AC8A338E8D975667F385AE9453610961086CB9765200000000FF5E -97 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8AED8F38552F4F51512A52C753CB5BA55E7D60A0618263D6670967DA6E676D8C -733673377531795088D58A98904A909190F596C4878D59154E884F594E0E8A89 -8F3F981050AD5E7C59965BB95EB863DA63FA64C166DC694A69D86D0B6EB67194 -75287AAF7F8A8000844984C989818B218E0A9065967D990A617E62916B320000 -6C836D747FCC7FFC6DC07F8587BA88F8676583B1983C96F76D1B7D61843D916A -4E7153755D506B046FEB85CD862D89A75229540F5C65674E68A87406748375E2 -88CF88E191CC96E296785F8B73877ACB844E63A0756552896D416E9C74097559 -786B7C9296867ADC9F8D4FB6616E65C5865C4E864EAE50DA4E2151CC5BEE6599 -68816DBC731F764277AD7A1C7CE7826F8AD2907C91CF96759818529B7DD1502B -539867976DCB71D0743381E88F2A96A39C579E9F746058416D997D2F985E4EE4 -4F364F8B51B752B15DBA601C73B2793C82D3923496B796F6970A9E979F6266A6 -6B74521752A370C888C25EC9604B61906F2371497C3E7DF4806F000000000000 -98 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -84EE9023932C54429B6F6AD370898CC28DEF973252B45A415ECA5F046717697C -69946D6A6F0F726272FC7BED8001807E874B90CE516D9E937984808B93328AD6 -502D548C8A716B6A8CC4810760D167A09DF24E994E989C108A6B85C185686900 -6E7E789781550000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000005F0C -4E104E154E2A4E314E364E3C4E3F4E424E564E584E824E858C6B4E8A82125F0D -4E8E4E9E4E9F4EA04EA24EB04EB34EB64ECE4ECD4EC44EC64EC24ED74EDE4EED -4EDF4EF74F094F5A4F304F5B4F5D4F574F474F764F884F8F4F984F7B4F694F70 -4F914F6F4F864F9651184FD44FDF4FCE4FD84FDB4FD14FDA4FD04FE44FE5501A -50285014502A502550054F1C4FF650215029502C4FFE4FEF5011500650435047 -6703505550505048505A5056506C50785080509A508550B450B2000000000000 -99 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -50C950CA50B350C250D650DE50E550ED50E350EE50F950F55109510151025116 -51155114511A5121513A5137513C513B513F51405152514C515451627AF85169 -516A516E5180518256D8518C5189518F519151935195519651A451A651A251A9 -51AA51AB51B351B151B251B051B551BD51C551C951DB51E0865551E951ED0000 -51F051F551FE5204520B5214520E5227522A522E52335239524F5244524B524C -525E5254526A527452695273527F527D528D529452925271528852918FA88FA7 -52AC52AD52BC52B552C152CD52D752DE52E352E698ED52E052F352F552F852F9 -530653087538530D5310530F5315531A5323532F533153335338534053465345 -4E175349534D51D6535E5369536E5918537B53775382539653A053A653A553AE -53B053B653C37C1296D953DF66FC71EE53EE53E853ED53FA5401543D5440542C -542D543C542E54365429541D544E548F5475548E545F5471547754705492547B -5480547654845490548654C754A254B854A554AC54C454C854A8000000000000 -9A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -54AB54C254A454BE54BC54D854E554E6550F551454FD54EE54ED54FA54E25539 -55405563554C552E555C55455556555755385533555D5599558054AF558A559F -557B557E5598559E55AE557C558355A9558755A855DA55C555DF55C455DC55E4 -55D4561455F7561655FE55FD561B55F9564E565071DF56345636563256380000 -566B5664562F566C566A56865680568A56A05694568F56A556AE56B656B456C2 -56BC56C156C356C056C856CE56D156D356D756EE56F9570056FF570457095708 -570B570D57135718571655C7571C572657375738574E573B5740574F576957C0 -57885761577F5789579357A057B357A457AA57B057C357C657D457D257D3580A -57D657E3580B5819581D587258215862584B58706BC05852583D5879588558B9 -589F58AB58BA58DE58BB58B858AE58C558D358D158D758D958D858E558DC58E4 -58DF58EF58FA58F958FB58FC58FD5902590A5910591B68A65925592C592D5932 -5938593E7AD259555950594E595A5958596259605967596C5969000000000000 -9B -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -59785981599D4F5E4FAB59A359B259C659E859DC598D59D959DA5A255A1F5A11 -5A1C5A095A1A5A405A6C5A495A355A365A625A6A5A9A5ABC5ABE5ACB5AC25ABD -5AE35AD75AE65AE95AD65AFA5AFB5B0C5B0B5B165B325AD05B2A5B365B3E5B43 -5B455B405B515B555B5A5B5B5B655B695B705B735B755B7865885B7A5B800000 -5B835BA65BB85BC35BC75BC95BD45BD05BE45BE65BE25BDE5BE55BEB5BF05BF6 -5BF35C055C075C085C0D5C135C205C225C285C385C395C415C465C4E5C535C50 -5C4F5B715C6C5C6E4E625C765C795C8C5C915C94599B5CAB5CBB5CB65CBC5CB7 -5CC55CBE5CC75CD95CE95CFD5CFA5CED5D8C5CEA5D0B5D155D175D5C5D1F5D1B -5D115D145D225D1A5D195D185D4C5D525D4E5D4B5D6C5D735D765D875D845D82 -5DA25D9D5DAC5DAE5DBD5D905DB75DBC5DC95DCD5DD35DD25DD65DDB5DEB5DF2 -5DF55E0B5E1A5E195E115E1B5E365E375E445E435E405E4E5E575E545E5F5E62 -5E645E475E755E765E7A9EBC5E7F5EA05EC15EC25EC85ED05ECF000000000000 -9C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -5ED65EE35EDD5EDA5EDB5EE25EE15EE85EE95EEC5EF15EF35EF05EF45EF85EFE -5F035F095F5D5F5C5F0B5F115F165F295F2D5F385F415F485F4C5F4E5F2F5F51 -5F565F575F595F615F6D5F735F775F835F825F7F5F8A5F885F915F875F9E5F99 -5F985FA05FA85FAD5FBC5FD65FFB5FE45FF85FF15FDD60B35FFF602160600000 -601960106029600E6031601B6015602B6026600F603A605A6041606A6077605F -604A6046604D6063604360646042606C606B60596081608D60E76083609A6084 -609B60966097609260A7608B60E160B860E060D360B45FF060BD60C660B560D8 -614D6115610660F660F7610060F460FA6103612160FB60F1610D610E6147613E -61286127614A613F613C612C6134613D614261446173617761586159615A616B -6174616F61656171615F615D6153617561996196618761AC6194619A618A6191 -61AB61AE61CC61CA61C961F761C861C361C661BA61CB7F7961CD61E661E361F6 -61FA61F461FF61FD61FC61FE620062086209620D620C6214621B000000000000 -9D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -621E6221622A622E6230623262336241624E625E6263625B62606268627C6282 -6289627E62926293629662D46283629462D762D162BB62CF62FF62C664D462C8 -62DC62CC62CA62C262C7629B62C9630C62EE62F163276302630862EF62F56350 -633E634D641C634F6396638E638063AB637663A3638F6389639F63B5636B0000 -636963BE63E963C063C663E363C963D263F663C4641664346406641364266436 -651D64176428640F6467646F6476644E652A6495649364A564A9648864BC64DA -64D264C564C764BB64D864C264F164E7820964E064E162AC64E364EF652C64F6 -64F464F264FA650064FD6518651C650565246523652B65346535653765366538 -754B654865566555654D6558655E655D65726578658265838B8A659B659F65AB -65B765C365C665C165C465CC65D265DB65D965E065E165F16772660A660365FB -6773663566366634661C664F664466496641665E665D666466676668665F6662 -667066836688668E668966846698669D66C166B966C966BE66BC000000000000 -9E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -66C466B866D666DA66E0663F66E666E966F066F566F7670F6716671E67266727 -9738672E673F67366741673867376746675E67606759676367646789677067A9 -677C676A678C678B67A667A1678567B767EF67B467EC67B367E967B867E467DE -67DD67E267EE67B967CE67C667E76A9C681E684668296840684D6832684E0000 -68B3682B685968636877687F689F688F68AD6894689D689B68836AAE68B96874 -68B568A068BA690F688D687E690168CA690868D86922692668E1690C68CD68D4 -68E768D569366912690468D768E3692568F968E068EF6928692A691A69236921 -68C669796977695C6978696B6954697E696E69396974693D695969306961695E -695D6981696A69B269AE69D069BF69C169D369BE69CE5BE869CA69DD69BB69C3 -69A76A2E699169A0699C699569B469DE69E86A026A1B69FF6B0A69F969F269E7 -6A0569B16A1E69ED6A1469EB6A0A6A126AC16A236A136A446A0C6A726A366A78 -6A476A626A596A666A486A386A226A906A8D6AA06A846AA26AA3000000000000 -9F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6A9786176ABB6AC36AC26AB86AB36AAC6ADE6AD16ADF6AAA6ADA6AEA6AFB6B05 -86166AFA6B126B169B316B1F6B386B3776DC6B3998EE6B476B436B496B506B59 -6B546B5B6B5F6B616B786B796B7F6B806B846B836B8D6B986B956B9E6BA46BAA -6BAB6BAF6BB26BB16BB36BB76BBC6BC66BCB6BD36BDF6BEC6BEB6BF36BEF0000 -9EBE6C086C136C146C1B6C246C236C5E6C556C626C6A6C826C8D6C9A6C816C9B -6C7E6C686C736C926C906CC46CF16CD36CBD6CD76CC56CDD6CAE6CB16CBE6CBA -6CDB6CEF6CD96CEA6D1F884D6D366D2B6D3D6D386D196D356D336D126D0C6D63 -6D936D646D5A6D796D596D8E6D956FE46D856DF96E156E0A6DB56DC76DE66DB8 -6DC66DEC6DDE6DCC6DE86DD26DC56DFA6DD96DE46DD56DEA6DEE6E2D6E6E6E2E -6E196E726E5F6E3E6E236E6B6E2B6E766E4D6E1F6E436E3A6E4E6E246EFF6E1D -6E386E826EAA6E986EC96EB76ED36EBD6EAF6EC46EB26ED46ED56E8F6EA56EC2 -6E9F6F416F11704C6EEC6EF86EFE6F3F6EF26F316EEF6F326ECC000000000000 -E0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -6F3E6F136EF76F866F7A6F786F816F806F6F6F5B6FF36F6D6F826F7C6F586F8E -6F916FC26F666FB36FA36FA16FA46FB96FC66FAA6FDF6FD56FEC6FD46FD86FF1 -6FEE6FDB7009700B6FFA70117001700F6FFE701B701A6F74701D7018701F7030 -703E7032705170637099709270AF70F170AC70B870B370AE70DF70CB70DD0000 -70D9710970FD711C711971657155718871667162714C7156716C718F71FB7184 -719571A871AC71D771B971BE71D271C971D471CE71E071EC71E771F571FC71F9 -71FF720D7210721B7228722D722C72307232723B723C723F72407246724B7258 -7274727E7282728172877292729672A272A772B972B272C372C672C472CE72D2 -72E272E072E172F972F7500F7317730A731C7316731D7334732F73297325733E -734E734F9ED87357736A7368737073787375737B737A73C873B373CE73BB73C0 -73E573EE73DE74A27405746F742573F87432743A7455743F745F74597441745C -746974707463746A7476747E748B749E74A774CA74CF74D473F1000000000000 -E1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -74E074E374E774E974EE74F274F074F174F874F7750475037505750C750E750D -75157513751E7526752C753C7544754D754A7549755B7546755A756975647567 -756B756D75787576758675877574758A758975827594759A759D75A575A375C2 -75B375C375B575BD75B875BC75B175CD75CA75D275D975E375DE75FE75FF0000 -75FC760175F075FA75F275F3760B760D7609761F762776207621762276247634 -7630763B764776487646765C76587661766276687669766A7667766C76707672 -76767678767C768076837688768B768E769676937699769A76B076B476B876B9 -76BA76C276CD76D676D276DE76E176E576E776EA862F76FB7708770777047729 -7724771E77257726771B773777387747775A7768776B775B7765777F777E7779 -778E778B779177A0779E77B077B677B977BF77BC77BD77BB77C777CD77D777DA -77DC77E377EE77FC780C781279267820792A7845788E78747886787C789A788C -78A378B578AA78AF78D178C678CB78D478BE78BC78C578CA78EC000000000000 -E2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -78E778DA78FD78F47907791279117919792C792B794079607957795F795A7955 -7953797A797F798A799D79A79F4B79AA79AE79B379B979BA79C979D579E779EC -79E179E37A087A0D7A187A197A207A1F79807A317A3B7A3E7A377A437A577A49 -7A617A627A699F9D7A707A797A7D7A887A977A957A987A967AA97AC87AB00000 -7AB67AC57AC47ABF90837AC77ACA7ACD7ACF7AD57AD37AD97ADA7ADD7AE17AE2 -7AE67AED7AF07B027B0F7B0A7B067B337B187B197B1E7B357B287B367B507B7A -7B047B4D7B0B7B4C7B457B757B657B747B677B707B717B6C7B6E7B9D7B987B9F -7B8D7B9C7B9A7B8B7B927B8F7B5D7B997BCB7BC17BCC7BCF7BB47BC67BDD7BE9 -7C117C147BE67BE57C607C007C077C137BF37BF77C177C0D7BF67C237C277C2A -7C1F7C377C2B7C3D7C4C7C437C547C4F7C407C507C587C5F7C647C567C657C6C -7C757C837C907CA47CAD7CA27CAB7CA17CA87CB37CB27CB17CAE7CB97CBD7CC0 -7CC57CC27CD87CD27CDC7CE29B3B7CEF7CF27CF47CF67CFA7D06000000000000 -E3 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -7D027D1C7D157D0A7D457D4B7D2E7D327D3F7D357D467D737D567D4E7D727D68 -7D6E7D4F7D637D937D897D5B7D8F7D7D7D9B7DBA7DAE7DA37DB57DC77DBD7DAB -7E3D7DA27DAF7DDC7DB87D9F7DB07DD87DDD7DE47DDE7DFB7DF27DE17E057E0A -7E237E217E127E317E1F7E097E0B7E227E467E667E3B7E357E397E437E370000 -7E327E3A7E677E5D7E567E5E7E597E5A7E797E6A7E697E7C7E7B7E837DD57E7D -8FAE7E7F7E887E897E8C7E927E907E937E947E967E8E7E9B7E9C7F387F3A7F45 -7F4C7F4D7F4E7F507F517F557F547F587F5F7F607F687F697F677F787F827F86 -7F837F887F877F8C7F947F9E7F9D7F9A7FA37FAF7FB27FB97FAE7FB67FB88B71 -7FC57FC67FCA7FD57FD47FE17FE67FE97FF37FF998DC80068004800B80128018 -8019801C80218028803F803B804A804680528058805A805F8062806880738072 -807080768079807D807F808480868085809B8093809A80AD519080AC80DB80E5 -80D980DD80C480DA80D6810980EF80F1811B81298123812F814B000000000000 -E4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -968B8146813E8153815180FC8171816E81658166817481838188818A81808182 -81A0819581A481A3815F819381A981B081B581BE81B881BD81C081C281BA81C9 -81CD81D181D981D881C881DA81DF81E081E781FA81FB81FE8201820282058207 -820A820D821082168229822B82388233824082598258825D825A825F82640000 -82628268826A826B822E827182778278827E828D829282AB829F82BB82AC82E1 -82E382DF82D282F482F382FA8393830382FB82F982DE830682DC830982D98335 -83348316833283318340833983508345832F832B831783188385839A83AA839F -83A283968323838E8387838A837C83B58373837583A0838983A883F4841383EB -83CE83FD840383D8840B83C183F7840783E083F2840D8422842083BD84388506 -83FB846D842A843C855A84848477846B84AD846E848284698446842C846F8479 -843584CA846284B984BF849F84D984CD84BB84DA84D084C184C684D684A18521 -84FF84F485178518852C851F8515851484FC8540856385588548000000000000 -E5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -85418602854B8555858085A485888591858A85A8856D8594859B85EA8587859C -8577857E859085C985BA85CF85B985D085D585DD85E585DC85F9860A8613860B -85FE85FA86068622861A8630863F864D4E558654865F86678671869386A386A9 -86AA868B868C86B686AF86C486C686B086C9882386AB86D486DE86E986EC0000 -86DF86DB86EF8712870687088700870386FB87118709870D86F9870A8734873F -8737873B87258729871A8760875F8778874C874E877487578768876E87598753 -8763876A880587A2879F878287AF87CB87BD87C087D096D687AB87C487B387C7 -87C687BB87EF87F287E0880F880D87FE87F687F7880E87D28811881688158822 -88218831883688398827883B8844884288528859885E8862886B8881887E889E -8875887D88B5887288828897889288AE889988A2888D88A488B088BF88B188C3 -88C488D488D888D988DD88F9890288FC88F488E888F28904890C890A89138943 -891E8925892A892B89418944893B89368938894C891D8960895E000000000000 -E6 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -89668964896D896A896F89748977897E89838988898A8993899889A189A989A6 -89AC89AF89B289BA89BD89BF89C089DA89DC89DD89E789F489F88A038A168A10 -8A0C8A1B8A1D8A258A368A418A5B8A528A468A488A7C8A6D8A6C8A628A858A82 -8A848AA88AA18A918AA58AA68A9A8AA38AC48ACD8AC28ADA8AEB8AF38AE70000 -8AE48AF18B148AE08AE28AF78ADE8ADB8B0C8B078B1A8AE18B168B108B178B20 -8B3397AB8B268B2B8B3E8B288B418B4C8B4F8B4E8B498B568B5B8B5A8B6B8B5F -8B6C8B6F8B748B7D8B808B8C8B8E8B928B938B968B998B9A8C3A8C418C3F8C48 -8C4C8C4E8C508C558C628C6C8C788C7A8C828C898C858C8A8C8D8C8E8C948C7C -8C98621D8CAD8CAA8CBD8CB28CB38CAE8CB68CC88CC18CE48CE38CDA8CFD8CFA -8CFB8D048D058D0A8D078D0F8D0D8D109F4E8D138CCD8D148D168D678D6D8D71 -8D738D818D998DC28DBE8DBA8DCF8DDA8DD68DCC8DDB8DCB8DEA8DEB8DDF8DE3 -8DFC8E088E098DFF8E1D8E1E8E108E1F8E428E358E308E348E4A000000000000 -E7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -8E478E498E4C8E508E488E598E648E608E2A8E638E558E768E728E7C8E818E87 -8E858E848E8B8E8A8E938E918E948E998EAA8EA18EAC8EB08EC68EB18EBE8EC5 -8EC88ECB8EDB8EE38EFC8EFB8EEB8EFE8F0A8F058F158F128F198F138F1C8F1F -8F1B8F0C8F268F338F3B8F398F458F428F3E8F4C8F498F468F4E8F578F5C0000 -8F628F638F648F9C8F9F8FA38FAD8FAF8FB78FDA8FE58FE28FEA8FEF90878FF4 -90058FF98FFA901190159021900D901E9016900B90279036903590398FF8904F -905090519052900E9049903E90569058905E9068906F907696A890729082907D -90819080908A9089908F90A890AF90B190B590E290E4624890DB910291129119 -91329130914A9156915891639165916991739172918B9189918291A291AB91AF -91AA91B591B491BA91C091C191C991CB91D091D691DF91E191DB91FC91F591F6 -921E91FF9214922C92159211925E925792459249926492489295923F924B9250 -929C92969293929B925A92CF92B992B792E9930F92FA9344932E000000000000 -E8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -93199322931A9323933A9335933B935C9360937C936E935693B093AC93AD9394 -93B993D693D793E893E593D893C393DD93D093C893E4941A9414941394039407 -94109436942B94359421943A944194529444945B94609462945E946A92299470 -94759477947D945A947C947E9481947F95829587958A95949596959895990000 -95A095A895A795AD95BC95BB95B995BE95CA6FF695C395CD95CC95D595D495D6 -95DC95E195E595E296219628962E962F9642964C964F964B9677965C965E965D -965F96669672966C968D96989695969796AA96A796B196B296B096B496B696B8 -96B996CE96CB96C996CD894D96DC970D96D596F99704970697089713970E9711 -970F971697199724972A97309739973D973E97449746974897429749975C9760 -97649766976852D2976B977197799785977C9781977A9786978B978F9790979C -97A897A697A397B397B497C397C697C897CB97DC97ED9F4F97F27ADF97F697F5 -980F980C9838982498219837983D9846984F984B986B986F9870000000000000 -E9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -98719874987398AA98AF98B198B698C498C398C698E998EB9903990999129914 -99189921991D991E99249920992C992E993D993E9942994999459950994B9951 -9952994C99559997999899A599AD99AE99BC99DF99DB99DD99D899D199ED99EE -99F199F299FB99F89A019A0F9A0599E29A199A2B9A379A459A429A409A430000 -9A3E9A559A4D9A5B9A579A5F9A629A659A649A699A6B9A6A9AAD9AB09ABC9AC0 -9ACF9AD19AD39AD49ADE9ADF9AE29AE39AE69AEF9AEB9AEE9AF49AF19AF79AFB -9B069B189B1A9B1F9B229B239B259B279B289B299B2A9B2E9B2F9B329B449B43 -9B4F9B4D9B4E9B519B589B749B939B839B919B969B979B9F9BA09BA89BB49BC0 -9BCA9BB99BC69BCF9BD19BD29BE39BE29BE49BD49BE19C3A9BF29BF19BF09C15 -9C149C099C139C0C9C069C089C129C0A9C049C2E9C1B9C259C249C219C309C47 -9C329C469C3E9C5A9C609C679C769C789CE79CEC9CF09D099D089CEB9D039D06 -9D2A9D269DAF9D239D1F9D449D159D129D419D3F9D3E9D469D48000000000000 -EA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -9D5D9D5E9D649D519D509D599D729D899D879DAB9D6F9D7A9D9A9DA49DA99DB2 -9DC49DC19DBB9DB89DBA9DC69DCF9DC29DD99DD39DF89DE69DED9DEF9DFD9E1A -9E1B9E1E9E759E799E7D9E819E889E8B9E8C9E929E959E919E9D9EA59EA99EB8 -9EAA9EAD97619ECC9ECE9ECF9ED09ED49EDC9EDE9EDD9EE09EE59EE89EEF0000 -9EF49EF69EF79EF99EFB9EFC9EFD9F079F0876B79F159F219F2C9F3E9F4A9F52 -9F549F639F5F9F609F619F669F679F6C9F6A9F779F729F769F959F9C9FA0582F -69C79059746451DC719900000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -R -8160 301C FF5E -8161 2016 2225 -817C 2212 FF0D -8191 00A2 FFE0 -8192 00A3 FFE1 -81CA 00AC FFE2 diff --git a/src/runtime/tcl_library/encoding/symbol.enc b/src/runtime/tcl_library/encoding/symbol.enc deleted file mode 100644 index ebd2f499..00000000 --- a/src/runtime/tcl_library/encoding/symbol.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: symbol, single-byte -S -003F 1 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002122000023220300250026220D002800292217002B002C2212002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -22450391039203A70394039503A603930397039903D1039A039B039C039D039F -03A0039803A103A303A403A503C203A9039E03A80396005B2234005D22A5005F -F8E503B103B203C703B403B503C603B303B703B903D503BA03BB03BC03BD03BF -03C003B803C103C303C403C503D603C903BE03C803B6007B007C007D223C007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -000003D2203222642044221E0192266326662665266021942190219121922193 -00B000B12033226500D7221D2202202200F72260226122482026F8E6F8E721B5 -21352111211C21182297229522052229222A2283228722842282228622082209 -2220220700AE00A92122220F221A22C500AC2227222821D421D021D121D221D3 -22C42329F8E8F8E9F8EA2211F8EBF8ECF8EDF8EEF8EFF8F0F8F1F8F2F8F3F8F4 -F8FF232A222B2320F8F52321F8F6F8F7F8F8F8F9F8FAF8FBF8FCF8FDF8FE0000 diff --git a/src/runtime/tcl_library/encoding/tis-620.enc b/src/runtime/tcl_library/encoding/tis-620.enc deleted file mode 100644 index af773266..00000000 --- a/src/runtime/tcl_library/encoding/tis-620.enc +++ /dev/null @@ -1,20 +0,0 @@ -# Encoding file: tis-620, single-byte -S -003F 0 1 -00 -0000000100020003000400050006000700080009000A000B000C000D000E000F -0010001100120013001400150016001700180019001A001B001C001D001E001F -0020002100220023002400250026002700280029002A002B002C002D002E002F -0030003100320033003400350036003700380039003A003B003C003D003E003F -0040004100420043004400450046004700480049004A004B004C004D004E004F -0050005100520053005400550056005700580059005A005B005C005D005E005F -0060006100620063006400650066006700680069006A006B006C006D006E006F -0070007100720073007400750076007700780079007A007B007C007D007E007F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -00000E010E020E030E040E050E060E070E080E090E0A0E0B0E0C0E0D0E0E0E0F -0E100E110E120E130E140E150E160E170E180E190E1A0E1B0E1C0E1D0E1E0E1F -0E200E210E220E230E240E250E260E270E280E290E2A0E2B0E2C0E2D0E2E0E2F -0E300E310E320E330E340E350E360E370E380E390E3A00000000000000000E3F -0E400E410E420E430E440E450E460E470E480E490E4A0E4B0E4C0E4D0E4E0E4F -0E500E510E520E530E540E550E560E570E580E590E5A0E5B0000000000000000 diff --git a/src/runtime/tcl_library/foreachline.tcl b/src/runtime/tcl_library/foreachline.tcl deleted file mode 100644 index aacbd5bb..00000000 --- a/src/runtime/tcl_library/foreachline.tcl +++ /dev/null @@ -1,25 +0,0 @@ -# foreachLine: -# Iterate over the contents of a file, a line at a time. -# The body script is run for each, with variable varName set to the line -# contents. -# -# Copyright © 2023 Donal K Fellows. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -proc foreachLine {varName filename body} { - upvar 1 $varName line - set f [open $filename "r"] - try { - while {[gets $f line] >= 0} { - uplevel 1 $body - } - } on return {msg opt} { - dict incr opt -level - return -options $opt $msg - } finally { - close $f - } -} diff --git a/src/runtime/tcl_library/history.tcl b/src/runtime/tcl_library/history.tcl deleted file mode 100644 index 5dd6b06b..00000000 --- a/src/runtime/tcl_library/history.tcl +++ /dev/null @@ -1,335 +0,0 @@ -# history.tcl -- -# -# Implementation of the history command. -# -# Copyright © 1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# The tcl::history array holds the history list and some additional -# bookkeeping variables. -# -# nextid the index used for the next history list item. -# keep the max size of the history list -# oldest the index of the oldest item in the history. - -namespace eval ::tcl { - variable history - if {![info exists history]} { - array set history { - nextid 0 - keep 20 - oldest -20 - } - } - - namespace ensemble create -command ::tcl::history -map { - add ::tcl::HistAdd - change ::tcl::HistChange - clear ::tcl::HistClear - event ::tcl::HistEvent - info ::tcl::HistInfo - keep ::tcl::HistKeep - nextid ::tcl::HistNextID - redo ::tcl::HistRedo - } -} - -# history -- -# -# This is the main history command. See the man page for its interface. -# This does some argument checking and calls the helper ensemble in the -# tcl namespace. - -proc ::history {args} { - # If no command given, we're doing 'history info'. Can't be done with an - # ensemble unknown handler, as those don't fire when no subcommand is - # given at all. - - if {![llength $args]} { - set args info - } - - # Tricky stuff needed to make stack and errors come out right! - tailcall apply {arglist {tailcall history {*}$arglist} ::tcl} $args -} - -# (unnamed) -- -# -# Callback when [::history] is destroyed. Destroys the implementation. -# -# Parameters: -# oldName what the command was called. -# newName what the command is now called (an empty string). -# op the operation (= delete). -# -# Results: -# none -# -# Side Effects: -# The implementation of the [::history] command ceases to exist. - -trace add command ::history delete [list apply {{oldName newName op} { - variable history - unset -nocomplain history - foreach c [info procs ::tcl::Hist*] { - rename $c {} - } - rename ::tcl::history {} -} ::tcl}] - -# tcl::HistAdd -- -# -# Add an item to the history, and optionally eval it at the global scope -# -# Parameters: -# event the command to add -# exec (optional) a substring of "exec" causes the command to -# be evaled. -# Results: -# If executing, then the results of the command are returned -# -# Side Effects: -# Adds to the history list - -proc ::tcl::HistAdd {event {exec {}}} { - variable history - - if { - [prefix longest {exec {}} $exec] eq "" - && [llength [info level 0]] == 3 - } then { - return -code error "bad argument \"$exec\": should be \"exec\"" - } - - # Do not add empty commands to the history - if {[string trim $event] eq ""} { - return "" - } - - # Maintain the history - set history([incr history(nextid)]) $event - unset -nocomplain history([incr history(oldest)]) - - # Only execute if 'exec' (or non-empty prefix of it) given - if {$exec eq ""} { - return "" - } - tailcall eval $event -} - -# tcl::HistKeep -- -# -# Set or query the limit on the length of the history list -# -# Parameters: -# limit (optional) the length of the history list -# -# Results: -# If no limit is specified, the current limit is returned -# -# Side Effects: -# Updates history(keep) if a limit is specified - -proc ::tcl::HistKeep {{count {}}} { - variable history - if {[llength [info level 0]] == 1} { - return $history(keep) - } - if {![string is integer -strict $count] || ($count < 0)} { - return -code error "illegal keep count \"$count\"" - } - set oldold $history(oldest) - set history(oldest) [expr {$history(nextid) - $count}] - for {} {$oldold <= $history(oldest)} {incr oldold} { - unset -nocomplain history($oldold) - } - set history(keep) $count -} - -# tcl::HistClear -- -# -# Erase the history list -# -# Parameters: -# none -# -# Results: -# none -# -# Side Effects: -# Resets the history array, except for the keep limit - -proc ::tcl::HistClear {} { - variable history - set keep $history(keep) - unset history - array set history [list \ - nextid 0 \ - keep $keep \ - oldest -$keep \ - ] -} - -# tcl::HistInfo -- -# -# Return a pretty-printed version of the history list -# -# Parameters: -# num (optional) the length of the history list to return -# -# Results: -# A formatted history list - -proc ::tcl::HistInfo {{count {}}} { - variable history - if {[llength [info level 0]] == 1} { - set count [expr {$history(keep) + 1}] - } elseif {![string is integer -strict $count]} { - return -code error "bad integer \"$count\"" - } - set result {} - set newline "" - for {set i [expr {$history(nextid) - $count + 1}]} \ - {$i <= $history(nextid)} {incr i} { - if {![info exists history($i)]} { - continue - } - set cmd [string map [list \n \n\t] [string trimright $history($i) \ \n]] - append result $newline[format "%6d %s" $i $cmd] - set newline \n - } - return $result -} - -# tcl::HistRedo -- -# -# Fetch the previous or specified event, execute it, and then replace -# the current history item with that event. -# -# Parameters: -# event (optional) index of history item to redo. Defaults to -1, -# which means the previous event. -# -# Results: -# Those of the command being redone. -# -# Side Effects: -# Replaces the current history list item with the one being redone. - -proc ::tcl::HistRedo {{event -1}} { - variable history - - set i [HistIndex $event] - if {$i == $history(nextid)} { - return -code error "cannot redo the current event" - } - set cmd $history($i) - HistChange $cmd 0 - tailcall eval $cmd -} - -# tcl::HistIndex -- -# -# Map from an event specifier to an index in the history list. -# -# Parameters: -# event index of history item to redo. -# If this is a positive number, it is used directly. -# If it is a negative number, then it counts back to a previous -# event, where -1 is the most recent event. -# A string can be matched, either by being the prefix of a -# command or by matching a command with string match. -# -# Results: -# The index into history, or an error if the index didn't match. - -proc ::tcl::HistIndex {event} { - variable history - if {![string is integer -strict $event]} { - for {set i [expr {$history(nextid)-1}]} {[info exists history($i)]} \ - {incr i -1} { - if {[string match $event* $history($i)]} { - return $i - } - if {[string match $event $history($i)]} { - return $i - } - } - return -code error "no event matches \"$event\"" - } elseif {$event <= 0} { - set i [expr {$history(nextid) + $event}] - } else { - set i $event - } - if {$i <= $history(oldest)} { - return -code error "event \"$event\" is too far in the past" - } - if {$i > $history(nextid)} { - return -code error "event \"$event\" hasn't occurred yet" - } - return $i -} - -# tcl::HistEvent -- -# -# Map from an event specifier to the value in the history list. -# -# Parameters: -# event index of history item to redo. See index for a description of -# possible event patterns. -# -# Results: -# The value from the history list. - -proc ::tcl::HistEvent {{event -1}} { - variable history - set i [HistIndex $event] - if {![info exists history($i)]} { - return "" - } - return [string trimright $history($i) \ \n] -} - -# tcl::HistChange -- -# -# Replace a value in the history list. -# -# Parameters: -# newValue The new value to put into the history list. -# event (optional) index of history item to redo. See index for a -# description of possible event patterns. This defaults to 0, -# which specifies the current event. -# -# Side Effects: -# Changes the history list. - -proc ::tcl::HistChange {newValue {event 0}} { - variable history - set i [HistIndex $event] - set history($i) $newValue -} - -# tcl::HistNextID -- -# -# Returns the number of the next history event. -# -# Parameters: -# None. -# -# Side Effects: -# None. - -proc ::tcl::HistNextID {} { - variable history - return [expr {$history(nextid) + 1}] -} - -return - -# Local Variables: -# mode: tcl -# fill-column: 78 -# End: diff --git a/src/runtime/tcl_library/http/http.tcl b/src/runtime/tcl_library/http/http.tcl deleted file mode 100644 index f7dae16f..00000000 --- a/src/runtime/tcl_library/http/http.tcl +++ /dev/null @@ -1,5515 +0,0 @@ -# http.tcl -- -# -# Client-side HTTP for GET, POST, and HEAD commands. These routines can -# be used in untrusted code that uses the Safesock security policy. -# These procedures use a callback interface to avoid using vwait, which -# is not defined in the safe base. -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. - -package require Tcl 8.6- -# Keep this in sync with pkgIndex.tcl and with the install directories in -# Makefiles -package provide http 2.10b1 - -namespace eval http { - # Allow resourcing to not clobber existing data - - variable http - if {![info exists http]} { - array set http { - -accept */* - -cookiejar {} - -pipeline 1 - -postfresh 0 - -proxyhost {} - -proxyport {} - -proxyfilter http::ProxyRequired - -proxynot {} - -proxyauth {} - -repost 0 - -threadlevel 0 - -urlencoding utf-8 - -zip 1 - } - # We need a useragent string of this style or various servers will - # refuse to send us compressed content even when we ask for it. This - # follows the de-facto layout of user-agent strings in current browsers. - # Safe interpreters do not have ::tcl_platform(os) or - # ::tcl_platform(osVersion). - if {[interp issafe]} { - set http(-useragent) "Mozilla/5.0\ - (Windows; U;\ - Windows NT 10.0)\ - http/[package provide http] Tcl/[package provide Tcl]" - } else { - set http(-useragent) "Mozilla/5.0\ - ([string totitle $::tcl_platform(platform)]; U;\ - $::tcl_platform(os) $::tcl_platform(osVersion))\ - http/[package provide http] Tcl/[package provide Tcl]" - } - } - - proc init {} { - # Set up the map for quoting chars. RFC3986 Section 2.3 say percent - # encode all except: "... percent-encoded octets in the ranges of - # ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period - # (%2E), underscore (%5F), or tilde (%7E) should not be created by URI - # producers ..." - for {set i 0} {$i <= 256} {incr i} { - set c [format %c $i] - if {![string match {[-._~a-zA-Z0-9]} $c]} { - set map($c) %[format %.2X $i] - } - } - # These are handled specially - set map(\n) %0D%0A - variable formMap [array get map] - - # Create a map for HTTP/1.1 open sockets - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - if {[info exists socketMapping]} { - # Close open sockets on re-init. Do not permit retries. - foreach {url sock} [array get socketMapping] { - unset -nocomplain socketClosing($url) - unset -nocomplain socketPlayCmd($url) - CloseSocket $sock - } - } - - # CloseSocket should have unset the socket* arrays, one element at - # a time. Now unset anything that was overlooked. - # Traces on "unset socketRdState(*)" will call CancelReadPipeline and - # cancel any queued responses. - # Traces on "unset socketWrState(*)" will call CancelWritePipeline and - # cancel any queued requests. - array unset socketMapping - array unset socketRdState - array unset socketWrState - array unset socketRdQueue - array unset socketWrQueue - array unset socketPhQueue - array unset socketClosing - array unset socketPlayCmd - array unset socketCoEvent - array unset socketProxyId - array set socketMapping {} - array set socketRdState {} - array set socketWrState {} - array set socketRdQueue {} - array set socketWrQueue {} - array set socketPhQueue {} - array set socketClosing {} - array set socketPlayCmd {} - array set socketCoEvent {} - array set socketProxyId {} - return - } - init - - variable urlTypes - if {![info exists urlTypes]} { - set urlTypes(http) [list 80 ::http::AltSocket {} 1 0] - } - - variable encodings [string tolower [encoding names]] - # This can be changed, but iso8859-1 is the RFC standard. - variable defaultCharset - if {![info exists defaultCharset]} { - set defaultCharset "iso8859-1" - } - - # Force RFC 3986 strictness in geturl url verification? - variable strict - if {![info exists strict]} { - set strict 1 - } - - # Let user control default keepalive for compatibility - variable defaultKeepalive - if {![info exists defaultKeepalive]} { - set defaultKeepalive 0 - } - - # Regular expression used to parse cookies - variable CookieRE {(?x) # EXPANDED SYNTAX - \s* # Ignore leading spaces - ([^][\u0000- ()<>@,;:\\""/?={}\u007f-\uffff]+) # Match the name - = # LITERAL: Equal sign - ([!\u0023-+\u002D-:<-\u005B\u005D-~]*) # Match the value - (?: - \s* ; \s* # LITERAL: semicolon - ([^\u0000]+) # Match the options - )? - } - - variable TmpSockCounter 0 - variable ThreadCounter 0 - - variable reasonDict [dict create {*}{ - 100 Continue - 101 {Switching Protocols} - 102 Processing - 103 {Early Hints} - 200 OK - 201 Created - 202 Accepted - 203 {Non-Authoritative Information} - 204 {No Content} - 205 {Reset Content} - 206 {Partial Content} - 207 Multi-Status - 208 {Already Reported} - 226 {IM Used} - 300 {Multiple Choices} - 301 {Moved Permanently} - 302 Found - 303 {See Other} - 304 {Not Modified} - 305 {Use Proxy} - 306 (Unused) - 307 {Temporary Redirect} - 308 {Permanent Redirect} - 400 {Bad Request} - 401 Unauthorized - 402 {Payment Required} - 403 Forbidden - 404 {Not Found} - 405 {Method Not Allowed} - 406 {Not Acceptable} - 407 {Proxy Authentication Required} - 408 {Request Timeout} - 409 Conflict - 410 Gone - 411 {Length Required} - 412 {Precondition Failed} - 413 {Content Too Large} - 414 {URI Too Long} - 415 {Unsupported Media Type} - 416 {Range Not Satisfiable} - 417 {Expectation Failed} - 418 (Unused) - 421 {Misdirected Request} - 422 {Unprocessable Content} - 423 Locked - 424 {Failed Dependency} - 425 {Too Early} - 426 {Upgrade Required} - 428 {Precondition Required} - 429 {Too Many Requests} - 431 {Request Header Fields Too Large} - 451 {Unavailable For Legal Reasons} - 500 {Internal Server Error} - 501 {Not Implemented} - 502 {Bad Gateway} - 503 {Service Unavailable} - 504 {Gateway Timeout} - 505 {HTTP Version Not Supported} - 506 {Variant Also Negotiates} - 507 {Insufficient Storage} - 508 {Loop Detected} - 510 {Not Extended (OBSOLETED)} - 511 {Network Authentication Required} - }] - - variable failedProxyValues { - binary - body - charset - coding - connection - connectionRespFlag - currentsize - host - http - httpResponse - meta - method - querylength - queryoffset - reasonPhrase - requestHeaders - requestLine - responseCode - state - status - tid - totalsize - transfer - type - } - - namespace export geturl config reset wait formatQuery postError quoteString - namespace export register unregister registerError - namespace export requestLine requestHeaders requestHeaderValue - namespace export responseLine responseHeaders responseHeaderValue - namespace export responseCode responseBody responseInfo reasonPhrase - # - Legacy aliases, were never exported: - # data, code, mapReply, meta, ncode - # - Callable from outside (e.g. from TLS) by fully-qualified name, but - # not exported: - # socket - # - Useful, but never exported (and likely to have naming collisions): - # size, status, cleanup, error, init - # Comments suggest that "init" can be used for re-initialisation, - # although the command is undocumented. - # - Never exported, renamed from lower-case names: - # GetTextLine, MakeTransformationChunked. -} - -# http::Log -- -# -# Debugging output -- define this to observe HTTP/1.1 socket usage. -# Should echo any args received. -# -# Arguments: -# msg Message to output -# -if {[info command http::Log] eq {}} {proc http::Log {args} {}} - -# http::register -- -# -# See documentation for details. -# -# Arguments: -# proto URL protocol prefix, e.g. https -# port Default port for protocol -# command Command to use to create socket -# socketCmdVarName (optional) name of variable provided by the protocol -# handler whose value is the callback used by argument -# "command" to open a socket. The default value "::socket" -# will be overwritten by http. -# useSockThread (optional, boolean) -# endToEndProxy (optional, boolean) -# Results: -# list of port, command, variable name, (boolean) threadability, -# and (boolean) endToEndProxy that was registered. - -proc http::register {proto port command {socketCmdVarName {}} {useSockThread 0} {endToEndProxy 0}} { - variable urlTypes - set lower [string tolower $proto] - if {[info exists urlTypes($lower)]} { - unregister $lower - } - set urlTypes($lower) [list $port $command $socketCmdVarName $useSockThread $endToEndProxy] - - # If the external handler for protocol $proto has given $socketCmdVarName the expected - # value "::socket", overwrite it with the new value. - if {($socketCmdVarName ne {}) && ([set $socketCmdVarName] eq {::socket})} { - set $socketCmdVarName ::http::socketAsCallback - } - - return $urlTypes($lower) -} - -# http::unregister -- -# -# Unregisters URL protocol handler -# -# Arguments: -# proto URL protocol prefix, e.g. https -# Results: -# list of port, command, variable name, (boolean) useSockThread, -# and (boolean) endToEndProxy that was unregistered. - -proc http::unregister {proto} { - variable urlTypes - set lower [string tolower $proto] - if {![info exists urlTypes($lower)]} { - return -code error "unsupported url type \"$proto\"" - } - set old $urlTypes($lower) - - # Restore the external handler's original value for $socketCmdVarName. - lassign $old defport defcmd socketCmdVarName useSockThread endToEndProxy - if {($socketCmdVarName ne {}) && ([set $socketCmdVarName] eq {::http::socketAsCallback})} { - set $socketCmdVarName ::socket - } - - unset urlTypes($lower) - return $old -} - -# http::config -- -# -# See documentation for details. -# -# Arguments: -# args Options parsed by the procedure. -# Results: -# TODO - -proc http::config {args} { - variable http - set options [lsort [array names http -*]] - set usage [join $options ", "] - if {[llength $args] == 0} { - set result {} - foreach name $options { - lappend result $name $http($name) - } - return $result - } - set options [string map {- ""} $options] - set pat ^-(?:[join $options |])$ - if {[llength $args] == 1} { - set flag [lindex $args 0] - if {![regexp -- $pat $flag]} { - return -code error "Unknown option $flag, must be: $usage" - } - return $http($flag) - } elseif {[llength $args] % 2} { - return -code error "If more than one argument is supplied, the\ - number of arguments must be even" - } else { - foreach {flag value} $args { - if {![regexp -- $pat $flag]} { - return -code error "Unknown option $flag, must be: $usage" - } - if {($flag eq {-threadlevel}) && ($value ni {0 1 2})} { - return -code error {Option -threadlevel must be 0, 1 or 2} - } - set http($flag) $value - } - return - } -} - -# ------------------------------------------------------------------------------ -# Proc http::reasonPhrase -# ------------------------------------------------------------------------------ -# Command to return the IANA-recommended "reason phrase" for a HTTP Status Code. -# Information obtained from: -# https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml -# -# Arguments: -# code - A valid HTTP Status Code (integer from 100 to 599) -# -# Return Value: the reason phrase -# ------------------------------------------------------------------------------ - -proc http::reasonPhrase {code} { - variable reasonDict - if {![regexp -- {^[1-5][0-9][0-9]$} $code]} { - set msg {argument must be a three-digit integer from 100 to 599} - return -code error $msg - } - if {[dict exists $reasonDict $code]} { - set reason [dict get $reasonDict $code] - } else { - set reason Unassigned - } - return $reason -} - -# http::Finish -- -# -# Clean up the socket and eval close time callbacks -# -# Arguments: -# token Connection token. -# errormsg (optional) If set, forces status to error. -# skipCB (optional) If set, don't call the -command callback. This -# is useful when geturl wants to throw an exception instead -# of calling the callback. That way, the same error isn't -# reported to two places. -# -# Side Effects: -# May close the socket. - -proc http::Finish {token {errormsg ""} {skipCB 0}} { - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - global errorInfo errorCode - set closeQueue 0 - if {$errormsg ne ""} { - set state(error) [list $errormsg $errorInfo $errorCode] - set state(status) "error" - } - if {[info commands ${token}--EventCoroutine] ne {}} { - rename ${token}--EventCoroutine {} - } - if {[info commands ${token}--SocketCoroutine] ne {}} { - rename ${token}--SocketCoroutine {} - } - if {[info exists state(socketcoro)]} { - Log $token Cancel socket after-idle event (Finish) - after cancel $state(socketcoro) - unset state(socketcoro) - } - - # Is this an upgrade request/response? - set upgradeResponse \ - [expr { [info exists state(upgradeRequest)] - && $state(upgradeRequest) - && [info exists state(http)] - && ([ncode $token] eq {101}) - && [info exists state(connection)] - && ("upgrade" in $state(connection)) - && [info exists state(upgrade)] - && ("" ne $state(upgrade)) - }] - - if { ($state(status) eq "timeout") - || ($state(status) eq "error") - || ($state(status) eq "eof") - } { - set closeQueue 1 - set connId $state(socketinfo) - if {[info exists state(sock)]} { - set sock $state(sock) - CloseSocket $state(sock) $token - } else { - # When opening the socket and calling http::reset - # immediately, the socket may not yet exist. - # Test http-4.11 may come here. - } - if {$state(tid) ne {}} { - # When opening the socket in a thread, and calling http::reset - # immediately, the thread may still exist. - # Test http-4.11 may come here. - thread::release $state(tid) - set state(tid) {} - } else { - } - } elseif {$upgradeResponse} { - # Special handling for an upgrade request/response. - # - geturl ensures that this is not a "persistent" socket used for - # multiple HTTP requests, so a call to KeepSocket is not needed. - # - Leave socket open, so a call to CloseSocket is not needed either. - # - Remove fileevent bindings. The caller will set its own bindings. - # - THE CALLER MUST PROCESS THE UPGRADED SOCKET IN THE CALLBACK COMMAND - # PASSED TO http::geturl AS -command callback. - catch {fileevent $state(sock) readable {}} - catch {fileevent $state(sock) writable {}} - } elseif { - ([info exists state(-keepalive)] && !$state(-keepalive)) - || ([info exists state(connection)] && ("close" in $state(connection))) - } { - set closeQueue 1 - set connId $state(socketinfo) - if {[info exists state(sock)]} { - set sock $state(sock) - CloseSocket $state(sock) $token - } else { - # When opening the socket and calling http::reset - # immediately, the socket may not yet exist. - # Test http-4.11 may come here. - } - } elseif { - ([info exists state(-keepalive)] && $state(-keepalive)) - && ([info exists state(connection)] && ("close" ni $state(connection))) - } { - KeepSocket $token - } - if {[info exists state(after)]} { - after cancel $state(after) - unset state(after) - } - if {[info exists state(-command)] && (!$skipCB) - && (![info exists state(done-command-cb)])} { - set state(done-command-cb) yes - if { [catch {namespace eval :: $state(-command) $token} err] - && ($errormsg eq "") - } { - set state(error) [list $err $errorInfo $errorCode] - set state(status) error - } - } - - if { $closeQueue - && [info exists socketMapping($connId)] - && ($socketMapping($connId) eq $sock) - } { - http::CloseQueuedQueries $connId $token - # This calls Unset. Other cases do not need the call. - } - return -} - -# http::KeepSocket - -# -# Keep a socket in the persistent sockets table and connect it to its next -# queued task if possible. Otherwise leave it idle and ready for its next -# use. -# -# If $socketClosing(*), then ("close" in $state(connection)) and therefore -# this command will not be called by Finish. -# -# Arguments: -# token Connection token. - -proc http::KeepSocket {token} { - variable http - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - # Keep this socket open for another request ("Keep-Alive"). - # React if the server half-closes the socket. - # Discussion is in http::geturl. - catch {fileevent $state(sock) readable [list http::CheckEof $state(sock)]} - - # The line below should not be changed in production code. - # It is edited by the test suite. - set TEST_EOF 0 - if {$TEST_EOF} { - # ONLY for testing reaction to server eof. - # No server timeouts will be caught. - catch {fileevent $state(sock) readable {}} - } - - if { [info exists state(socketinfo)] - && [info exists socketMapping($state(socketinfo))] - } { - set connId $state(socketinfo) - # The value "Rready" is set only here. - set socketRdState($connId) Rready - - if { $state(-pipeline) - && [info exists socketRdQueue($connId)] - && [llength $socketRdQueue($connId)] - } { - # The usual case for pipelined responses - if another response is - # queued, arrange to read it. - set token3 [lindex $socketRdQueue($connId) 0] - set socketRdQueue($connId) [lrange $socketRdQueue($connId) 1 end] - - #Log pipelined, GRANT read access to $token3 in KeepSocket - set socketRdState($connId) $token3 - ReceiveResponse $token3 - - # Other pipelined cases. - # - The test above ensures that, for the pipelined cases in the two - # tests below, the read queue is empty. - # - In those two tests, check whether the next write will be - # nonpipeline. - } elseif { - $state(-pipeline) - && [info exists socketWrState($connId)] - && ($socketWrState($connId) eq "peNding") - - && [info exists socketWrQueue($connId)] - && [llength $socketWrQueue($connId)] - && (![set token3 [lindex $socketWrQueue($connId) 0] - set ${token3}(-pipeline) - ] - ) - } { - # This case: - # - Now it the time to run the "pending" request. - # - The next token in the write queue is nonpipeline, and - # socketWrState has been marked "pending" (in - # http::NextPipelinedWrite or http::geturl) so a new pipelined - # request cannot jump the queue. - # - # Tests: - # - In this case the read queue (tested above) is empty and this - # "pending" write token is in front of the rest of the write - # queue. - # - The write state is not Wready and therefore appears to be busy, - # but because it is "pending" we know that it is reserved for the - # first item in the write queue, a non-pipelined request that is - # waiting for the read queue to empty. That has now happened: so - # give that request read and write access. - set conn [set ${token3}(connArgs)] - #Log nonpipeline, GRANT r/w access to $token3 in KeepSocket - set socketRdState($connId) $token3 - set socketWrState($connId) $token3 - set socketWrQueue($connId) [lrange $socketWrQueue($connId) 1 end] - # Connect does its own fconfigure. - fileevent $state(sock) writable [list http::Connect $token3 {*}$conn] - #Log ---- $state(sock) << conn to $token3 for HTTP request (c) - - } elseif { - $state(-pipeline) - && [info exists socketWrState($connId)] - && ($socketWrState($connId) eq "peNding") - - } { - # Should not come here. The second block in the previous "elseif" - # test should be tautologous (but was needed in an earlier - # implementation) and will be removed after testing. - # If we get here, the value "pending" was assigned in error. - # This error would block the queue for ever. - Log ^X$tk <<<<< Error in queueing of requests >>>>> - token $token - - } elseif { - $state(-pipeline) - && [info exists socketWrState($connId)] - && ($socketWrState($connId) eq "Wready") - - && [info exists socketWrQueue($connId)] - && [llength $socketWrQueue($connId)] - && (![set token3 [lindex $socketWrQueue($connId) 0] - set ${token3}(-pipeline) - ] - ) - } { - # This case: - # - The next token in the write queue is nonpipeline, and - # socketWrState is Wready. Get the next event from socketWrQueue. - # Tests: - # - In this case the read state (tested above) is Rready and the - # write state (tested here) is Wready - there is no "pending" - # request. - # Code: - # - The code is the same as the code below for the nonpipelined - # case with a queued request. - set conn [set ${token3}(connArgs)] - #Log nonpipeline, GRANT r/w access to $token3 in KeepSocket - set socketRdState($connId) $token3 - set socketWrState($connId) $token3 - set socketWrQueue($connId) [lrange $socketWrQueue($connId) 1 end] - # Connect does its own fconfigure. - fileevent $state(sock) writable [list http::Connect $token3 {*}$conn] - #Log ---- $state(sock) << conn to $token3 for HTTP request (c) - - } elseif { - (!$state(-pipeline)) - && [info exists socketWrQueue($connId)] - && [llength $socketWrQueue($connId)] - && ("close" ni $state(connection)) - } { - # If not pipelined, (socketRdState eq Rready) tells us that we are - # ready for the next write - there is no need to check - # socketWrState. Write the next request, if one is waiting. - # If the next request is pipelined, it receives premature read - # access to the socket. This is not a problem. - set token3 [lindex $socketWrQueue($connId) 0] - set conn [set ${token3}(connArgs)] - #Log nonpipeline, GRANT r/w access to $token3 in KeepSocket - set socketRdState($connId) $token3 - set socketWrState($connId) $token3 - set socketWrQueue($connId) [lrange $socketWrQueue($connId) 1 end] - # Connect does its own fconfigure. - fileevent $state(sock) writable [list http::Connect $token3 {*}$conn] - #Log ---- $state(sock) << conn to $token3 for HTTP request (d) - - } elseif {(!$state(-pipeline))} { - set socketWrState($connId) Wready - # Rready and Wready and idle: nothing to do. - } - - } else { - CloseSocket $state(sock) $token - # There is no socketMapping($state(socketinfo)), so it does not matter - # that CloseQueuedQueries is not called. - } - return -} - -# http::CheckEof - -# -# Read from a socket and close it if eof. -# The command is bound to "fileevent readable" on an idle socket, and -# "eof" is the only event that should trigger the binding, occurring when -# the server times out and half-closes the socket. -# -# A read is necessary so that [eof] gives a meaningful result. -# Any bytes sent are junk (or a bug). - -proc http::CheckEof {sock} { - set junk [read $sock] - set n [string length $junk] - if {$n} { - Log "WARNING: $n bytes received but no HTTP request sent" - } - - if {[catch {eof $sock} res] || $res} { - # The server has half-closed the socket. - # If a new write has started, its transaction will fail and - # will then be error-handled. - CloseSocket $sock - } - return -} - -# http::CloseSocket - -# -# Close a socket and remove it from the persistent sockets table. If -# possible an http token is included here but when we are called from a -# fileevent on remote closure we need to find the correct entry - hence -# the "else" block of the first "if" command. - -proc http::CloseSocket {s {token {}}} { - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - set tk [namespace tail $token] - - catch {fileevent $s readable {}} - set connId {} - if {$token ne ""} { - variable $token - upvar 0 $token state - if {[info exists state(socketinfo)]} { - set connId $state(socketinfo) - } - } else { - set map [array get socketMapping] - set ndx [lsearch -exact $map $s] - if {$ndx >= 0} { - incr ndx -1 - set connId [lindex $map $ndx] - } - } - if { ($connId ne {}) - && [info exists socketMapping($connId)] - && ($socketMapping($connId) eq $s) - } { - Log "Closing connection $connId (sock $socketMapping($connId))" - if {[catch {close $socketMapping($connId)} err]} { - Log "Error closing connection: $err" - } else { - } - if {$token eq {}} { - # Cases with a non-empty token are handled by Finish, so the tokens - # are finished in connection order. - http::CloseQueuedQueries $connId - } else { - } - } else { - Log "Closing socket $s (no connection info)" - if {[catch {close $s} err]} { - Log "Error closing socket: $err" - } else { - } - } - return -} - -# http::CloseQueuedQueries -# -# connId - identifier "domain:port" for the connection -# token - (optional) used only for logging -# -# Called from http::CloseSocket and http::Finish, after a connection is closed, -# to clear the read and write queues if this has not already been done. - -proc http::CloseQueuedQueries {connId {token {}}} { - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - ##Log CloseQueuedQueries $connId $token - if {![info exists socketMapping($connId)]} { - # Command has already been called. - # Don't come here again - especially recursively. - return - } - - # Used only for logging. - if {$token eq {}} { - set tk {} - } else { - set tk [namespace tail $token] - } - - if { [info exists socketPlayCmd($connId)] - && ($socketPlayCmd($connId) ne {ReplayIfClose Wready {} {}}) - } { - # Before unsetting, there is some unfinished business. - # - If the server sent "Connection: close", we have stored the command - # for retrying any queued requests in socketPlayCmd, so copy that - # value for execution below. socketClosing(*) was also set. - # - Also clear the queues to prevent calls to Finish that would set the - # state for the requests that will be retried to "finished with error - # status". - # - At this stage socketPhQueue is empty. - set unfinished $socketPlayCmd($connId) - set socketRdQueue($connId) {} - set socketWrQueue($connId) {} - } else { - set unfinished {} - } - - Unset $connId - - if {$unfinished ne {}} { - Log ^R$tk Any unfinished transactions (excluding $token) failed \ - - token $token - unfinished $unfinished - {*}$unfinished - # Calls ReplayIfClose. - } - return -} - -# http::Unset -# -# The trace on "unset socketRdState(*)" will call CancelReadPipeline -# and cancel any queued responses. -# The trace on "unset socketWrState(*)" will call CancelWritePipeline -# and cancel any queued requests. - -proc http::Unset {connId} { - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - unset socketMapping($connId) - unset socketRdState($connId) - unset socketWrState($connId) - unset -nocomplain socketRdQueue($connId) - unset -nocomplain socketWrQueue($connId) - unset -nocomplain socketClosing($connId) - unset -nocomplain socketPlayCmd($connId) - unset -nocomplain socketProxyId($connId) - return -} - -# http::reset -- -# -# See documentation for details. -# -# Arguments: -# token Connection token. -# why Status info. -# -# Side Effects: -# See Finish - -proc http::reset {token {why reset}} { - variable $token - upvar 0 $token state - set state(status) $why - catch {fileevent $state(sock) readable {}} - catch {fileevent $state(sock) writable {}} - Finish $token - if {[info exists state(error)]} { - set errorlist $state(error) - unset state - eval ::error $errorlist - # i.e. error msg errorInfo errorCode - } - return -} - -# http::geturl -- -# -# Establishes a connection to a remote url via http. -# -# Arguments: -# url The http URL to goget. -# args Option value pairs. Valid options include: -# -blocksize, -validate, -headers, -timeout -# Results: -# Returns a token for this connection. This token is the name of an -# array that the caller should unset to garbage collect the state. - -proc http::geturl {url args} { - variable urlTypes - - # - If ::tls::socketCmd has its default value "::socket", change it to the - # new value ::http::socketAsCallback. - # - If the old value is different, then it has been modified either by the - # script or by the Tcl installation, and replaced by a new command. The - # script or installation that modified ::tls::socketCmd is also - # responsible for integrating ::http::socketAsCallback into its own "new" - # command, if it wishes to do so. - # - Commands that open a socket: - # - ::socket - basic - # - ::http::AltSocket - can use a thread to avoid blockage by slow - # DNS lookup. See http::config option - # -threadlevel. - # - ::http::socketAsCallback - as ::http::AltSocket, but can also open a - # socket for HTTPS/TLS through a proxy. - - set token [CreateToken $url {*}$args] - variable $token - upvar 0 $token state - - AsyncTransaction $token - - # -------------------------------------------------------------------------- - # Synchronous Call to http::geturl - # -------------------------------------------------------------------------- - # - If the call to http::geturl is asynchronous, it is now complete (apart - # from delivering the return value). - # - If the call to http::geturl is synchronous, the command must now wait - # for the HTTP transaction to be completed. The call to http::wait uses - # vwait, which may be inappropriate if the caller makes other HTTP - # requests in the background. - # -------------------------------------------------------------------------- - - if {![info exists state(-command)]} { - # geturl does EVERYTHING asynchronously, so if the user - # calls it synchronously, we just do a wait here. - http::wait $token - - if {![info exists state]} { - # If we timed out then Finish has been called and the users - # command callback may have cleaned up the token. If so we end up - # here with nothing left to do. - return $token - } elseif {$state(status) eq "error"} { - # Something went wrong while trying to establish the connection. - # Clean up after events and such, but DON'T call the command - # callback (if available) because we're going to throw an - # exception from here instead. - set err [lindex $state(error) 0] - cleanup $token - return -code error $err - } - } - - return $token -} - -# ------------------------------------------------------------------------------ -# Proc http::CreateToken -# ------------------------------------------------------------------------------ -# Command to convert arguments into an initialised request token. -# The return value is the variable name of the token. -# -# Other effects: -# - Sets ::http::http(usingThread) if not already done -# - Sets ::http::http(uid) if not already done -# - Increments ::http::http(uid) -# - May increment ::http::TmpSockCounter -# - Alters ::http::socketPlayCmd, ::http::socketWrQueue if a -keepalive 1 -# request is appended to the queue of a persistent socket that is already -# scheduled to close. -# This also sets state(alreadyQueued) to 1. -# - Alters ::http::socketPhQueue if a -keepalive 1 request is appended to the -# queue of a persistent socket that has not yet been created (and is therefore -# represented by a placeholder). -# This also sets state(ReusingPlaceholder) to 1. -# ------------------------------------------------------------------------------ - -proc http::CreateToken {url args} { - variable http - variable urlTypes - variable defaultCharset - variable defaultKeepalive - variable strict - variable TmpSockCounter - - # Initialize the state variable, an array. We'll return the name of this - # array as the token for the transaction. - - if {![info exists http(usingThread)]} { - set http(usingThread) 0 - } - if {![info exists http(uid)]} { - set http(uid) 0 - } - set token [namespace current]::[incr http(uid)] - ##Log Starting http::geturl - token $token - variable $token - upvar 0 $token state - set tk [namespace tail $token] - reset $token - Log ^A$tk URL $url - token $token - - # Process command options. - - array set state { - -binary false - -blocksize 8192 - -queryblocksize 8192 - -validate 0 - -headers {} - -timeout 0 - -type application/x-www-form-urlencoded - -queryprogress {} - -protocol 1.1 - -guesstype 0 - binary 0 - state created - meta {} - method {} - coding {} - currentsize 0 - totalsize 0 - querylength 0 - queryoffset 0 - type application/octet-stream - body {} - status "" - http "" - httpResponse {} - responseCode {} - reasonPhrase {} - connection keep-alive - tid {} - requestHeaders {} - requestLine {} - transfer {} - proxyUsed none - protoSockThread 0 - protoProxyConn 0 - } - set state(-keepalive) $defaultKeepalive - set state(-strict) $strict - # These flags have their types verified [Bug 811170] - array set type { - -binary boolean - -blocksize integer - -guesstype boolean - -queryblocksize integer - -strict boolean - -timeout integer - -validate boolean - -headers list - } - set state(charset) $defaultCharset - set options { - -binary -blocksize -channel -command -guesstype -handler -headers -keepalive - -method -myaddr -progress -protocol -query -queryblocksize - -querychannel -queryprogress -strict -timeout -type -validate - } - set usage [join [lsort $options] ", "] - set options [string map {- ""} $options] - set pat ^-(?:[join $options |])$ - foreach {flag value} $args { - if {[regexp -- $pat $flag]} { - # Validate numbers - if { [info exists type($flag)] - && (![string is $type($flag) -strict $value]) - } { - unset $token - return -code error \ - "Bad value for $flag ($value), must be $type($flag)" - } - if {($flag eq "-headers") && ([llength $value] % 2 != 0)} { - unset $token - return -code error "Bad value for $flag ($value), number\ - of list elements must be even" - } - set state($flag) $value - } else { - unset $token - return -code error "Unknown option $flag, can be: $usage" - } - } - - # Make sure -query and -querychannel aren't both specified - - set isQueryChannel [info exists state(-querychannel)] - set isQuery [info exists state(-query)] - if {$isQuery && $isQueryChannel} { - unset $token - return -code error "Can't combine -query and -querychannel options!" - } - - # Validate URL, determine the server host and port, and check proxy case - # Recognize user:pass@host URLs also, although we do not do anything with - # that info yet. - - # URLs have basically four parts. - # First, before the colon, is the protocol scheme (e.g. http) - # Second, for HTTP-like protocols, is the authority - # The authority is preceded by // and lasts up to (but not including) - # the following / or ? and it identifies up to four parts, of which - # only one, the host, is required (if an authority is present at all). - # All other parts of the authority (user name, password, port number) - # are optional. - # Third is the resource name, which is split into two parts at a ? - # The first part (from the single "/" up to "?") is the path, and the - # second part (from that "?" up to "#") is the query. *HOWEVER*, we do - # not need to separate them; we send the whole lot to the server. - # Both, path and query are allowed to be missing, including their - # delimiting character. - # Fourth is the fragment identifier, which is everything after the first - # "#" in the URL. The fragment identifier MUST NOT be sent to the server - # and indeed, we don't bother to validate it (it could be an error to - # pass it in here, but it's cheap to strip). - # - # An example of a URL that has all the parts: - # - # http://jschmoe:xyzzy@www.bogus.net:8000/foo/bar.tml?q=foo#changes - # - # The "http" is the protocol, the user is "jschmoe", the password is - # "xyzzy", the host is "www.bogus.net", the port is "8000", the path is - # "/foo/bar.tml", the query is "q=foo", and the fragment is "changes". - # - # Note that the RE actually combines the user and password parts, as - # recommended in RFC 3986. Indeed, that RFC states that putting passwords - # in URLs is a Really Bad Idea, something with which I would agree utterly. - # RFC 9110 Sec 4.2.4 goes further than this, and deprecates the format - # "user:password@". It is retained here for backward compatibility, - # but its use is not recommended. - # - # From a validation perspective, we need to ensure that the parts of the - # URL that are going to the server are correctly encoded. This is only - # done if $state(-strict) is true (inherited from $::http::strict). - - set URLmatcher {(?x) # this is _expanded_ syntax - ^ - (?: (\w+) : ) ? # - (?: // - (?: - ( - [^@/\#?]+ # - ) @ - )? - ( # - [^/:\#?]+ | # host name or IPv4 address - \[ [^/\#?]+ \] # IPv6 address in square brackets - ) - (?: : (\d+) )? # - )? - ( [/\?] [^\#]*)? # (including query) - (?: \# (.*) )? # - $ - } - - # Phase one: parse - if {![regexp -- $URLmatcher $url -> proto user host port srvurl]} { - unset $token - return -code error "Unsupported URL: $url" - } - # Phase two: validate - set host [string trim $host {[]}]; # strip square brackets from IPv6 address - if {$host eq ""} { - # Caller has to provide a host name; we do not have a "default host" - # that would enable us to handle relative URLs. - unset $token - return -code error "Missing host part: $url" - # Note that we don't check the hostname for validity here; if it's - # invalid, we'll simply fail to resolve it later on. - } - if {$port ne "" && $port > 65535} { - unset $token - return -code error "Invalid port number: $port" - } - # The user identification and resource identification parts of the URL can - # have encoded characters in them; take care! - if {$user ne ""} { - # Check for validity according to RFC 3986, Appendix A - set validityRE {(?xi) - ^ - (?: [-\w.~!$&'()*+,;=:] | %[0-9a-f][0-9a-f] )+ - $ - } - if {$state(-strict) && ![regexp -- $validityRE $user]} { - unset $token - # Provide a better error message in this error case - if {[regexp {(?i)%(?![0-9a-f][0-9a-f]).?.?} $user bad]} { - return -code error \ - "Illegal encoding character usage \"$bad\" in URL user" - } - return -code error "Illegal characters in URL user" - } - } - if {$srvurl ne ""} { - # RFC 3986 allows empty paths (not even a /), but servers - # return 400 if the path in the HTTP request doesn't start - # with / , so add it here if needed. - if {[string index $srvurl 0] ne "/"} { - set srvurl /$srvurl - } - # Check for validity according to RFC 3986, Appendix A - set validityRE {(?xi) - ^ - # Path part (already must start with / character) - (?: [-\w.~!$&'()*+,;=:@/] | %[0-9a-f][0-9a-f] )* - # Query part (optional, permits ? characters) - (?: \? (?: [-\w.~!$&'()*+,;=:@/?] | %[0-9a-f][0-9a-f] )* )? - $ - } - if {$state(-strict) && ![regexp -- $validityRE $srvurl]} { - unset $token - # Provide a better error message in this error case - if {[regexp {(?i)%(?![0-9a-f][0-9a-f])..} $srvurl bad]} { - return -code error \ - "Illegal encoding character usage \"$bad\" in URL path" - } - return -code error "Illegal characters in URL path" - } - if {![regexp {^[^?#]+} $srvurl state(path)]} { - set state(path) / - } - } else { - set srvurl / - set state(path) / - } - if {$proto eq ""} { - set proto http - } - set lower [string tolower $proto] - if {![info exists urlTypes($lower)]} { - unset $token - return -code error "Unsupported URL type \"$proto\"" - } - lassign $urlTypes($lower) defport defcmd socketCmdVarName useSockThread end2EndProxy - - # If the external handler for protocol $proto has given $socketCmdVarName the expected - # value "::socket", overwrite it with the new value. - if {($socketCmdVarName ne {}) && ([set $socketCmdVarName] eq {::socket})} { - set $socketCmdVarName ::http::socketAsCallback - } - - set state(protoSockThread) $useSockThread - set state(protoProxyConn) $end2EndProxy - - if {$port eq ""} { - set port $defport - } - if {![catch {$http(-proxyfilter) $host} proxy]} { - set phost [lindex $proxy 0] - set pport [lindex $proxy 1] - } else { - set phost {} - set pport {} - } - - # OK, now reassemble into a full URL - set url ${proto}:// - if {$user ne ""} { - append url $user - append url @ - } - append url $host - if {$port != $defport} { - append url : $port - } - append url $srvurl - # Don't append the fragment! RFC 7230 Sec 5.1 - set state(url) $url - - # Proxy connections aren't shared among different hosts. - set state(socketinfo) $host:$port - - # Save the accept types at this point to prevent a race condition. [Bug - # c11a51c482] - set state(accept-types) $http(-accept) - - # Check whether this is an Upgrade request. - set connectionValues [SplitCommaSeparatedFieldValue \ - [GetFieldValue $state(-headers) Connection]] - set connectionValues [string tolower $connectionValues] - set upgradeValues [SplitCommaSeparatedFieldValue \ - [GetFieldValue $state(-headers) Upgrade]] - set state(upgradeRequest) [expr { "upgrade" in $connectionValues - && [llength $upgradeValues] >= 1}] - set state(connectionValues) $connectionValues - - if {$isQuery || $isQueryChannel} { - # It's a POST. - # A client wishing to send a non-idempotent request SHOULD wait to send - # that request until it has received the response status for the - # previous request. - if {$http(-postfresh)} { - # Override -keepalive for a POST. Use a new connection, and thus - # avoid the small risk of a race against server timeout. - set state(-keepalive) 0 - } else { - # Allow -keepalive but do not -pipeline - wait for the previous - # transaction to finish. - # There is a small risk of a race against server timeout. - set state(-pipeline) 0 - } - } elseif {$state(upgradeRequest)} { - # It's an upgrade request. Method must be GET (untested). - # Force -keepalive to 0 so the connection is not made over a persistent - # socket, i.e. one used for multiple HTTP requests. - set state(-keepalive) 0 - } else { - # It's a non-upgrade GET or HEAD. - set state(-pipeline) $http(-pipeline) - } - - # We cannot handle chunked encodings with -handler, so force HTTP/1.0 - # until we can manage this. - if {[info exists state(-handler)]} { - set state(-protocol) 1.0 - } - - # RFC 7320 A.1 - HTTP/1.0 Keep-Alive is problematic. We do not support it. - if {$state(-protocol) eq "1.0"} { - set state(connection) close - set state(-keepalive) 0 - } - - # Handle proxy requests here for http:// but not for https:// - # The proxying for https is done in the ::http::socketAsCallback command. - # A proxy request for http:// needs the full URL in the HTTP request line, - # including the server name. - # The *tls* test below attempts to describe protocols in addition to - # "https on port 443" that use HTTP over TLS. - if {($phost ne "") && (!$end2EndProxy)} { - set srvurl $url - set targetAddr [list $phost $pport] - set state(proxyUsed) HttpProxy - # The value of state(proxyUsed) none|HttpProxy depends only on the - # all-transactions http::config settings and on the target URL. - # Even if this is a persistent socket there is no need to change the - # value of state(proxyUsed) for other transactions that use the socket: - # they have the same value already. - } else { - set targetAddr [list $host $port] - } - - set sockopts [list -async] - - # Pass -myaddr directly to the socket command - if {[info exists state(-myaddr)]} { - lappend sockopts -myaddr $state(-myaddr) - } - - if {$useSockThread} { - set targs [list -type $token] - } else { - set targs {} - } - set state(connArgs) [list $proto $phost $srvurl] - set state(openCmd) [list {*}$defcmd {*}$sockopts {*}$targs {*}$targetAddr] - - # See if we are supposed to use a previously opened channel. - # - In principle, ANY call to http::geturl could use a previously opened - # channel if it is available - the "Connection: keep-alive" header is a - # request to leave the channel open AFTER completion of this call. - # - In fact, we try to use an existing channel only if -keepalive 1 -- this - # means that at most one channel is left open for each value of - # $state(socketinfo). This property simplifies the mapping of open - # channels. - set reusing 0 - set state(alreadyQueued) 0 - set state(ReusingPlaceholder) 0 - if {$state(-keepalive)} { - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - if {[info exists socketMapping($state(socketinfo))]} { - # - If the connection is idle, it has a "fileevent readable" binding - # to http::CheckEof, in case the server times out and half-closes - # the socket (http::CheckEof closes the other half). - # - We leave this binding in place until just before the last - # puts+flush in http::Connected (GET/HEAD) or http::Write (POST), - # after which the HTTP response might be generated. - - if { [info exists socketClosing($state(socketinfo))] - && $socketClosing($state(socketinfo)) - } { - # socketClosing(*) is set because the server has sent a - # "Connection: close" header. - # Do not use the persistent socket again. - # Since we have only one persistent socket per server, and the - # old socket is not yet dead, add the request to the write queue - # of the dying socket, which will be replayed by ReplayIfClose. - # Also add it to socketWrQueue(*) which is used only if an error - # causes a call to Finish. - set reusing 1 - set sock $socketMapping($state(socketinfo)) - set state(proxyUsed) $socketProxyId($state(socketinfo)) - Log "reusing closing socket $sock for $state(socketinfo) - token $token" - - set state(alreadyQueued) 1 - lassign $socketPlayCmd($state(socketinfo)) com0 com1 com2 com3 - lappend com3 $token - set socketPlayCmd($state(socketinfo)) [list $com0 $com1 $com2 $com3] - lappend socketWrQueue($state(socketinfo)) $token - ##Log socketPlayCmd($state(socketinfo)) is $socketPlayCmd($state(socketinfo)) - ##Log socketWrQueue($state(socketinfo)) is $socketWrQueue($state(socketinfo)) - } elseif { - [catch {fconfigure $socketMapping($state(socketinfo))}] - && (![SockIsPlaceHolder $socketMapping($state(socketinfo))]) - } { - ###Log "Socket $socketMapping($state(socketinfo)) for $state(socketinfo)" - # FIXME Is it still possible for this code to be executed? If - # so, this could be another place to call TestForReplay, - # rather than discarding the queued transactions. - Log "WARNING: socket for $state(socketinfo) was closed\ - - token $token" - Log "WARNING - if testing, pay special attention to this\ - case (GH) which is seldom executed - token $token" - - # This will call CancelReadPipeline, CancelWritePipeline, and - # cancel any queued requests, responses. - Unset $state(socketinfo) - } else { - # Use the persistent socket. - # - The socket may not be ready to write: an earlier request might - # still be still writing (in the pipelined case) or - # writing/reading (in the nonpipeline case). This possibility - # is handled by socketWrQueue later in this command. - # - The socket may not yet exist, and be defined with a placeholder. - set reusing 1 - set sock $socketMapping($state(socketinfo)) - set state(proxyUsed) $socketProxyId($state(socketinfo)) - if {[SockIsPlaceHolder $sock]} { - set state(ReusingPlaceholder) 1 - lappend socketPhQueue($sock) $token - } else { - } - Log "reusing open socket $sock for $state(socketinfo) - token $token" - } - # Do not automatically close the connection socket. - set state(connection) keep-alive - } - } - - set state(reusing) $reusing - unset reusing - - if {![info exists sock]} { - # N.B. At this point ([info exists sock] == $state(reusing)). - # This will no longer be true after we set a value of sock here. - # Give the socket a placeholder name. - set sock HTTP_PLACEHOLDER_[incr TmpSockCounter] - } - set state(sock) $sock - - if {$state(reusing)} { - # Define these for use (only) by http::ReplayIfDead if the persistent - # connection has died. - set state(tmpConnArgs) $state(connArgs) - set state(tmpState) [array get state] - set state(tmpOpenCmd) $state(openCmd) - } - return $token -} - - -# ------------------------------------------------------------------------------ -# Proc ::http::SockIsPlaceHolder -# ------------------------------------------------------------------------------ -# Command to return 0 if the argument is a genuine socket handle, or 1 if is a -# placeholder value generated by geturl or ReplayCore before the real socket is -# created. -# -# Arguments: -# sock - either a valid socket handle or a placeholder value -# -# Return Value: 0 or 1 -# ------------------------------------------------------------------------------ - -proc http::SockIsPlaceHolder {sock} { - expr {[string range $sock 0 16] eq {HTTP_PLACEHOLDER_}} -} - - -# ------------------------------------------------------------------------------ -# state(reusing) -# ------------------------------------------------------------------------------ -# - state(reusing) is set by geturl, ReplayCore -# - state(reusing) is used by geturl, AsyncTransaction, OpenSocket, -# ConfigureNewSocket, and ScheduleRequest when creating and configuring the -# connection. -# - state(reusing) is used by Connect, Connected, Event x 2 when deciding -# whether to call TestForReplay. -# - Other places where state(reusing) is used: -# - Connected - if reusing and not pipelined, start the state(-timeout) -# timeout (when writing). -# - DoneRequest - if reusing and pipelined, send the next pipelined write -# - Event - if reusing and pipelined, start the state(-timeout) -# timeout (when reading). -# - Event - if (not reusing) and pipelined, send the next pipelined -# write. -# ------------------------------------------------------------------------------ - - -# ------------------------------------------------------------------------------ -# Proc http::AsyncTransaction -# ------------------------------------------------------------------------------ -# This command is called by geturl and ReplayCore to prepare the HTTP -# transaction prescribed by a suitably prepared token. -# -# Arguments: -# token - connection token (name of an array) -# -# Return Value: none -# ------------------------------------------------------------------------------ - -proc http::AsyncTransaction {token} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - set sock $state(sock) - - # See comments above re the start of this timeout in other cases. - if {(!$state(reusing)) && ($state(-timeout) > 0)} { - set state(after) [after $state(-timeout) \ - [list http::reset $token timeout]] - } - - if { $state(-keepalive) - && (![info exists socketMapping($state(socketinfo))]) - } { - # This code is executed only for the first -keepalive request on a - # socket. It makes the socket persistent. - ##Log " PreparePersistentConnection" $token -- $sock -- DO - set DoLater [PreparePersistentConnection $token] - } else { - ##Log " PreparePersistentConnection" $token -- $sock -- SKIP - set DoLater {-traceread 0 -tracewrite 0} - } - - if {$state(ReusingPlaceholder)} { - # - This request was added to the socketPhQueue of a persistent - # connection. - # - But the connection has not yet been created and is a placeholder; - # - And the placeholder was created by an earlier request. - # - When that earlier request calls OpenSocket, its placeholder is - # replaced with a true socket, and it then executes the equivalent of - # OpenSocket for any subsequent requests that have - # $state(ReusingPlaceholder). - Log >J$tk after idle coro NO - ReusingPlaceholder - } elseif {$state(alreadyQueued)} { - # - This request was added to the socketWrQueue and socketPlayCmd - # of a persistent connection that will close at the end of its current - # read operation. - Log >J$tk after idle coro NO - alreadyQueued - } else { - Log >J$tk after idle coro YES - set CoroName ${token}--SocketCoroutine - set cancel [after idle [list coroutine $CoroName ::http::OpenSocket \ - $token $DoLater]] - dict set socketCoEvent($state(socketinfo)) $token $cancel - set state(socketcoro) $cancel - } - - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::PreparePersistentConnection -# ------------------------------------------------------------------------------ -# This command is called by AsyncTransaction to initialise a "persistent -# connection" based upon a socket placeholder. It is called the first time the -# socket is associated with a "-keepalive" request. -# -# Arguments: -# token - connection token (name of an array) -# -# Return Value: - DoLater, a dictionary of boolean values listing unfinished -# tasks; to be passed to ConfigureNewSocket via OpenSocket. -# ------------------------------------------------------------------------------ - -proc http::PreparePersistentConnection {token} { - variable $token - upvar 0 $token state - - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - set DoLater {-traceread 0 -tracewrite 0} - set socketMapping($state(socketinfo)) $state(sock) - set socketProxyId($state(socketinfo)) $state(proxyUsed) - # - The value of state(proxyUsed) was set in http::CreateToken to either - # "none" or "HttpProxy". - # - $token is the first transaction to use this placeholder, so there are - # no other tokens whose (proxyUsed) must be modified. - - if {![info exists socketRdState($state(socketinfo))]} { - set socketRdState($state(socketinfo)) {} - # set varName ::http::socketRdState($state(socketinfo)) - # trace add variable $varName unset ::http::CancelReadPipeline - dict set DoLater -traceread 1 - } - if {![info exists socketWrState($state(socketinfo))]} { - set socketWrState($state(socketinfo)) {} - # set varName ::http::socketWrState($state(socketinfo)) - # trace add variable $varName unset ::http::CancelWritePipeline - dict set DoLater -tracewrite 1 - } - - if {$state(-pipeline)} { - #Log new, init for pipelined, GRANT write access to $token in geturl - # Also grant premature read access to the socket. This is OK. - set socketRdState($state(socketinfo)) $token - set socketWrState($state(socketinfo)) $token - } else { - # socketWrState is not used by this non-pipelined transaction. - # We cannot leave it as "Wready" because the next call to - # http::geturl with a pipelined transaction would conclude that the - # socket is available for writing. - #Log new, init for nonpipeline, GRANT r/w access to $token in geturl - set socketRdState($state(socketinfo)) $token - set socketWrState($state(socketinfo)) $token - } - - # Value of socketPhQueue() may have already been set by ReplayCore. - if {![info exists socketPhQueue($state(sock))]} { - set socketPhQueue($state(sock)) {} - } - set socketRdQueue($state(socketinfo)) {} - set socketWrQueue($state(socketinfo)) {} - set socketClosing($state(socketinfo)) 0 - set socketPlayCmd($state(socketinfo)) {ReplayIfClose Wready {} {}} - set socketCoEvent($state(socketinfo)) {} - set socketProxyId($state(socketinfo)) {} - - return $DoLater -} - -# ------------------------------------------------------------------------------ -# Proc ::http::OpenSocket -# ------------------------------------------------------------------------------ -# This command is called as a coroutine idletask to start the asynchronous HTTP -# transaction in most cases. For the exceptions, see the calling code in -# command AsyncTransaction. -# -# Arguments: -# token - connection token (name of an array) -# DoLater - dictionary of boolean values listing unfinished tasks -# -# Return Value: none -# ------------------------------------------------------------------------------ - -proc http::OpenSocket {token DoLater} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - Log >K$tk Start OpenSocket coroutine - - if {![info exists state(-keepalive)]} { - # The request has already been cancelled by the calling script. - return - } - - set sockOld $state(sock) - - dict unset socketCoEvent($state(socketinfo)) $token - unset -nocomplain state(socketcoro) - - if {[catch { - if {$state(reusing)} { - # If ($state(reusing)) is true, then we do not need to create a new - # socket, even if $sockOld is only a placeholder for a socket. - set sock $sockOld - } else { - # set sock in the [catch] below. - set pre [clock milliseconds] - ##Log pre socket opened, - token $token - ##Log $state(openCmd) - token $token - set sock [namespace eval :: $state(openCmd)] - set state(sock) $sock - # Normal return from $state(openCmd) always returns a valid socket. - # A TLS proxy connection with 407 or other failure from the - # proxy server raises an error. - - # Initialisation of a new socket. - ##Log post socket opened, - token $token - ##Log socket opened, now fconfigure - token $token - set delay [expr {[clock milliseconds] - $pre}] - if {$delay > 3000} { - Log socket delay $delay - token $token - } - fconfigure $sock -translation {auto crlf} \ - -buffersize $state(-blocksize) - if {[package vsatisfies [package provide Tcl] 9.0-]} { - fconfigure $sock -profile replace - } - ##Log socket opened, DONE fconfigure - token $token - } - - Log "Using $sock for $state(socketinfo) - token $token" \ - [expr {$state(-keepalive)?"keepalive":""}] - - # Code above has set state(sock) $sock - ConfigureNewSocket $token $sockOld $DoLater - ##Log OpenSocket success $sock - token $token - } result errdict]} { - ##Log OpenSocket failed $result - token $token - # There may be other requests in the socketPhQueue. - # Prepare socketPlayCmd so that Finish will replay them. - if { ($state(-keepalive)) && (!$state(reusing)) - && [info exists socketPhQueue($sockOld)] - && ($socketPhQueue($sockOld) ne {}) - } { - if {$socketMapping($state(socketinfo)) ne $sockOld} { - Log "WARNING: this code should not be reached.\ - {$socketMapping($state(socketinfo)) ne $sockOld}" - } - set socketPlayCmd($state(socketinfo)) [list ReplayIfClose Wready {} $socketPhQueue($sockOld)] - set socketPhQueue($sockOld) {} - } - if {[string range $result 0 20] eq {proxy connect failed:}} { - # - The HTTPS proxy did not create a socket. The pre-existing value - # (a "placeholder socket") is unchanged. - # - The proxy returned a valid HTTP response to the failed CONNECT - # request, and http::SecureProxyConnect copied this to $token, - # and also set ${token}(connection) set to "close". - # - Remove the error message $result so that Finish delivers this - # HTTP response to the caller. - set result {} - } - Finish $token $result - # Because socket creation failed, the placeholder "socket" must be - # "closed" and (if persistent) removed from the persistent sockets - # table. In the {proxy connect failed:} case Finish does this because - # the value of ${token}(connection) is "close". In the other cases here, - # it does so because $result is non-empty. - } - ##Log Leaving http::OpenSocket coroutine [info coroutine] - token $token - return -} - - -# ------------------------------------------------------------------------------ -# Proc ::http::ConfigureNewSocket -# ------------------------------------------------------------------------------ -# Command to initialise a newly-created socket. Called only from OpenSocket. -# -# This command is called by OpenSocket whenever a genuine socket (sockNew) has -# been opened for for use by HTTP. It does two things: -# (1) If $token uses a placeholder socket, this command replaces the placeholder -# socket with the real socket, not only in $token but in all other requests -# that use the same placeholder. -# (2) It calls ScheduleRequest to schedule each request that uses the socket. -# -# -# Value of sockOld/sockNew can be "sock" (genuine socket) or "ph" (placeholder). -# sockNew is ${token}(sock) -# sockOld sockNew CASES -# sock sock (if $reusing, and sockOld is sock) -# ph sock (if (not $reusing), and sockOld is ph) -# ph ph (if $reusing, and sockOld is ph) - not called in this case -# sock ph (cannot occur unless a bug) - not called in this case -# (if (not $reusing), and sockOld is sock) - illogical -# -# Arguments: -# token - connection token (name of an array) -# sockOld - handle or placeholder used for a socket before the call to -# OpenSocket -# DoLater - dictionary of boolean values listing unfinished tasks -# -# Return Value: none -# ------------------------------------------------------------------------------ - -proc http::ConfigureNewSocket {token sockOld DoLater} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - set reusing $state(reusing) - set sock $state(sock) - set proxyUsed $state(proxyUsed) - ##Log " ConfigureNewSocket" $token $sockOld ... -- $reusing $sock $proxyUsed - - if {(!$reusing) && ($sock ne $sockOld)} { - # Replace the placeholder value sockOld with sock. - - if { [info exists socketMapping($state(socketinfo))] - && ($socketMapping($state(socketinfo)) eq $sockOld) - } { - set socketMapping($state(socketinfo)) $sock - set socketProxyId($state(socketinfo)) $proxyUsed - # tokens that use the placeholder $sockOld are updated below. - ##Log set socketMapping($state(socketinfo)) $sock - } - - # Now finish any tasks left over from PreparePersistentConnection on - # the connection. - # - # The "unset" traces are fired by init (clears entire arrays), and - # by http::Unset. - # Unset is called by CloseQueuedQueries and (possibly never) by geturl. - # - # CancelReadPipeline, CancelWritePipeline call http::Finish for each - # token. - # - # FIXME If Finish is placeholder-aware, these traces can be set earlier, - # in PreparePersistentConnection. - - if {[dict get $DoLater -traceread]} { - set varName ::http::socketRdState($state(socketinfo)) - trace add variable $varName unset ::http::CancelReadPipeline - } - if {[dict get $DoLater -tracewrite]} { - set varName ::http::socketWrState($state(socketinfo)) - trace add variable $varName unset ::http::CancelWritePipeline - } - } - - # Do this in all cases. - ScheduleRequest $token - - # Now look at all other tokens that use the placeholder $sockOld. - if { (!$reusing) - && ($sock ne $sockOld) - && [info exists socketPhQueue($sockOld)] - } { - ##Log " ConfigureNewSocket" $token scheduled, now do $socketPhQueue($sockOld) - foreach tok $socketPhQueue($sockOld) { - # 1. Amend the token's (sock). - ##Log set ${tok}(sock) $sock - set ${tok}(sock) $sock - set ${tok}(proxyUsed) $proxyUsed - - # 2. Schedule the token's HTTP request. - # Every token in socketPhQueue(*) has reusing 1 alreadyQueued 0. - set ${tok}(reusing) 1 - set ${tok}(alreadyQueued) 0 - ScheduleRequest $tok - } - set socketPhQueue($sockOld) {} - } - ##Log " ConfigureNewSocket" $token DONE - - return -} - - -# ------------------------------------------------------------------------------ -# The values of array variables socketMapping etc. -# ------------------------------------------------------------------------------ -# connId "$host:$port" -# socketMapping($connId) the handle or placeholder for the socket that is used -# for "-keepalive 1" requests to $connId. -# socketRdState($connId) the token that is currently reading from the socket. -# Other values: Rready (ready for next token to read). -# socketWrState($connId) the token that is currently writing to the socket. -# Other values: Wready (ready for next token to write), -# peNding (would be ready for next write, except that -# the integrity of a non-pipelined transaction requires -# waiting until the read(s) in progress are finished). -# socketRdQueue($connId) List of tokens that are queued for reading later. -# socketWrQueue($connId) List of tokens that are queued for writing later. -# socketPhQueue($sock) List of tokens that are queued to use a placeholder -# socket, when the real socket has not yet been created. -# socketClosing($connId) (boolean) true iff a server response header indicates -# that the server will close the connection at the end of -# the current response. -# socketPlayCmd($connId) The command to execute to replay pending and -# part-completed transactions if the socket closes early. -# socketCoEvent($connId) Identifier for the "after idle" event that will launch -# an OpenSocket coroutine to open or re-use a socket. -# socketProxyId($connId) The type of proxy that this socket uses: values are -# those of state(proxyUsed) i.e. none, HttpProxy, -# SecureProxy, and SecureProxyFailed. -# The value is not used for anything by http, its purpose -# is to set the value of state() for caller information. -# ------------------------------------------------------------------------------ - - -# ------------------------------------------------------------------------------ -# Using socketWrState(*), socketWrQueue(*), socketRdState(*), socketRdQueue(*) -# ------------------------------------------------------------------------------ -# The element socketWrState($connId) has a value which is either the name of -# the token that is permitted to write to the socket, or "Wready" if no -# token is permitted to write. -# -# The code that sets the value to Wready immediately calls -# http::NextPipelinedWrite, which examines socketWrQueue($connId) and -# processes the next request in the queue, if there is one. The value -# Wready is not found when the interpreter is in the event loop unless the -# socket is idle. -# -# The element socketRdState($connId) has a value which is either the name of -# the token that is permitted to read from the socket, or "Rready" if no -# token is permitted to read. -# -# The code that sets the value to Rready then examines -# socketRdQueue($connId) and processes the next request in the queue, if -# there is one. The value Rready is not found when the interpreter is in -# the event loop unless the socket is idle. -# ------------------------------------------------------------------------------ - - -# ------------------------------------------------------------------------------ -# Proc http::ScheduleRequest -# ------------------------------------------------------------------------------ -# Command to either begin the HTTP request, or add it to the appropriate queue. -# Called from two places in ConfigureNewSocket. -# -# Arguments: -# token - connection token (name of an array) -# -# Return Value: none -# ------------------------------------------------------------------------------ - -proc http::ScheduleRequest {token} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - Log >L$tk ScheduleRequest - - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - set Unfinished 0 - - set reusing $state(reusing) - set sockNew $state(sock) - - # The "if" tests below: must test against the current values of - # socketWrState, socketRdState, and so the tests must be done here, - # not earlier in PreparePersistentConnection. - - if {$state(alreadyQueued)} { - # The request has been appended to the queue of a persistent socket - # (that is scheduled to close and have its queue replayed). - # - # A write may or may not be in progress. There is no need to set - # socketWrState to prevent another call stealing write access - all - # subsequent calls on this socket will come here because the socket - # will close after the current read, and its - # socketClosing($connId) is 1. - ##Log "HTTP request for token $token is queued" - - } elseif { $reusing - && $state(-pipeline) - && ($socketWrState($state(socketinfo)) ne "Wready") - } { - ##Log "HTTP request for token $token is queued for pipelined use" - lappend socketWrQueue($state(socketinfo)) $token - - } elseif { $reusing - && (!$state(-pipeline)) - && ($socketWrState($state(socketinfo)) ne "Wready") - } { - # A write is queued or in progress. Lappend to the write queue. - ##Log "HTTP request for token $token is queued for nonpipeline use" - lappend socketWrQueue($state(socketinfo)) $token - - } elseif { $reusing - && (!$state(-pipeline)) - && ($socketWrState($state(socketinfo)) eq "Wready") - && ($socketRdState($state(socketinfo)) ne "Rready") - } { - # A read is queued or in progress, but not a write. Cannot start the - # nonpipeline transaction, but must set socketWrState to prevent a - # pipelined request jumping the queue. - ##Log "HTTP request for token $token is queued for nonpipeline use" - #Log re-use nonpipeline, GRANT delayed write access to $token in geturl - set socketWrState($state(socketinfo)) peNding - lappend socketWrQueue($state(socketinfo)) $token - - } else { - if {$reusing && $state(-pipeline)} { - #Log new, init for pipelined, GRANT write access to $token in geturl - # DO NOT grant premature read access to the socket. - # set socketRdState($state(socketinfo)) $token - set socketWrState($state(socketinfo)) $token - } elseif {$reusing} { - # socketWrState is not used by this non-pipelined transaction. - # We cannot leave it as "Wready" because the next call to - # http::geturl with a pipelined transaction would conclude that the - # socket is available for writing. - #Log new, init for nonpipeline, GRANT r/w access to $token in geturl - set socketRdState($state(socketinfo)) $token - set socketWrState($state(socketinfo)) $token - } else { - } - - # Process the request now. - # - Command is not called unless $state(sock) is a real socket handle - # and not a placeholder. - # - All (!$reusing) cases come here. - # - Some $reusing cases come here too if the connection is - # marked as ready. Those $reusing cases are: - # $reusing && ($socketWrState($state(socketinfo)) eq "Wready") && - # EITHER !$pipeline && ($socketRdState($state(socketinfo)) eq "Rready") - # OR $pipeline - # - #Log ---- $state(socketinfo) << conn to $token for HTTP request (a) - ##Log " ScheduleRequest" $token -- fileevent $state(sock) writable for $token - # Connect does its own fconfigure. - - lassign $state(connArgs) proto phost srvurl - - if {[catch { - fileevent $state(sock) writable \ - [list http::Connect $token $proto $phost $srvurl] - } res opts]} { - # The socket no longer exists. - ##Log bug -- socket gone -- $res -- $opts - } - - } - - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::SendHeader -# ------------------------------------------------------------------------------ -# Command to send a request header, and keep a copy in state(requestHeaders) -# for debugging purposes. -# -# Arguments: -# token - connection token (name of an array) -# key - header name -# value - header value -# -# Return Value: none -# ------------------------------------------------------------------------------ - -proc http::SendHeader {token key value} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - set sock $state(sock) - lappend state(requestHeaders) [string tolower $key] $value - puts $sock "$key: $value" - return -} - -# http::Connected -- -# -# Callback used when the connection to the HTTP server is actually -# established. -# -# Arguments: -# token State token. -# proto What protocol (http, https, etc.) was used to connect. -# phost Are we using keep-alive? Non-empty if yes. -# srvurl Service-local URL that we're requesting -# Results: -# None. - -proc http::Connected {token proto phost srvurl} { - variable http - variable urlTypes - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - if {$state(reusing) && (!$state(-pipeline)) && ($state(-timeout) > 0)} { - set state(after) [after $state(-timeout) \ - [list http::reset $token timeout]] - } - - # Set back the variables needed here. - set sock $state(sock) - set isQueryChannel [info exists state(-querychannel)] - set isQuery [info exists state(-query)] - regexp {^(.+):([^:]+)$} $state(socketinfo) {} host port - - set lower [string tolower $proto] - set defport [lindex $urlTypes($lower) 0] - - # Send data in cr-lf format, but accept any line terminators. - # Initialisation to {auto *} now done in geturl, KeepSocket and DoneRequest. - # We are concerned here with the request (write) not the response (read). - lassign [fconfigure $sock -translation] trRead trWrite - fconfigure $sock -translation [list $trRead crlf] \ - -buffersize $state(-blocksize) - if {[package vsatisfies [package provide Tcl] 9.0-]} { - fconfigure $sock -profile replace - } - - # The following is disallowed in safe interpreters, but the socket is - # already in non-blocking mode in that case. - - catch {fconfigure $sock -blocking off} - set how GET - if {$isQuery} { - set state(querylength) [string length $state(-query)] - if {$state(querylength) > 0} { - set how POST - set contDone 0 - } else { - # There's no query data. - unset state(-query) - set isQuery 0 - } - } elseif {$state(-validate)} { - set how HEAD - } elseif {$isQueryChannel} { - set how POST - # The query channel must be blocking for the async Write to - # work properly. - fconfigure $state(-querychannel) -blocking 1 -translation binary - set contDone 0 - } - if {[info exists state(-method)] && ($state(-method) ne "")} { - set how $state(-method) - } - set accept_types_seen 0 - - Log ^B$tk begin sending request - token $token - - if {[catch { - if {[info exists state(bypass)]} { - set state(method) [lindex [split $state(bypass) { }] 0] - set state(requestHeaders) {} - set state(requestLine) $state(bypass) - } else { - set state(method) $how - set state(requestHeaders) {} - set state(requestLine) "$how $srvurl HTTP/$state(-protocol)" - } - puts $sock $state(requestLine) - set hostValue [GetFieldValue $state(-headers) Host] - if {$hostValue ne {}} { - # Allow Host spoofing. [Bug 928154] - regexp {^[^:]+} $hostValue state(host) - SendHeader $token Host $hostValue - } elseif {$port == $defport} { - # Don't add port in this case, to handle broken servers. [Bug - # #504508] - set state(host) $host - SendHeader $token Host $host - } else { - set state(host) $host - SendHeader $token Host "$host:$port" - } - SendHeader $token User-Agent $http(-useragent) - if {($state(-protocol) > 1.0) && $state(-keepalive)} { - # Send this header, because a 1.1 server is not compelled to treat - # this as the default. - set ConnVal keep-alive - } elseif {($state(-protocol) > 1.0)} { - # RFC2616 sec 8.1.2.1 - set ConnVal close - } else { - # ($state(-protocol) <= 1.0) - # RFC7230 A.1 - # Some server implementations of HTTP/1.0 have a faulty - # implementation of RFC 2068 Keep-Alive. - # Don't leave this to chance. - # For HTTP/1.0 we have already "set state(connection) close" - # and "state(-keepalive) 0". - set ConnVal close - } - # Proxy authorisation (cf. mod by Anders Ramdahl to autoproxy by - # Pat Thoyts). - if {($http(-proxyauth) ne {}) && ($state(proxyUsed) eq {HttpProxy})} { - SendHeader $token Proxy-Authorization $http(-proxyauth) - } - # RFC7230 A.1 - "clients are encouraged not to send the - # Proxy-Connection header field in any requests" - set accept_encoding_seen 0 - set content_type_seen 0 - set connection_seen 0 - foreach {key value} $state(-headers) { - set value [string map [list \n "" \r ""] $value] - set key [string map {" " -} [string trim $key]] - if {[string equal -nocase $key "host"]} { - continue - } - if {[string equal -nocase $key "accept-encoding"]} { - set accept_encoding_seen 1 - } - if {[string equal -nocase $key "accept"]} { - set accept_types_seen 1 - } - if {[string equal -nocase $key "content-type"]} { - set content_type_seen 1 - } - if {[string equal -nocase $key "content-length"]} { - set contDone 1 - set state(querylength) $value - } - if { [string equal -nocase $key "connection"] - && [info exists state(bypass)] - } { - # Value supplied in -headers overrides $ConnVal. - set connection_seen 1 - } elseif {[string equal -nocase $key "connection"]} { - # Remove "close" or "keep-alive" and use our own value. - # In an upgrade request, the upgrade is not guaranteed. - # Value "close" or "keep-alive" tells the server what to do - # if it refuses the upgrade. We send a single "Connection" - # header because some websocket servers, e.g. civetweb, reject - # multiple headers. Bug [d01de3281f] of tcllib/websocket. - set connection_seen 1 - set listVal $state(connectionValues) - if {[set pos [lsearch $listVal close]] != -1} { - set listVal [lreplace $listVal $pos $pos] - } - if {[set pos [lsearch $listVal keep-alive]] != -1} { - set listVal [lreplace $listVal $pos $pos] - } - lappend listVal $ConnVal - set value [join $listVal {, }] - } - if {[string length $key]} { - SendHeader $token $key $value - } - } - # Allow overriding the Accept header on a per-connection basis. Useful - # for working with REST services. [Bug c11a51c482] - if {!$accept_types_seen} { - SendHeader $token Accept $state(accept-types) - } - if { (!$accept_encoding_seen) - && (![info exists state(-handler)]) - && $http(-zip) - } { - SendHeader $token Accept-Encoding gzip,deflate - } elseif {!$accept_encoding_seen} { - SendHeader $token Accept-Encoding identity - } else { - } - if {!$connection_seen} { - SendHeader $token Connection $ConnVal - } - if {$isQueryChannel && ($state(querylength) == 0)} { - # Try to determine size of data in channel. If we cannot seek, the - # surrounding catch will trap us - - set start [tell $state(-querychannel)] - seek $state(-querychannel) 0 end - set state(querylength) \ - [expr {[tell $state(-querychannel)] - $start}] - seek $state(-querychannel) $start - } - - # Note that we don't do Cookie2; that's much nastier and not normally - # observed in practice either. It also doesn't fix the multitude of - # bugs in the basic cookie spec. - if {$http(-cookiejar) ne ""} { - set cookies "" - set separator "" - foreach {key value} [{*}$http(-cookiejar) \ - getCookies $proto $host $state(path)] { - append cookies $separator $key = $value - set separator "; " - } - if {$cookies ne ""} { - SendHeader $token Cookie $cookies - } - } - - # Flush the request header and set up the fileevent that will either - # push the POST data or read the response. - # - # fileevent note: - # - # It is possible to have both the read and write fileevents active at - # this point. The only scenario it seems to affect is a server that - # closes the connection without reading the POST data. (e.g., early - # versions TclHttpd in various error cases). Depending on the - # platform, the client may or may not be able to get the response from - # the server because of the error it will get trying to write the post - # data. Having both fileevents active changes the timing and the - # behavior, but no two platforms (among Solaris, Linux, and NT) behave - # the same, and none behave all that well in any case. Servers should - # always read their POST data if they expect the client to read their - # response. - - if {$isQuery || $isQueryChannel} { - # POST method. - if {!$content_type_seen} { - SendHeader $token Content-Type $state(-type) - } - if {!$contDone} { - SendHeader $token Content-Length $state(querylength) - } - puts $sock "" - flush $sock - # Flush flushes the error in the https case with a bad handshake: - # else the socket never becomes writable again, and hangs until - # timeout (if any). - - lassign [fconfigure $sock -translation] trRead trWrite - fconfigure $sock -translation [list $trRead binary] - fileevent $sock writable [list http::Write $token] - # The http::Write command decides when to make the socket readable, - # using the same test as the GET/HEAD case below. - } else { - # GET or HEAD method. - if { (![catch {fileevent $sock readable} binding]) - && ($binding eq [list http::CheckEof $sock]) - } { - # Remove the "fileevent readable" binding of an idle persistent - # socket to http::CheckEof. We can no longer treat bytes - # received as junk. The server might still time out and - # half-close the socket if it has not yet received the first - # "puts". - fileevent $sock readable {} - } - puts $sock "" - flush $sock - Log ^C$tk end sending request - token $token - # End of writing (GET/HEAD methods). The request has been sent. - - DoneRequest $token - } - - } err]} { - # The socket probably was never connected, OR the connection dropped - # later, OR https handshake error, which may be discovered as late as - # the "flush" command above... - Log "WARNING - if testing, pay special attention to this\ - case (GI) which is seldom executed - token $token" - if {[info exists state(reusing)] && $state(reusing)} { - # The socket was closed at the server end, and closed at - # this end by http::CheckEof. - if {[TestForReplay $token write $err a]} { - return - } else { - Finish $token {failed to re-use socket} - } - - # else: - # This is NOT a persistent socket that has been closed since its - # last use. - # If any other requests are in flight or pipelined/queued, they will - # be discarded. - } elseif {$state(status) eq ""} { - # https handshake errors come here, for - # Tcl 8.7 without http::SecureProxyConnect, and for Tcl 8.6. - set msg [registerError $sock] - registerError $sock {} - if {$msg eq {}} { - set msg {failed to use socket} - } - Finish $token $msg - } elseif {$state(status) ne "error"} { - Finish $token $err - } - } - return -} - -# http::registerError -# -# Called (for example when processing TclTLS activity) to register -# an error for a connection on a specific socket. This helps -# http::Connected to deliver meaningful error messages, e.g. when a TLS -# certificate fails verification. -# -# Usage: http::registerError socket ?newValue? -# -# "set" semantics, except that a "get" (a call without a new value) for a -# non-existent socket returns {}, not an error. - -proc http::registerError {sock args} { - variable registeredErrors - - if { ([llength $args] == 0) - && (![info exists registeredErrors($sock)]) - } { - return - } elseif { ([llength $args] == 1) - && ([lindex $args 0] eq {}) - } { - unset -nocomplain registeredErrors($sock) - return - } - set registeredErrors($sock) {*}$args -} - -# http::DoneRequest -- -# -# Command called when a request has been sent. It will arrange the -# next request and/or response as appropriate. -# -# If this command is called when $socketClosing(*), the request $token -# that calls it must be pipelined and destined to fail. - -proc http::DoneRequest {token} { - variable http - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - set tk [namespace tail $token] - set sock $state(sock) - - # If pipelined, connect the next HTTP request to the socket. - if {$state(reusing) && $state(-pipeline)} { - # Enable next token (if any) to write. - # The value "Wready" is set only here, and - # in http::Event after reading the response-headers of a - # non-reusing transaction. - # Previous value is $token. It cannot be pending. - set socketWrState($state(socketinfo)) Wready - - # Now ready to write the next pipelined request (if any). - http::NextPipelinedWrite $token - } else { - # If pipelined, this is the first transaction on this socket. We wait - # for the response headers to discover whether the connection is - # persistent. (If this is not done and the connection is not - # persistent, we SHOULD retry and then MUST NOT pipeline before knowing - # that we have a persistent connection - # (rfc2616 8.1.2.2)). - } - - # Connect to receive the response, unless the socket is pipelined - # and another response is being sent. - # This code block is separate from the code below because there are - # cases where socketRdState already has the value $token. - if { $state(-keepalive) - && $state(-pipeline) - && [info exists socketRdState($state(socketinfo))] - && ($socketRdState($state(socketinfo)) eq "Rready") - } { - #Log pipelined, GRANT read access to $token in Connected - set socketRdState($state(socketinfo)) $token - } - - if { $state(-keepalive) - && $state(-pipeline) - && [info exists socketRdState($state(socketinfo))] - && ($socketRdState($state(socketinfo)) ne $token) - } { - # Do not read from the socket until it is ready. - ##Log "HTTP response for token $token is queued for pipelined use" - # If $socketClosing(*), then the caller will be a pipelined write and - # execution will come here. - # This token has already been recorded as "in flight" for writing. - # When the socket is closed, the read queue will be cleared in - # CloseQueuedQueries and so the "lappend" here has no effect. - lappend socketRdQueue($state(socketinfo)) $token - } else { - # In the pipelined case, connection for reading depends on the - # value of socketRdState. - # In the nonpipeline case, connection for reading always occurs. - ReceiveResponse $token - } - return -} - -# http::ReceiveResponse -# -# Connects token to its socket for reading. - -proc http::ReceiveResponse {token} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - set sock $state(sock) - - #Log ---- $state(socketinfo) >> conn to $token for HTTP response - lassign [fconfigure $sock -translation] trRead trWrite - fconfigure $sock -translation [list auto $trWrite] \ - -buffersize $state(-blocksize) - if {[package vsatisfies [package provide Tcl] 9.0-]} { - fconfigure $sock -profile replace - } - Log ^D$tk begin receiving response - token $token - - coroutine ${token}--EventCoroutine http::Event $sock $token - if {[info exists state(-handler)] || [info exists state(-progress)]} { - fileevent $sock readable [list http::EventGateway $sock $token] - } else { - fileevent $sock readable ${token}--EventCoroutine - } - return -} - - -# http::EventGateway -# -# Bug [c2dc1da315]. -# - Recursive launch of the coroutine can occur if a -handler or -progress -# callback is used, and the callback command enters the event loop. -# - To prevent this, the fileevent "binding" is disabled while the -# coroutine is in flight. -# - If a recursive call occurs despite these precautions, it is not -# trapped and discarded here, because it is better to report it as a -# bug. -# - Although this solution is believed to be sufficiently general, it is -# used only if -handler or -progress is specified. In other cases, -# the coroutine is called directly. - -proc http::EventGateway {sock token} { - variable $token - upvar 0 $token state - fileevent $sock readable {} - catch {${token}--EventCoroutine} res opts - if {[info commands ${token}--EventCoroutine] ne {}} { - # The coroutine can be deleted by completion (a non-yield return), by - # http::Finish (when there is a premature end to the transaction), by - # http::reset or http::cleanup, or if the caller set option -channel - # but not option -handler: in the last case reading from the socket is - # now managed by commands ::http::Copy*, http::ReceiveChunked, and - # http::MakeTransformationChunked. - # - # Catch in case the coroutine has closed the socket. - catch {fileevent $sock readable [list http::EventGateway $sock $token]} - } - - # If there was an error, re-throw it. - return -options $opts $res -} - - -# http::NextPipelinedWrite -# -# - Connecting a socket to a token for writing is done by this command and by -# command KeepSocket. -# - If another request has a pipelined write scheduled for $token's socket, -# and if the socket is ready to accept it, connect the write and update -# the queue accordingly. -# - This command is called from http::DoneRequest and http::Event, -# IF $state(-pipeline) AND (the current transfer has reached the point at -# which the socket is ready for the next request to be written). -# - This command is called when a token has write access and is pipelined and -# keep-alive, and sets socketWrState to Wready. -# - The command need not consider the case where socketWrState is set to a token -# that does not yet have write access. Such a token is waiting for Rready, -# and the assignment of the connection to the token will be done elsewhere (in -# http::KeepSocket). -# - This command cannot be called after socketWrState has been set to a -# "pending" token value (that is then overwritten by the caller), because that -# value is set by this command when it is called by an earlier token when it -# relinquishes its write access, and the pending token is always the next in -# line to write. - -proc http::NextPipelinedWrite {token} { - variable http - variable socketRdState - variable socketWrState - variable socketWrQueue - variable socketClosing - variable $token - upvar 0 $token state - set connId $state(socketinfo) - - if { [info exists socketClosing($connId)] - && $socketClosing($connId) - } { - # socketClosing(*) is set because the server has sent a - # "Connection: close" header. - # Behave as if the queues are empty - so do nothing. - } elseif { $state(-pipeline) - && [info exists socketWrState($connId)] - && ($socketWrState($connId) eq "Wready") - - && [info exists socketWrQueue($connId)] - && [llength $socketWrQueue($connId)] - && ([set token2 [lindex $socketWrQueue($connId) 0] - set ${token2}(-pipeline) - ] - ) - } { - # - The usual case for a pipelined connection, ready for a new request. - #Log pipelined, GRANT write access to $token2 in NextPipelinedWrite - set conn [set ${token2}(connArgs)] - set socketWrState($connId) $token2 - set socketWrQueue($connId) [lrange $socketWrQueue($connId) 1 end] - # Connect does its own fconfigure. - fileevent $state(sock) writable [list http::Connect $token2 {*}$conn] - #Log ---- $connId << conn to $token2 for HTTP request (b) - - # In the tests below, the next request will be nonpipeline. - } elseif { $state(-pipeline) - && [info exists socketWrState($connId)] - && ($socketWrState($connId) eq "Wready") - - && [info exists socketWrQueue($connId)] - && [llength $socketWrQueue($connId)] - && (![ set token3 [lindex $socketWrQueue($connId) 0] - set ${token3}(-pipeline) - ] - ) - - && [info exists socketRdState($connId)] - && ($socketRdState($connId) eq "Rready") - } { - # The case in which the next request will be non-pipelined, and the read - # and write queues is ready: which is the condition for a non-pipelined - # write. - set conn [set ${token3}(connArgs)] - #Log nonpipeline, GRANT r/w access to $token3 in NextPipelinedWrite - set socketRdState($connId) $token3 - set socketWrState($connId) $token3 - set socketWrQueue($connId) [lrange $socketWrQueue($connId) 1 end] - # Connect does its own fconfigure. - fileevent $state(sock) writable [list http::Connect $token3 {*}$conn] - #Log ---- $state(sock) << conn to $token3 for HTTP request (c) - - } elseif { $state(-pipeline) - && [info exists socketWrState($connId)] - && ($socketWrState($connId) eq "Wready") - - && [info exists socketWrQueue($connId)] - && [llength $socketWrQueue($connId)] - && (![set token2 [lindex $socketWrQueue($connId) 0] - set ${token2}(-pipeline) - ] - ) - } { - # - The case in which the next request will be non-pipelined, but the - # read queue is NOT ready. - # - A read is queued or in progress, but not a write. Cannot start the - # nonpipeline transaction, but must set socketWrState to prevent a new - # pipelined request (in http::geturl) jumping the queue. - # - Because socketWrState($connId) is not set to Wready, the assignment - # of the connection to $token2 will be done elsewhere - by command - # http::KeepSocket when $socketRdState($connId) is set to "Rready". - - #Log re-use nonpipeline, GRANT delayed write access to $token in NextP.. - set socketWrState($connId) peNding - } - return -} - -# http::CancelReadPipeline -# -# Cancel pipelined responses on a closing "Keep-Alive" socket. -# -# - Called by a variable trace on "unset socketRdState($connId)". -# - The variable relates to a Keep-Alive socket, which has been closed. -# - Cancels all pipelined responses. The requests have been sent, -# the responses have not yet been received. -# - This is a hard cancel that ends each transaction with error status, -# and closes the connection. Do not use it if you want to replay failed -# transactions. -# - N.B. Always delete ::http::socketRdState($connId) before deleting -# ::http::socketRdQueue($connId), or this command will do nothing. -# -# Arguments -# As for a trace command on a variable. - -proc http::CancelReadPipeline {name1 connId op} { - variable socketRdQueue - ##Log CancelReadPipeline $name1 $connId $op - if {[info exists socketRdQueue($connId)]} { - set msg {the connection was closed by CancelReadPipeline} - foreach token $socketRdQueue($connId) { - set tk [namespace tail $token] - Log ^X$tk end of response "($msg)" - token $token - set ${token}(status) eof - Finish $token ;#$msg - } - set socketRdQueue($connId) {} - } - return -} - -# http::CancelWritePipeline -# -# Cancel queued events on a closing "Keep-Alive" socket. -# -# - Called by a variable trace on "unset socketWrState($connId)". -# - The variable relates to a Keep-Alive socket, which has been closed. -# - In pipelined or nonpipeline case: cancels all queued requests. The -# requests have not yet been sent, the responses are not due. -# - This is a hard cancel that ends each transaction with error status, -# and closes the connection. Do not use it if you want to replay failed -# transactions. -# - N.B. Always delete ::http::socketWrState($connId) before deleting -# ::http::socketWrQueue($connId), or this command will do nothing. -# -# Arguments -# As for a trace command on a variable. - -proc http::CancelWritePipeline {name1 connId op} { - variable socketWrQueue - - ##Log CancelWritePipeline $name1 $connId $op - if {[info exists socketWrQueue($connId)]} { - set msg {the connection was closed by CancelWritePipeline} - foreach token $socketWrQueue($connId) { - set tk [namespace tail $token] - Log ^X$tk end of response "($msg)" - token $token - set ${token}(status) eof - Finish $token ;#$msg - } - set socketWrQueue($connId) {} - } - return -} - -# http::ReplayIfDead -- -# -# - A query on a re-used persistent socket failed at the earliest opportunity, -# because the socket had been closed by the server. Keep the token, tidy up, -# and try to connect on a fresh socket. -# - The connection is monitored for eof by the command http::CheckEof. Thus -# http::ReplayIfDead is needed only when a server event (half-closing an -# apparently idle connection), and a client event (sending a request) occur at -# almost the same time, and neither client nor server detects the other's -# action before performing its own (an "asynchronous close event"). -# - To simplify testing of http::ReplayIfDead, set TEST_EOF 1 in -# http::KeepSocket, and then http::ReplayIfDead will be called if http::geturl -# is called at any time after the server timeout. -# -# Arguments: -# token Connection token. -# -# Side Effects: -# Use the same token, but try to open a new socket. - -proc http::ReplayIfDead {token doing} { - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - - Log running http::ReplayIfDead for $token $doing - - # 1. Merge the tokens for transactions in flight, the read (response) queue, - # and the write (request) queue. - - set InFlightR {} - set InFlightW {} - - # Obtain the tokens for transactions in flight. - if {$state(-pipeline)} { - # Two transactions may be in flight. The "read" transaction was first. - # It is unlikely that the server would close the socket if a response - # was pending; however, an earlier request (as well as the present - # request) may have been sent and ignored if the socket was half-closed - # by the server. - - if { [info exists socketRdState($state(socketinfo))] - && ($socketRdState($state(socketinfo)) ne "Rready") - } { - lappend InFlightR $socketRdState($state(socketinfo)) - } elseif {($doing eq "read")} { - lappend InFlightR $token - } - - if { [info exists socketWrState($state(socketinfo))] - && $socketWrState($state(socketinfo)) ni {Wready peNding} - } { - lappend InFlightW $socketWrState($state(socketinfo)) - } elseif {($doing eq "write")} { - lappend InFlightW $token - } - - # Report any inconsistency of $token with socket*state. - if { ($doing eq "read") - && [info exists socketRdState($state(socketinfo))] - && ($token ne $socketRdState($state(socketinfo))) - } { - Log WARNING - ReplayIfDead pipelined token $token $doing \ - ne socketRdState($state(socketinfo)) \ - $socketRdState($state(socketinfo)) - - } elseif { - ($doing eq "write") - && [info exists socketWrState($state(socketinfo))] - && ($token ne $socketWrState($state(socketinfo))) - } { - Log WARNING - ReplayIfDead pipelined token $token $doing \ - ne socketWrState($state(socketinfo)) \ - $socketWrState($state(socketinfo)) - } - } else { - # One transaction should be in flight. - # socketRdState, socketWrQueue are used. - # socketRdQueue should be empty. - - # Report any inconsistency of $token with socket*state. - if {$token ne $socketRdState($state(socketinfo))} { - Log WARNING - ReplayIfDead nonpipeline token $token $doing \ - ne socketRdState($state(socketinfo)) \ - $socketRdState($state(socketinfo)) - } - - # Report the inconsistency that socketRdQueue is non-empty. - if { [info exists socketRdQueue($state(socketinfo))] - && ($socketRdQueue($state(socketinfo)) ne {}) - } { - Log WARNING - ReplayIfDead nonpipeline token $token $doing \ - has read queue socketRdQueue($state(socketinfo)) \ - $socketRdQueue($state(socketinfo)) ne {} - } - - lappend InFlightW $socketRdState($state(socketinfo)) - set socketRdQueue($state(socketinfo)) {} - } - - set newQueue {} - lappend newQueue {*}$InFlightR - lappend newQueue {*}$socketRdQueue($state(socketinfo)) - lappend newQueue {*}$InFlightW - lappend newQueue {*}$socketWrQueue($state(socketinfo)) - - - # 2. Tidy up token. This is a cut-down form of Finish/CloseSocket. - # Do not change state(status). - # No need to after cancel state(after) - either this is done in - # ReplayCore/ReInit, or Finish is called. - - catch {close $state(sock)} - Unset $state(socketinfo) - - # 2a. Tidy the tokens in the queues - this is done in ReplayCore/ReInit. - # - Transactions, if any, that are awaiting responses cannot be completed. - # They are listed for re-sending in newQueue. - # - All tokens are preserved for re-use by ReplayCore, and their variables - # will be re-initialised by calls to ReInit. - # - The relevant element of socketMapping, socketRdState, socketWrState, - # socketRdQueue, socketWrQueue, socketClosing, socketPlayCmd will be set - # to new values in ReplayCore. - - ReplayCore $newQueue - return -} - -# http::ReplayIfClose -- -# -# A request on a socket that was previously "Connection: keep-alive" has -# received a "Connection: close" response header. The server supplies -# that response correctly, but any later requests already queued on this -# connection will be lost when the socket closes. -# -# This command takes arguments that represent the socketWrState, -# socketRdQueue and socketWrQueue for this connection. The socketRdState -# is not needed because the server responds in full to the request that -# received the "Connection: close" response header. -# -# Existing request tokens $token (::http::$n) are preserved. The caller -# will be unaware that the request was processed this way. - -proc http::ReplayIfClose {Wstate Rqueue Wqueue} { - Log running http::ReplayIfClose for $Wstate $Rqueue $Wqueue - - if {$Wstate in $Rqueue || $Wstate in $Wqueue} { - Log WARNING duplicate token in http::ReplayIfClose - token $Wstate - set Wstate Wready - } - - # 1. Create newQueue - set InFlightW {} - if {$Wstate ni {Wready peNding}} { - lappend InFlightW $Wstate - } - ##Log $Rqueue -- $InFlightW -- $Wqueue - set newQueue {} - lappend newQueue {*}$Rqueue - lappend newQueue {*}$InFlightW - lappend newQueue {*}$Wqueue - - # 2. Cleanup - none needed, done by the caller. - - ReplayCore $newQueue - return -} - -# http::ReInit -- -# -# Command to restore a token's state to a condition that -# makes it ready to replay a request. -# -# Command http::geturl stores extra state in state(tmp*) so -# we don't need to do the argument processing again. -# -# The caller must: -# - Set state(reusing) and state(sock) to their new values after calling -# this command. -# - Unset state(tmpState), state(tmpOpenCmd) if future calls to ReplayCore -# or ReInit are inappropriate for this token. Typically only one retry -# is allowed. -# The caller may also unset state(tmpConnArgs) if this value (and the -# token) will be used immediately. The value is needed by tokens that -# will be stored in a queue. -# -# Arguments: -# token Connection token. -# -# Return Value: (boolean) true iff the re-initialisation was successful. - -proc http::ReInit {token} { - variable $token - upvar 0 $token state - - if {!( - [info exists state(tmpState)] - && [info exists state(tmpOpenCmd)] - && [info exists state(tmpConnArgs)] - ) - } { - Log FAILED in http::ReInit via ReplayCore - NO tmp vars for $token - return 0 - } - - if {[info exists state(after)]} { - after cancel $state(after) - unset state(after) - } - if {[info exists state(socketcoro)]} { - Log $token Cancel socket after-idle event (ReInit) - after cancel $state(socketcoro) - unset state(socketcoro) - } - - # Don't alter state(status) - this would trigger http::wait if it is in use. - set tmpState $state(tmpState) - set tmpOpenCmd $state(tmpOpenCmd) - set tmpConnArgs $state(tmpConnArgs) - foreach name [array names state] { - if {$name ne "status"} { - unset state($name) - } - } - - # Don't alter state(status). - # Restore state(tmp*) - the caller may decide to unset them. - # Restore state(tmpConnArgs) which is needed for connection. - # state(tmpState), state(tmpOpenCmd) are needed only for retries. - - dict unset tmpState status - array set state $tmpState - set state(tmpState) $tmpState - set state(tmpOpenCmd) $tmpOpenCmd - set state(tmpConnArgs) $tmpConnArgs - - return 1 -} - -# http::ReplayCore -- -# -# Command to replay a list of requests, using existing connection tokens. -# -# Abstracted from http::geturl which stores extra state in state(tmp*) so -# we don't need to do the argument processing again. -# -# Arguments: -# newQueue List of connection tokens. -# -# Side Effects: -# Use existing tokens, but try to open a new socket. - -proc http::ReplayCore {newQueue} { - variable TmpSockCounter - - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - if {[llength $newQueue] == 0} { - # Nothing to do. - return - } - - ##Log running ReplayCore for {*}$newQueue - set newToken [lindex $newQueue 0] - set newQueue [lrange $newQueue 1 end] - - # 3. Use newToken, and restore its values of state(*). Do not restore - # elements tmp* - we try again only once. - - set token $newToken - variable $token - upvar 0 $token state - - if {![ReInit $token]} { - Log FAILED in http::ReplayCore - NO tmp vars - Log ReplayCore reject $token - Finish $token {cannot send this request again} - return - } - - set tmpState $state(tmpState) - set tmpOpenCmd $state(tmpOpenCmd) - set tmpConnArgs $state(tmpConnArgs) - unset state(tmpState) - unset state(tmpOpenCmd) - unset state(tmpConnArgs) - - set state(reusing) 0 - set state(ReusingPlaceholder) 0 - set state(alreadyQueued) 0 - Log ReplayCore replay $token - - # Give the socket a placeholder name before it is created. - set sock HTTP_PLACEHOLDER_[incr TmpSockCounter] - set state(sock) $sock - - # Move the $newQueue into the placeholder socket's socketPhQueue. - set socketPhQueue($sock) {} - foreach tok $newQueue { - if {[ReInit $tok]} { - set ${tok}(reusing) 1 - set ${tok}(sock) $sock - lappend socketPhQueue($sock) $tok - Log ReplayCore replay $tok - } else { - Log ReplayCore reject $tok - set ${tok}(reusing) 1 - set ${tok}(sock) NONE - Finish $tok {cannot send this request again} - } - } - - AsyncTransaction $token - - return -} - -# Data access functions: -# Data - the URL data -# Status - the transaction status: ok, reset, eof, timeout, error -# Code - the HTTP transaction code, e.g., 200 -# Size - the size of the URL data - -proc http::responseBody {token} { - variable $token - upvar 0 $token state - return $state(body) -} -proc http::status {token} { - if {![info exists $token]} { - return "error" - } - variable $token - upvar 0 $token state - return $state(status) -} -proc http::responseLine {token} { - variable $token - upvar 0 $token state - return $state(http) -} -proc http::requestLine {token} { - variable $token - upvar 0 $token state - return $state(requestLine) -} -proc http::responseCode {token} { - variable $token - upvar 0 $token state - if {[regexp {[0-9]{3}} $state(http) numeric_code]} { - return $numeric_code - } else { - return $state(http) - } -} -proc http::size {token} { - variable $token - upvar 0 $token state - return $state(currentsize) -} -proc http::requestHeaders {token args} { - set lenny [llength $args] - if {$lenny > 1} { - return -code error {usage: ::http::requestHeaders token ?headerName?} - } else { - return [Meta $token request {*}$args] - } -} -proc http::responseHeaders {token args} { - set lenny [llength $args] - if {$lenny > 1} { - return -code error {usage: ::http::responseHeaders token ?headerName?} - } else { - return [Meta $token response {*}$args] - } -} -proc http::requestHeaderValue {token header} { - Meta $token request $header VALUE -} -proc http::responseHeaderValue {token header} { - Meta $token response $header VALUE -} -proc http::Meta {token who args} { - variable $token - upvar 0 $token state - - if {$who eq {request}} { - set whom requestHeaders - } elseif {$who eq {response}} { - set whom meta - } else { - return -code error {usage: ::http::Meta token request|response ?headerName ?VALUE??} - } - - set header [string tolower [lindex $args 0]] - set how [string tolower [lindex $args 1]] - set lenny [llength $args] - if {$lenny == 0} { - return $state($whom) - } elseif {($lenny > 2) || (($lenny == 2) && ($how ne {value}))} { - return -code error {usage: ::http::Meta token request|response ?headerName ?VALUE??} - } else { - set result {} - set combined {} - foreach {key value} $state($whom) { - if {$key eq $header} { - lappend result $key $value - append combined $value {, } - } - } - if {$lenny == 1} { - return $result - } else { - return [string range $combined 0 end-2] - } - } -} - - -# ------------------------------------------------------------------------------ -# Proc http::responseInfo -# ------------------------------------------------------------------------------ -# Command to return a dictionary of the most useful metadata of a HTTP -# response. -# -# Arguments: -# token - connection token (name of an array) -# -# Return Value: a dict. See man page http(n) for a description of each item. -# ------------------------------------------------------------------------------ - -proc http::responseInfo {token} { - variable $token - upvar 0 $token state - set result {} - foreach {key origin name} { - stage STATE state - status STATE status - responseCode STATE responseCode - reasonPhrase STATE reasonPhrase - contentType STATE type - binary STATE binary - redirection RESP location - upgrade STATE upgrade - error ERROR - - postError STATE posterror - method STATE method - charset STATE charset - compression STATE coding - httpRequest STATE -protocol - httpResponse STATE httpResponse - url STATE url - connectionRequest REQ connection - connectionResponse RESP connection - connectionActual STATE connection - transferEncoding STATE transfer - totalPost STATE querylength - currentPost STATE queryoffset - totalSize STATE totalsize - currentSize STATE currentsize - proxyUsed STATE proxyUsed - } { - if {$origin eq {STATE}} { - if {[info exists state($name)]} { - dict set result $key $state($name) - } else { - # Should never come here - dict set result $key {} - } - } elseif {$origin eq {REQ}} { - dict set result $key [requestHeaderValue $token $name] - } elseif {$origin eq {RESP}} { - dict set result $key [responseHeaderValue $token $name] - } elseif {$origin eq {ERROR}} { - # Don't flood the dict with data. The command ::http::error is - # available. - if {[info exists state(error)]} { - set msg [lindex $state(error) 0] - } else { - set msg {} - } - dict set result $key $msg - } else { - # Should never come here - dict set result $key {} - } - } - return $result -} -proc http::error {token} { - variable $token - upvar 0 $token state - if {[info exists state(error)]} { - return $state(error) - } - return -} -proc http::postError {token} { - variable $token - upvar 0 $token state - if {[info exists state(postErrorFull)]} { - return $state(postErrorFull) - } - return -} - -# http::cleanup -# -# Garbage collect the state associated with a transaction -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Unsets the state array. - -proc http::cleanup {token} { - variable $token - upvar 0 $token state - if {[info commands ${token}--EventCoroutine] ne {}} { - rename ${token}--EventCoroutine {} - } - if {[info commands ${token}--SocketCoroutine] ne {}} { - rename ${token}--SocketCoroutine {} - } - if {[info exists state(after)]} { - after cancel $state(after) - unset state(after) - } - if {[info exists state(socketcoro)]} { - Log $token Cancel socket after-idle event (cleanup) - after cancel $state(socketcoro) - unset state(socketcoro) - } - if {[info exists state]} { - unset state - } - return -} - -# http::Connect -# -# This callback is made when an asynchronous connection completes. -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Sets the status of the connection, which unblocks -# the waiting geturl call - -proc http::Connect {token proto phost srvurl} { - variable $token - upvar 0 $token state - set tk [namespace tail $token] - - if {[catch {eof $state(sock)} tmp] || $tmp} { - set err "due to unexpected EOF" - } elseif {[set err [fconfigure $state(sock) -error]] ne ""} { - # set err is done in test - } else { - # All OK - set state(state) connecting - fileevent $state(sock) writable {} - ::http::Connected $token $proto $phost $srvurl - return - } - - # Error cases. - Log "WARNING - if testing, pay special attention to this\ - case (GJ) which is seldom executed - token $token" - if {[info exists state(reusing)] && $state(reusing)} { - # The socket was closed at the server end, and closed at - # this end by http::CheckEof. - if {[TestForReplay $token write $err b]} { - return - } - - # else: - # This is NOT a persistent socket that has been closed since its - # last use. - # If any other requests are in flight or pipelined/queued, they will - # be discarded. - } - Finish $token "connect failed: $err" - return -} - -# http::Write -# -# Write POST query data to the socket -# -# Arguments -# token The token for the connection -# -# Side Effects -# Write the socket and handle callbacks. - -proc http::Write {token} { - variable http - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - set tk [namespace tail $token] - set sock $state(sock) - - # Output a block. Tcl will buffer this if the socket blocks - set done 0 - if {[catch { - # Catch I/O errors on dead sockets - - if {[info exists state(-query)]} { - # Chop up large query strings so queryprogress callback can give - # smooth feedback. - if { $state(queryoffset) + $state(-queryblocksize) - >= $state(querylength) - } { - # This will be the last puts for the request-body. - if { (![catch {fileevent $sock readable} binding]) - && ($binding eq [list http::CheckEof $sock]) - } { - # Remove the "fileevent readable" binding of an idle - # persistent socket to http::CheckEof. We can no longer - # treat bytes received as junk. The server might still time - # out and half-close the socket if it has not yet received - # the first "puts". - fileevent $sock readable {} - } - } - puts -nonewline $sock \ - [string range $state(-query) $state(queryoffset) \ - [expr {$state(queryoffset) + $state(-queryblocksize) - 1}]] - incr state(queryoffset) $state(-queryblocksize) - if {$state(queryoffset) >= $state(querylength)} { - set state(queryoffset) $state(querylength) - set done 1 - } - } else { - # Copy blocks from the query channel - - set outStr [read $state(-querychannel) $state(-queryblocksize)] - if {[eof $state(-querychannel)]} { - # This will be the last puts for the request-body. - if { (![catch {fileevent $sock readable} binding]) - && ($binding eq [list http::CheckEof $sock]) - } { - # Remove the "fileevent readable" binding of an idle - # persistent socket to http::CheckEof. We can no longer - # treat bytes received as junk. The server might still time - # out and half-close the socket if it has not yet received - # the first "puts". - fileevent $sock readable {} - } - } - puts -nonewline $sock $outStr - incr state(queryoffset) [string length $outStr] - if {[eof $state(-querychannel)]} { - set done 1 - } - } - } err opts]} { - # Do not call Finish here, but instead let the read half of the socket - # process whatever server reply there is to get. - set state(posterror) $err - set info [dict get $opts -errorinfo] - set code [dict get $opts -code] - set state(postErrorFull) [list $err $info $code] - set done 1 - } - - if {$done} { - catch {flush $sock} - fileevent $sock writable {} - Log ^C$tk end sending request - token $token - # End of writing (POST method). The request has been sent. - - DoneRequest $token - } - - # Callback to the client after we've completely handled everything. - - if {[string length $state(-queryprogress)]} { - namespace eval :: $state(-queryprogress) \ - [list $token $state(querylength) $state(queryoffset)] - } - return -} - -# http::Event -# -# Handle input on the socket. This command is the core of -# the coroutine commands ${token}--EventCoroutine that are -# bound to "fileevent $sock readable" and process input. -# -# Arguments -# sock The socket receiving input. -# token The token returned from http::geturl -# -# Side Effects -# Read the socket and handle callbacks. - -proc http::Event {sock token} { - variable http - variable socketMapping - variable socketRdState - variable socketWrState - variable socketRdQueue - variable socketWrQueue - variable socketPhQueue - variable socketClosing - variable socketPlayCmd - variable socketCoEvent - variable socketProxyId - - variable $token - upvar 0 $token state - set tk [namespace tail $token] - while 1 { - yield - ##Log Event call - token $token - - if {![info exists state]} { - Log "Event $sock with invalid token '$token' - remote close?" - if {!([catch {eof $sock} tmp] || $tmp)} { - if {[set d [read $sock]] ne ""} { - Log "WARNING: additional data left on closed socket\ - - token $token" - } else { - } - } else { - } - Log ^X$tk end of response (token error) - token $token - CloseSocket $sock - return - } else { - } - if {$state(state) eq "connecting"} { - ##Log - connecting - token $token - if { $state(reusing) - && $state(-pipeline) - && ($state(-timeout) > 0) - && (![info exists state(after)]) - } { - set state(after) [after $state(-timeout) \ - [list http::reset $token timeout]] - } else { - } - - if {[catch {gets $sock state(http)} nsl]} { - Log "WARNING - if testing, pay special attention to this\ - case (GK) which is seldom executed - token $token" - if {[info exists state(reusing)] && $state(reusing)} { - # The socket was closed at the server end, and closed at - # this end by http::CheckEof. - - if {[TestForReplay $token read $nsl c]} { - return - } else { - } - # else: - # This is NOT a persistent socket that has been closed since - # its last use. - # If any other requests are in flight or pipelined/queued, - # they will be discarded. - } else { - # https handshake errors come here, for - # Tcl 8.7 with http::SecureProxyConnect. - set msg [registerError $sock] - registerError $sock {} - if {$msg eq {}} { - set msg $nsl - } - Log ^X$tk end of response (error) - token $token - Finish $token $msg - return - } - } elseif {$nsl >= 0} { - ##Log - connecting 1 - token $token - set state(state) "header" - } elseif { ([catch {eof $sock} tmp] || $tmp) - && [info exists state(reusing)] - && $state(reusing) - } { - # The socket was closed at the server end, and we didn't notice. - # This is the first read - where the closure is usually first - # detected. - - if {[TestForReplay $token read {} d]} { - return - } else { - } - - # else: - # This is NOT a persistent socket that has been closed since its - # last use. - # If any other requests are in flight or pipelined/queued, they - # will be discarded. - } else { - } - } elseif {$state(state) eq "header"} { - if {[catch {gets $sock line} nhl]} { - ##Log header failed - token $token - Log ^X$tk end of response (error) - token $token - Finish $token $nhl - return - } elseif {$nhl == 0} { - ##Log header done - token $token - Log ^E$tk end of response headers - token $token - # We have now read all headers - # We ignore HTTP/1.1 100 Continue returns. RFC2616 sec 8.2.3 - if { ($state(http) == "") - || ([regexp {^\S+\s(\d+)} $state(http) {} x] && $x == 100) - } { - set state(state) "connecting" - continue - # This was a "return" in the pre-coroutine code. - } else { - } - - # We have $state(http) so let's split it into its components. - if {[regexp {^HTTP/(\S+) ([0-9]{3}) (.*)$} $state(http) \ - -> httpResponse responseCode reasonPhrase] - } { - set state(httpResponse) $httpResponse - set state(responseCode) $responseCode - set state(reasonPhrase) $reasonPhrase - } else { - set state(httpResponse) $state(http) - set state(responseCode) $state(http) - set state(reasonPhrase) $state(http) - } - - if { ([info exists state(connection)]) - && ([info exists socketMapping($state(socketinfo))]) - && ("keep-alive" in $state(connection)) - && ($state(-keepalive)) - && (!$state(reusing)) - && ($state(-pipeline)) - } { - # Response headers received for first request on a - # persistent socket. Now ready for pipelined writes (if - # any). - # Previous value is $token. It cannot be "pending". - set socketWrState($state(socketinfo)) Wready - http::NextPipelinedWrite $token - } else { - } - - # Once a "close" has been signaled, the client MUST NOT send any - # more requests on that connection. - # - # If either the client or the server sends the "close" token in - # the Connection header, that request becomes the last one for - # the connection. - - if { ([info exists state(connection)]) - && ([info exists socketMapping($state(socketinfo))]) - && ("close" in $state(connection)) - && ($state(-keepalive)) - } { - # The server warns that it will close the socket after this - # response. - ##Log WARNING - socket will close after response for $token - # Prepare data for a call to ReplayIfClose. - Log $token socket will close after this transaction - # 1. Cancel socket-assignment coro events that have not yet - # launched, and add the tokens to the write queue. - if {[info exists socketCoEvent($state(socketinfo))]} { - foreach {tok can} $socketCoEvent($state(socketinfo)) { - lappend socketWrQueue($state(socketinfo)) $tok - unset -nocomplain ${tok}(socketcoro) - after cancel $can - Log $tok Cancel socket after-idle event (Event) - Log Move $tok from socketCoEvent to socketWrQueue and cancel its after idle coro - } - set socketCoEvent($state(socketinfo)) {} - } else { - } - - if { ($socketRdQueue($state(socketinfo)) ne {}) - || ($socketWrQueue($state(socketinfo)) ne {}) - || ($socketWrState($state(socketinfo)) ni - [list Wready peNding $token]) - } { - set InFlightW $socketWrState($state(socketinfo)) - if {$InFlightW in [list Wready peNding $token]} { - set InFlightW Wready - } else { - set msg "token ${InFlightW} is InFlightW" - ##Log $msg - token $token - } - set socketPlayCmd($state(socketinfo)) \ - [list ReplayIfClose $InFlightW \ - $socketRdQueue($state(socketinfo)) \ - $socketWrQueue($state(socketinfo))] - - # - All tokens are preserved for re-use by ReplayCore. - # - Queues are preserved in case of Finish with error, - # but are not used for anything else because - # socketClosing(*) is set below. - # - Cancel the state(after) timeout events. - foreach tokenVal $socketRdQueue($state(socketinfo)) { - if {[info exists ${tokenVal}(after)]} { - after cancel [set ${tokenVal}(after)] - unset ${tokenVal}(after) - } else { - } - # Tokens in the read queue have no (socketcoro) to - # cancel. - } - } else { - set socketPlayCmd($state(socketinfo)) \ - {ReplayIfClose Wready {} {}} - } - - # Do not allow further connections on this socket (but - # geturl can add new requests to the replay). - set socketClosing($state(socketinfo)) 1 - } else { - } - - set state(state) body - - # According to - # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Connection - # any comma-separated "Connection:" list implies keep-alive, but I - # don't see this in the RFC so we'll play safe and - # scan any list for "close". - # Done here to support combining duplicate header field's values. - if { [info exists state(connection)] - && ("close" ni $state(connection)) - && ("keep-alive" ni $state(connection)) - } { - lappend state(connection) "keep-alive" - } else { - } - - # If doing a HEAD, then we won't get any body - if {$state(-validate)} { - Log ^F$tk end of response for HEAD request - token $token - set state(state) complete - Eot $token - return - } elseif { - ($state(method) eq {CONNECT}) - && [string is integer -strict $state(responseCode)] - && ($state(responseCode) >= 200) - && ($state(responseCode) < 300) - } { - # A successful CONNECT response has no body. - # (An unsuccessful CONNECT has headers and body.) - # The code below is abstracted from Eot/Finish, but - # keeps the socket open. - catch {fileevent $state(sock) readable {}} - catch {fileevent $state(sock) writable {}} - set state(state) complete - set state(status) ok - if {[info commands ${token}--EventCoroutine] ne {}} { - rename ${token}--EventCoroutine {} - } - if {[info commands ${token}--SocketCoroutine] ne {}} { - rename ${token}--SocketCoroutine {} - } - if {[info exists state(socketcoro)]} { - Log $token Cancel socket after-idle event (Finish) - after cancel $state(socketcoro) - unset state(socketcoro) - } - if {[info exists state(after)]} { - after cancel $state(after) - unset state(after) - } - if { [info exists state(-command)] - && (![info exists state(done-command-cb)]) - } { - set state(done-command-cb) yes - if {[catch {namespace eval :: $state(-command) $token} err]} { - set state(error) [list $err $errorInfo $errorCode] - set state(status) error - } - } - return - } else { - } - - # - For non-chunked transfer we may have no body - in this case - # we may get no further file event if the connection doesn't - # close and no more data is sent. We can tell and must finish - # up now - not later - the alternative would be to wait until - # the server times out. - # - In this case, the server has NOT told the client it will - # close the connection, AND it has NOT indicated the resource - # length EITHER by setting the Content-Length (totalsize) OR - # by using chunked Transfer-Encoding. - # - Do not worry here about the case (Connection: close) because - # the server should close the connection. - # - IF (NOT Connection: close) AND (NOT chunked encoding) AND - # (totalsize == 0). - - if { (!( [info exists state(connection)] - && ("close" in $state(connection)) - ) - ) - && ($state(transfer) eq {}) - && ($state(totalsize) == 0) - } { - set msg {body size is 0 and no events likely - complete} - Log "$msg - token $token" - set msg {(length unknown, set to 0)} - Log ^F$tk end of response body {*}$msg - token $token - set state(state) complete - Eot $token - return - } else { - } - - # We have to use binary translation to count bytes properly. - lassign [fconfigure $sock -translation] trRead trWrite - fconfigure $sock -translation [list binary $trWrite] - - if { - $state(-binary) || [IsBinaryContentType $state(type)] - } { - # Turn off conversions for non-text data. - set state(binary) 1 - } else { - } - if {[info exists state(-channel)]} { - if {$state(binary) || [llength [ContentEncoding $token]]} { - fconfigure $state(-channel) -translation binary - } else { - } - if {![info exists state(-handler)]} { - # Initiate a sequence of background fcopies. - fileevent $sock readable {} - rename ${token}--EventCoroutine {} - CopyStart $sock $token - return - } else { - } - } else { - } - } elseif {$nhl > 0} { - # Process header lines. - ##Log header - token $token - $line - if {[regexp -nocase {^([^:]+):(.+)$} $line x key value]} { - set key [string tolower $key] - switch -- $key { - content-type { - set state(type) [string trim [string tolower $value]] - # Grab the optional charset information. - if {[regexp -nocase \ - {charset\s*=\s*\"((?:[^""]|\\\")*)\"} \ - $state(type) -> cs]} { - set state(charset) [string map {{\"} \"} $cs] - } else { - regexp -nocase {charset\s*=\s*(\S+?);?} \ - $state(type) -> state(charset) - } - } - content-length { - set state(totalsize) [string trim $value] - } - content-encoding { - set state(coding) [string trim $value] - } - transfer-encoding { - set state(transfer) \ - [string trim [string tolower $value]] - } - proxy-connection - - connection { - # RFC 7230 Section 6.1 states that a comma-separated - # list is an acceptable value. - if {![info exists state(connectionRespFlag)]} { - # This is the first "Connection" response header. - # Scrub the earlier value set by iniitialisation. - set state(connectionRespFlag) {} - set state(connection) {} - } - foreach el [SplitCommaSeparatedFieldValue $value] { - lappend state(connection) [string tolower $el] - } - } - upgrade { - set state(upgrade) [string trim $value] - } - set-cookie { - if {$http(-cookiejar) ne ""} { - ParseCookie $token [string trim $value] - } else { - } - } - } - lappend state(meta) $key [string trim $value] - } else { - } - } else { - } - } else { - # Now reading body - ##Log body - token $token - if {[catch { - if {[info exists state(-handler)]} { - set n [namespace eval :: $state(-handler) [list $sock $token]] - ##Log handler $n - token $token - # N.B. the protocol has been set to 1.0 because the -handler - # logic is not expected to handle chunked encoding. - # FIXME Allow -handler with 1.1 on dechunked stacked chan. - if {$state(totalsize) == 0} { - # We know the transfer is complete only when the server - # closes the connection - i.e. eof is not an error. - set state(state) complete - } else { - } - if {![string is integer -strict $n]} { - if 1 { - # Do not tolerate bad -handler - fail with error - # status. - set msg {the -handler command for http::geturl must\ - return an integer (the number of bytes\ - read)} - Log ^X$tk end of response (handler error) -\ - token $token - Eot $token $msg - } else { - # Tolerate the bad -handler, and continue. The - # penalty: - # (a) Because the handler returns nonsense, we know - # the transfer is complete only when the server - # closes the connection - i.e. eof is not an - # error. - # (b) http::size will not be accurate. - # (c) The transaction is already downgraded to 1.0 - # to avoid chunked transfer encoding. It MUST - # also be forced to "Connection: close" or the - # HTTP/1.0 equivalent; or it MUST fail (as - # above) if the server sends - # "Connection: keep-alive" or the HTTP/1.0 - # equivalent. - set n 0 - set state(state) complete - } - } else { - } - } elseif {[info exists state(transfer_final)]} { - # This code forgives EOF in place of the final CRLF. - set line [GetTextLine $sock] - set n [string length $line] - set state(state) complete - if {$n > 0} { - # - HTTP trailers (late response headers) are permitted - # by Chunked Transfer-Encoding, and can be safely - # ignored. - # - Do not count these bytes in the total received for - # the response body. - Log "trailer of $n bytes after final chunk -\ - token $token" - append state(transfer_final) $line - set n 0 - } else { - Log ^F$tk end of response body (chunked) - token $token - Log "final chunk part - token $token" - Eot $token - } - } elseif { [info exists state(transfer)] - && ($state(transfer) eq "chunked") - } { - ##Log chunked - token $token - set size 0 - set hexLenChunk [GetTextLine $sock] - #set ntl [string length $hexLenChunk] - if {[string trim $hexLenChunk] ne ""} { - scan $hexLenChunk %x size - if {$size != 0} { - ##Log chunk-measure $size - token $token - set chunk [BlockingRead $sock $size] - set n [string length $chunk] - if {$n >= 0} { - append state(body) $chunk - incr state(log_size) [string length $chunk] - ##Log chunk $n cumul $state(log_size) -\ - token $token - } else { - } - if {$size != [string length $chunk]} { - Log "WARNING: mis-sized chunk:\ - was [string length $chunk], should be\ - $size - token $token" - set n 0 - set state(connection) close - Log ^X$tk end of response (chunk error) \ - - token $token - set msg {error in chunked encoding - fetch\ - terminated} - Eot $token $msg - } else { - } - # CRLF that follows chunk. - # If eof, this is handled at the end of this proc. - GetTextLine $sock - } else { - set n 0 - set state(transfer_final) {} - } - } else { - # Line expected to hold chunk length is empty, or eof. - ##Log bad-chunk-measure - token $token - set n 0 - set state(connection) close - Log ^X$tk end of response (chunk error) - token $token - Eot $token {error in chunked encoding -\ - fetch terminated} - } - } else { - ##Log unchunked - token $token - if {$state(totalsize) == 0} { - # We know the transfer is complete only when the server - # closes the connection. - set state(state) complete - set reqSize $state(-blocksize) - } else { - # Ask for the whole of the unserved response-body. - # This works around a problem with a tls::socket - for - # https in keep-alive mode, and a request for - # $state(-blocksize) bytes, the last part of the - # resource does not get read until the server times out. - set reqSize [expr { $state(totalsize) - - $state(currentsize)}] - - # The workaround fails if reqSize is - # capped at $state(-blocksize). - # set reqSize [expr {min($reqSize, $state(-blocksize))}] - } - set c $state(currentsize) - set t $state(totalsize) - ##Log non-chunk currentsize $c of totalsize $t -\ - token $token - set block [read $sock $reqSize] - set n [string length $block] - if {$n >= 0} { - append state(body) $block - ##Log non-chunk [string length $state(body)] -\ - token $token - } else { - } - } - # This calculation uses n from the -handler, chunked, or - # unchunked case as appropriate. - if {[info exists state]} { - if {$n >= 0} { - incr state(currentsize) $n - set c $state(currentsize) - set t $state(totalsize) - ##Log another $n currentsize $c totalsize $t -\ - token $token - } else { - } - # If Content-Length - check for end of data. - if { - ($state(totalsize) > 0) - && ($state(currentsize) >= $state(totalsize)) - } { - Log ^F$tk end of response body (unchunked) -\ - token $token - set state(state) complete - Eot $token - } else { - } - } else { - } - } err]} { - Log ^X$tk end of response (error ${err}) - token $token - Finish $token $err - return - } else { - if {[info exists state(-progress)]} { - namespace eval :: $state(-progress) \ - [list $token $state(totalsize) $state(currentsize)] - } else { - } - } - } - - # catch as an Eot above may have closed the socket already - # $state(state) may be connecting, header, body, or complete - if {(![catch {eof $sock} eof]) && $eof} { - # [eof sock] succeeded and the result was 1 - ##Log eof - token $token - if {[info exists $token]} { - set state(connection) close - if {$state(state) eq "complete"} { - # This includes all cases in which the transaction - # can be completed by eof. - # The value "complete" is set only in http::Event, and it is - # used only in the test above. - Log ^F$tk end of response body (unchunked, eof) -\ - token $token - Eot $token - } else { - # Premature eof. - Log ^X$tk end of response (unexpected eof) - token $token - Eot $token eof - } - } else { - # open connection closed on a token that has been cleaned up. - Log ^X$tk end of response (token error) - token $token - CloseSocket $sock - } - } else { - # EITHER [eof sock] failed - presumed done by Eot - # OR [eof sock] succeeded and the result was 0 - } - } - return -} - -# http::TestForReplay -# -# Command called if eof is discovered when a socket is first used for a -# new transaction. Typically this occurs if a persistent socket is used -# after a period of idleness and the server has half-closed the socket. -# -# token - the connection token returned by http::geturl -# doing - "read" or "write" -# err - error message, if any -# caller - code to identify the caller - used only in logging -# -# Return Value: boolean, true iff the command calls http::ReplayIfDead. - -proc http::TestForReplay {token doing err caller} { - variable http - variable $token - upvar 0 $token state - set tk [namespace tail $token] - if {$doing eq "read"} { - set code Q - set action response - set ing reading - } else { - set code P - set action request - set ing writing - } - - if {$err eq {}} { - set err "detect eof when $ing (server timed out?)" - } - - if {$state(method) eq "POST" && !$http(-repost)} { - # No Replay. - # The present transaction will end when Finish is called. - # That call to Finish will abort any other transactions - # currently in the write queue. - # For calls from http::Event this occurs when execution - # reaches the code block at the end of that proc. - set msg {no retry for POST with http::config -repost 0} - Log reusing socket failed "($caller)" - $msg - token $token - Log error - $err - token $token - Log ^X$tk end of $action (error) - token $token - return 0 - } else { - # Replay. - set msg {try a new socket} - Log reusing socket failed "($caller)" - $msg - token $token - Log error - $err - token $token - Log ^$code$tk Any unfinished (incl this one) failed - token $token - ReplayIfDead $token $doing - return 1 - } -} - -# http::IsBinaryContentType -- -# -# Determine if the content-type means that we should definitely transfer -# the data as binary. [Bug 838e99a76d] -# -# Arguments -# type The content-type of the data. -# -# Results: -# Boolean, true if we definitely should be binary. - -proc http::IsBinaryContentType {type} { - lassign [split [string tolower $type] "/;"] major minor - if {$major eq "text"} { - return false - } - # There's a bunch of XML-as-application-format things about. See RFC 3023 - # and so on. - if {$major eq "application"} { - set minor [string trimright $minor] - if {$minor in {"json" "xml" "xml-external-parsed-entity" "xml-dtd"}} { - return false - } - } - # Not just application/foobar+xml but also image/svg+xml, so let us not - # restrict things for now... - if {[string match "*+xml" $minor]} { - return false - } - return true -} - -proc http::ParseCookie {token value} { - variable http - variable CookieRE - variable $token - upvar 0 $token state - - if {![regexp $CookieRE $value -> cookiename cookieval opts]} { - # Bad cookie! No biscuit! - return - } - - # Convert the options into a list before feeding into the cookie store; - # ugly, but quite easy. - set realopts {hostonly 1 path / secure 0 httponly 0} - dict set realopts origin $state(host) - dict set realopts domain $state(host) - foreach option [split [regsub -all {;\s+} $opts \u0000] \u0000] { - regexp {^(.*?)(?:=(.*))?$} $option -> optname optval - switch -exact -- [string tolower $optname] { - expires { - if {[catch { - #Sun, 06 Nov 1994 08:49:37 GMT - dict set realopts expires \ - [clock scan $optval -format "%a, %d %b %Y %T %Z"] - }] && [catch { - # Google does this one - #Mon, 01-Jan-1990 00:00:00 GMT - dict set realopts expires \ - [clock scan $optval -format "%a, %d-%b-%Y %T %Z"] - }] && [catch { - # This is in the RFC, but it is also in the original - # Netscape cookie spec, now online at: - # - #Sunday, 06-Nov-94 08:49:37 GMT - dict set realopts expires \ - [clock scan $optval -format "%A, %d-%b-%y %T %Z"] - }]} {catch { - #Sun Nov 6 08:49:37 1994 - dict set realopts expires \ - [clock scan $optval -gmt 1 -format "%a %b %d %T %Y"] - }} - } - max-age { - # Normalize - if {[string is integer -strict $optval]} { - dict set realopts expires [expr {[clock seconds] + $optval}] - } - } - domain { - # From the domain-matches definition [RFC 2109, section 2]: - # Host A's name domain-matches host B's if [...] - # A is a FQDN string and has the form NB, where N is a - # non-empty name string, B has the form .B', and B' is a - # FQDN string. (So, x.y.com domain-matches .y.com but - # not y.com.) - if {$optval ne "" && ![string match *. $optval]} { - dict set realopts domain [string trimleft $optval "."] - dict set realopts hostonly [expr { - ! [string match .* $optval] - }] - } - } - path { - if {[string match /* $optval]} { - dict set realopts path $optval - } - } - secure - httponly { - dict set realopts [string tolower $optname] 1 - } - } - } - dict set realopts key $cookiename - dict set realopts value $cookieval - {*}$http(-cookiejar) storeCookie $realopts -} - -# http::GetTextLine -- -# -# Get one line with the stream in crlf mode. -# Used if Transfer-Encoding is chunked, to read the line that -# reports the size of the following chunk. -# Empty line is not distinguished from eof. The caller must -# be able to handle this. -# -# Arguments -# sock The socket receiving input. -# -# Results: -# The line of text, without trailing newline - -proc http::GetTextLine {sock} { - set tr [fconfigure $sock -translation] - lassign $tr trRead trWrite - fconfigure $sock -translation [list crlf $trWrite] - set r [BlockingGets $sock] - fconfigure $sock -translation $tr - return $r -} - -# http::BlockingRead -# -# Replacement for a blocking read. -# The caller must be a coroutine. -# Used when we expect to read a chunked-encoding -# chunk of known size. - -proc http::BlockingRead {sock size} { - if {$size < 1} { - return - } - set result {} - while 1 { - set need [expr {$size - [string length $result]}] - set block [read $sock $need] - set eof [expr {[catch {eof $sock} tmp] || $tmp}] - append result $block - if {[string length $result] >= $size || $eof} { - return $result - } else { - yield - } - } -} - -# http::BlockingGets -# -# Replacement for a blocking gets. -# The caller must be a coroutine. -# Empty line is not distinguished from eof. The caller must -# be able to handle this. - -proc http::BlockingGets {sock} { - while 1 { - set count [gets $sock line] - set eof [expr {[catch {eof $sock} tmp] || $tmp}] - if {$count >= 0 || $eof} { - return $line - } else { - yield - } - } -} - -# http::CopyStart -# -# Error handling wrapper around fcopy -# -# Arguments -# sock The socket to copy from -# token The token returned from http::geturl -# -# Side Effects -# This closes the connection upon error - -proc http::CopyStart {sock token {initial 1}} { - upvar 0 $token state - if {[info exists state(transfer)] && $state(transfer) eq "chunked"} { - foreach coding [ContentEncoding $token] { - if {$coding eq {deflateX}} { - # Use the standards-compliant choice. - set coding2 decompress - } else { - set coding2 $coding - } - lappend state(zlib) [zlib stream $coding2] - } - MakeTransformationChunked $sock [namespace code [list CopyChunk $token]] - } else { - if {$initial} { - foreach coding [ContentEncoding $token] { - if {$coding eq {deflateX}} { - # Use the standards-compliant choice. - set coding2 decompress - } else { - set coding2 $coding - } - zlib push $coding2 $sock - } - } - if {[catch { - # FIXME Keep-Alive on https tls::socket with unchunked transfer - # hangs until the server times out. A workaround is possible, as for - # the case without -channel, but it does not use the neat "fcopy" - # solution. - fcopy $sock $state(-channel) -size $state(-blocksize) -command \ - [list http::CopyDone $token] - } err]} { - Finish $token $err - } - } - return -} - -proc http::CopyChunk {token chunk} { - upvar 0 $token state - if {[set count [string length $chunk]]} { - incr state(currentsize) $count - if {[info exists state(zlib)]} { - foreach stream $state(zlib) { - set chunk [$stream add $chunk] - } - } - puts -nonewline $state(-channel) $chunk - if {[info exists state(-progress)]} { - namespace eval :: [linsert $state(-progress) end \ - $token $state(totalsize) $state(currentsize)] - } - } else { - Log "CopyChunk Finish - token $token" - if {[info exists state(zlib)]} { - set excess "" - foreach stream $state(zlib) { - catch { - $stream put -finalize $excess - set excess "" - set overflood "" - while {[set overflood [$stream get]] ne ""} { append excess $overflood } - } - } - puts -nonewline $state(-channel) $excess - foreach stream $state(zlib) { $stream close } - unset state(zlib) - } - Eot $token ;# FIX ME: pipelining. - } - return -} - -# http::CopyDone -# -# fcopy completion callback -# -# Arguments -# token The token returned from http::geturl -# count The amount transferred -# -# Side Effects -# Invokes callbacks - -proc http::CopyDone {token count {error {}}} { - variable $token - upvar 0 $token state - set sock $state(sock) - incr state(currentsize) $count - if {[info exists state(-progress)]} { - namespace eval :: $state(-progress) \ - [list $token $state(totalsize) $state(currentsize)] - } - # At this point the token may have been reset. - if {[string length $error]} { - Finish $token $error - } elseif {[catch {eof $sock} iseof] || $iseof} { - Eot $token - } else { - CopyStart $sock $token 0 - } - return -} - -# http::Eot -# -# Called when either: -# a. An eof condition is detected on the socket. -# b. The client decides that the response is complete. -# c. The client detects an inconsistency and aborts the transaction. -# -# Does: -# 1. Set state(status) -# 2. Reverse any Content-Encoding -# 3. Convert charset encoding and line ends if necessary -# 4. Call http::Finish -# -# Arguments -# token The token returned from http::geturl -# force (previously) optional, has no effect -# reason - "eof" means premature EOF (not EOF as the natural end of -# the response) -# - "" means completion of response, with or without EOF -# - anything else describes an error condition other than -# premature EOF. -# -# Side Effects -# Clean up the socket - -proc http::Eot {token {reason {}}} { - variable $token - upvar 0 $token state - if {$reason eq "eof"} { - # Premature eof. - set state(status) eof - set reason {} - } elseif {$reason ne ""} { - # Abort the transaction. - set state(status) $reason - } else { - # The response is complete. - set state(status) ok - } - - if {[string length $state(body)] > 0} { - if {[catch { - foreach coding [ContentEncoding $token] { - if {$coding eq {deflateX}} { - # First try the standards-compliant choice. - set coding2 decompress - if {[catch {zlib $coding2 $state(body)} result]} { - # If that fails, try the MS non-compliant choice. - set coding2 inflate - set state(body) [zlib $coding2 $state(body)] - } else { - # error {failed at standards-compliant deflate} - set state(body) $result - } - } else { - set state(body) [zlib $coding $state(body)] - } - } - } err]} { - Log "error doing decompression for token $token: $err" - Finish $token $err - return - } - - if {!$state(binary)} { - # If we are getting text, set the incoming channel's encoding - # correctly. iso8859-1 is the RFC default, but this could be any - # IANA charset. However, we only know how to convert what we have - # encodings for. - - set enc [CharsetToEncoding $state(charset)] - if {$enc ne "binary"} { - if {[package vsatisfies [package provide Tcl] 9.0-]} { - set state(body) [encoding convertfrom -profile replace $enc $state(body)] - } else { - set state(body) [encoding convertfrom $enc $state(body)] - } - } - - # Translate text line endings. - set state(body) [string map {\r\n \n \r \n} $state(body)] - } - if {[info exists state(-guesstype)] && $state(-guesstype)} { - GuessType $token - } - } - Finish $token $reason - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::GuessType -# ------------------------------------------------------------------------------ -# Command to attempt limited analysis of a resource with undetermined -# Content-Type, i.e. "application/octet-stream". This value can be set for two -# reasons: -# (a) by the server, in a Content-Type header -# (b) by http::geturl, as the default value if the server does not supply a -# Content-Type header. -# -# This command converts a resource if: -# (1) it has type application/octet-stream -# (2) it begins with an XML declaration "?" -# (3) one tag is named "encoding" and has a recognised value; or no "encoding" -# tag exists (defaulting to utf-8) -# -# RFC 9110 Sec. 8.3 states: -# "If a Content-Type header field is not present, the recipient MAY either -# assume a media type of "application/octet-stream" ([RFC2046], Section 4.5.1) -# or examine the data to determine its type." -# -# The RFC goes on to describe the pitfalls of "MIME sniffing", including -# possible security risks. -# -# Arguments: -# token - connection token -# -# Return Value: (boolean) true iff a change has been made -# ------------------------------------------------------------------------------ - -proc http::GuessType {token} { - variable $token - upvar 0 $token state - - if {$state(type) ne {application/octet-stream}} { - return 0 - } - - set body $state(body) - # e.g. { ...} - - if {![regexp -nocase -- {^<[?]xml[[:space:]][^>?]*[?]>} $body match]} { - return 0 - } - # e.g. {} - - set contents [regsub -- {[[:space:]]+} $match { }] - set contents [string range [string tolower $contents] 6 end-2] - # e.g. {version="1.0" encoding="utf-8"} - # without excess whitespace or upper-case letters - - if {![regexp -- {^([^=" ]+="[^"]+" )+$} "$contents "]} { - return 0 - } - # The application/xml default encoding: - set res utf-8 - - set tagList [regexp -all -inline -- {[^=" ]+="[^"]+"} $contents] - foreach tag $tagList { - regexp -- {([^=" ]+)="([^"]+)"} $tag -> name value - if {$name eq {encoding}} { - set res $value - } - } - set enc [CharsetToEncoding $res] - if {$enc eq "binary"} { - return 0 - } - if {[package vsatisfies [package provide Tcl] 9.0-]} { - set state(body) [encoding convertfrom -profile replace $enc $state(body)] - } else { - set state(body) [encoding convertfrom $enc $state(body)] - } - set state(body) [string map {\r\n \n \r \n} $state(body)] - set state(type) application/xml - set state(binary) 0 - set state(charset) $res - return 1 -} - - -# http::wait -- -# -# See documentation for details. -# -# Arguments: -# token Connection token. -# -# Results: -# The status after the wait. - -proc http::wait {token} { - variable $token - upvar 0 $token state - - if {![info exists state(status)] || $state(status) eq ""} { - # We must wait on the original variable name, not the upvar alias - vwait ${token}(status) - } - - return [status $token] -} - -# http::formatQuery -- -# -# See documentation for details. Call http::formatQuery with an even -# number of arguments, where the first is a name, the second is a value, -# the third is another name, and so on. -# -# Arguments: -# args A list of name-value pairs. -# -# Results: -# TODO - -proc http::formatQuery {args} { - if {[llength $args] % 2} { - return \ - -code error \ - -errorcode [list HTTP BADARGCNT $args] \ - {Incorrect number of arguments, must be an even number.} - } - set result "" - set sep "" - foreach i $args { - append result $sep [quoteString $i] - if {$sep eq "="} { - set sep & - } else { - set sep = - } - } - return $result -} - -# http::quoteString -- -# -# Do x-www-urlencoded character mapping -# -# Arguments: -# string The string the needs to be encoded -# -# Results: -# The encoded string - -proc http::quoteString {string} { - variable http - variable formMap - - # The spec says: "non-alphanumeric characters are replaced by '%HH'". Use - # a pre-computed map and [string map] to do the conversion (much faster - # than [regsub]/[subst]). [Bug 1020491] - - if {[package vsatisfies [package provide Tcl] 9.0-]} { - set string [encoding convertto -profile replace $http(-urlencoding) $string] - } else { - set string [encoding convertto $http(-urlencoding) $string] - } - return [string map $formMap $string] -} - -# http::ProxyRequired -- -# Default proxy filter. -# -# Arguments: -# host The destination host -# -# Results: -# The current proxy settings - -proc http::ProxyRequired {host} { - variable http - if {(![info exists http(-proxyhost)]) || ($http(-proxyhost) eq {})} { - return - } - if {![info exists http(-proxyport)] || ($http(-proxyport) eq {})} { - set port 8080 - } else { - set port $http(-proxyport) - } - - # Simple test (cf. autoproxy) for hosts that must be accessed directly, - # not through the proxy server. - foreach domain $http(-proxynot) { - if {[string match -nocase $domain $host]} { - return {} - } - } - return [list $http(-proxyhost) $port] -} - -# http::CharsetToEncoding -- -# -# Tries to map a given IANA charset to a tcl encoding. If no encoding -# can be found, returns binary. -# - -proc http::CharsetToEncoding {charset} { - variable encodings - - set charset [string tolower $charset] - if {[regexp {iso-?8859-([0-9]+)} $charset -> num]} { - set encoding "iso8859-$num" - } elseif {[regexp {iso-?2022-(jp|kr)} $charset -> ext]} { - set encoding "iso2022-$ext" - } elseif {[regexp {shift[-_]?jis} $charset]} { - set encoding "shiftjis" - } elseif {[regexp {(?:windows|cp)-?([0-9]+)} $charset -> num]} { - set encoding "cp$num" - } elseif {$charset eq "us-ascii"} { - set encoding "ascii" - } elseif {[regexp {(?:iso-?)?lat(?:in)?-?([0-9]+)} $charset -> num]} { - switch -- $num { - 5 {set encoding "iso8859-9"} - 1 - 2 - 3 { - set encoding "iso8859-$num" - } - default { - set encoding "binary" - } - } - } else { - # other charset, like euc-xx, utf-8,... may directly map to encoding - set encoding $charset - } - set idx [lsearch -exact $encodings $encoding] - if {$idx >= 0} { - return $encoding - } else { - return "binary" - } -} - - -# ------------------------------------------------------------------------------ -# Proc http::ContentEncoding -# ------------------------------------------------------------------------------ -# Return the list of content-encoding transformations we need to do in order. -# - # -------------------------------------------------------------------------- - # Options for Accept-Encoding, Content-Encoding: the switch command - # -------------------------------------------------------------------------- - # The symbol deflateX allows http to attempt both versions of "deflate", - # unless there is a -channel - for a -channel, only "decompress" is tried. - # Alternative/extra lines for switch: - # The standards-compliant version of "deflate" can be chosen with: - # deflate { lappend r decompress } - # The Microsoft non-compliant version of "deflate" can be chosen with: - # deflate { lappend r inflate } - # The previously used implementation of "compress", which appears to be - # incorrect and is rarely used by web servers, can be chosen with: - # compress - x-compress { lappend r decompress } - # -------------------------------------------------------------------------- -# -# Arguments: -# token - Connection token. -# -# Return Value: list -# ------------------------------------------------------------------------------ - -proc http::ContentEncoding {token} { - upvar 0 $token state - set r {} - if {[info exists state(coding)]} { - foreach coding [split $state(coding) ,] { - switch -exact -- $coding { - deflate { lappend r deflateX } - gzip - x-gzip { lappend r gunzip } - identity {} - br { - return -code error\ - "content-encoding \"br\" not implemented" - } - default { - Log "unknown content-encoding \"$coding\" ignored" - } - } - } - } - return $r -} - -proc http::ReceiveChunked {chan command} { - set data "" - set size -1 - yield - while {1} { - chan configure $chan -translation {crlf binary} - while {[gets $chan line] < 1} { yield } - chan configure $chan -translation {binary binary} - if {[scan $line %x size] != 1} { - return -code error "invalid size: \"$line\"" - } - set chunk "" - while {$size && ![chan eof $chan]} { - set part [chan read $chan $size] - incr size -[string length $part] - append chunk $part - } - if {[catch { - uplevel #0 [linsert $command end $chunk] - }]} { - http::Log "Error in callback: $::errorInfo" - } - if {[string length $chunk] == 0} { - # channel might have been closed in the callback - catch {chan event $chan readable {}} - return - } - } -} - -# http::SplitCommaSeparatedFieldValue -- -# Return the individual values of a comma-separated field value. -# -# Arguments: -# fieldValue Comma-separated header field value. -# -# Results: -# List of values. -proc http::SplitCommaSeparatedFieldValue {fieldValue} { - set r {} - foreach el [split $fieldValue ,] { - lappend r [string trim $el] - } - return $r -} - - -# http::GetFieldValue -- -# Return the value of a header field. -# -# Arguments: -# headers Headers key-value list -# fieldName Name of header field whose value to return. -# -# Results: -# The value of the fieldName header field -# -# Field names are matched case-insensitively (RFC 7230 Section 3.2). -# -# If the field is present multiple times, it is assumed that the field is -# defined as a comma-separated list and the values are combined (by separating -# them with commas, see RFC 7230 Section 3.2.2) and returned at once. -proc http::GetFieldValue {headers fieldName} { - set r {} - foreach {field value} $headers { - if {[string equal -nocase $fieldName $field]} { - if {$r eq {}} { - set r $value - } else { - append r ", $value" - } - } - } - return $r -} - -proc http::MakeTransformationChunked {chan command} { - coroutine [namespace current]::dechunk$chan ::http::ReceiveChunked $chan $command - chan event $chan readable [namespace current]::dechunk$chan - return -} - -interp alias {} http::data {} http::responseBody -interp alias {} http::code {} http::responseLine -interp alias {} http::mapReply {} http::quoteString -interp alias {} http::meta {} http::responseHeaders -interp alias {} http::metaValue {} http::responseHeaderValue -interp alias {} http::ncode {} http::responseCode - - -# ------------------------------------------------------------------------------ -# Proc http::socketAsCallback -# ------------------------------------------------------------------------------ -# Command to use in place of ::socket as the value of ::tls::socketCmd. -# This command does the same as http::AltSocket, and also handles https -# connections through a proxy server. -# -# Notes. -# - The proxy server works differently for https and http. This implementation -# is for https. The proxy for http is implemented in http::CreateToken (in -# code that was previously part of http::geturl). -# - This code implicitly uses the tls options set for https in a call to -# http::register, and does not need to call commands tls::*. This simple -# implementation is possible because tls uses a callback to ::socket that can -# be redirected by changing the value of ::tls::socketCmd. -# -# Arguments: -# args - as for ::socket -# -# Return Value: a socket identifier -# ------------------------------------------------------------------------------ - -proc http::socketAsCallback {args} { - variable http - - set targ [lsearch -exact $args -type] - if {$targ != -1} { - set token [lindex $args $targ+1] - upvar 0 ${token} state - set protoProxyConn $state(protoProxyConn) - } else { - set protoProxyConn 0 - } - - set host [lindex $args end-1] - set port [lindex $args end] - if { ($http(-proxyfilter) ne {}) - && (![catch {$http(-proxyfilter) $host} proxy]) - && $protoProxyConn - } { - set phost [lindex $proxy 0] - set pport [lindex $proxy 1] - } else { - set phost {} - set pport {} - } - if {$phost eq ""} { - set sock [::http::AltSocket {*}$args] - } else { - set sock [::http::SecureProxyConnect {*}$args $phost $pport] - } - return $sock -} - - -# ------------------------------------------------------------------------------ -# Proc http::SecureProxyConnect -# ------------------------------------------------------------------------------ -# Command to open a socket through a proxy server to a remote server for use by -# tls. The caller must perform the tls handshake. -# -# Notes -# - Based on patch supplied by Melissa Chawla in ticket 1173760, and -# Proxy-Authorization header cf. autoproxy by Pat Thoyts. -# - Rewritten as a call to http::geturl, because response headers and body are -# needed if the CONNECT request fails. CONNECT is implemented for this case -# only, by state(bypass). -# - FUTURE WORK: give http::geturl a -connect option for a general CONNECT. -# - The request header Proxy-Connection is discouraged in RFC 7230 (June 2014), -# RFC 9112 (June 2022). -# -# Arguments: -# args - as for ::socket, ending in host, port; with proxy host, proxy -# port appended. -# -# Return Value: a socket identifier -# ------------------------------------------------------------------------------ - -proc http::SecureProxyConnect {args} { - variable http - variable ConnectVar - variable ConnectCounter - variable failedProxyValues - set varName ::http::ConnectVar([incr ConnectCounter]) - - # Extract (non-proxy) target from args. - set host [lindex $args end-3] - set port [lindex $args end-2] - set args [lreplace $args end-3 end-2] - - # Proxy server URL for connection. - # This determines where the socket is opened. - set phost [lindex $args end-1] - set pport [lindex $args end] - if {[string first : $phost] != -1} { - # IPv6 address, wrap it in [] so we can append :pport - set phost "\[${phost}\]" - } - set url http://${phost}:${pport} - # Elements of args other than host and port are not used when - # AsyncTransaction opens a socket. Those elements are -async and the - # -type $tokenName for the https transaction. Option -async is used by - # AsyncTransaction anyway, and -type $tokenName should not be - # propagated: the proxy request adds its own -type value. - - set targ [lsearch -exact $args -type] - if {$targ != -1} { - # Record in the token that this is a proxy call. - set token [lindex $args $targ+1] - upvar 0 ${token} state - set tim $state(-timeout) - set state(proxyUsed) SecureProxyFailed - # This value is overwritten with "SecureProxy" below if the CONNECT is - # successful. If it is unsuccessful, the socket will be closed - # below, and so in this unsuccessful case there are no other transactions - # whose (proxyUsed) must be updated. - } else { - set tim 0 - } - if {$tim == 0} { - # Do not use infinite timeout for the proxy. - set tim 30000 - } - - # Prepare and send a CONNECT request to the proxy, using - # code similar to http::geturl. - set requestHeaders [list Host $host] - lappend requestHeaders Connection keep-alive - if {$http(-proxyauth) != {}} { - lappend requestHeaders Proxy-Authorization $http(-proxyauth) - } - - set token2 [CreateToken $url -keepalive 0 -timeout $tim \ - -headers $requestHeaders -command [list http::AllDone $varName]] - variable $token2 - upvar 0 $token2 state2 - - # Kludges: - # Setting this variable overrides the HTTP request line and also allows - # -headers to override the Connection: header set by -keepalive. - # The arguments "-keepalive 0" ensure that when Finish is called for an - # unsuccessful request, the socket is always closed. - set state2(bypass) "CONNECT $host:$port HTTP/1.1" - - AsyncTransaction $token2 - - if {[info coroutine] ne {}} { - # All callers in the http package are coroutines launched by - # the event loop. - # The cwait command requires a coroutine because it yields - # to the caller; $varName is traced and the coroutine resumes - # when the variable is written. - cwait $varName - } else { - return -code error {code must run in a coroutine} - # For testing with a non-coroutine caller outside the http package. - # vwait $varName - } - unset $varName - - if { ($state2(state) ne "complete") - || ($state2(status) ne "ok") - || (![string is integer -strict $state2(responseCode)]) - } { - set msg {the HTTP request to the proxy server did not return a valid\ - and complete response} - if {[info exists state2(error)]} { - append msg ": " [lindex $state2(error) 0] - } - cleanup $token2 - return -code error $msg - } - - set code $state2(responseCode) - - if {($code >= 200) && ($code < 300)} { - # All OK. The caller in package tls will now call "tls::import $sock". - # The cleanup command does not close $sock. - # Other tidying was done in http::Event. - - # If this is a persistent socket, any other transactions that are - # already marked to use the socket will have their (proxyUsed) updated - # when http::OpenSocket calls http::ConfigureNewSocket. - set state(proxyUsed) SecureProxy - set sock $state2(sock) - cleanup $token2 - return $sock - } - - if {$targ != -1} { - # Non-OK HTTP status code; token is known because option -type - # (cf. targ) was passed through tcltls, and so the useful - # parts of the proxy's response can be copied to state(*). - # Do not copy state2(sock). - # Return the proxy response to the caller of geturl. - foreach name $failedProxyValues { - if {[info exists state2($name)]} { - set state($name) $state2($name) - } - } - set state(connection) close - set msg "proxy connect failed: $code" - # - This error message will be detected by http::OpenSocket and will - # cause it to present the proxy's HTTP response as that of the - # original $token transaction, identified only by state(proxyUsed) - # as the response of the proxy. - # - The cases where this would mislead the caller of http::geturl are - # given a different value of msg (below) so that http::OpenSocket will - # treat them as errors, but will preserve the $token array for - # inspection by the caller. - # - Status code 305 (Proxy Required) was deprecated for security reasons - # in RFC 2616 (June 1999) and in any case should never be served by a - # proxy. - # - Other 3xx responses from the proxy are inappropriate, and should not - # occur. - # - A 401 response from the proxy is inappropriate, and should not - # occur. It would be confusing if returned to the caller. - - if {($code >= 300) && ($code < 400)} { - set msg "the proxy server responded to the HTTP request with an\ - inappropriate $code redirect" - set loc [responseHeaderValue $token2 location] - if {$loc ne {}} { - append msg "to " $loc - } - } elseif {($code == 401)} { - set msg "the proxy server responded to the HTTP request with an\ - inappropriate 401 request for target-host credentials" - } else { - } - } else { - set msg "connection to proxy failed with status code $code" - } - - # - ${token2}(sock) has already been closed because -keepalive 0. - # - Error return does not pass the socket ID to the - # $token transaction, which retains its socket placeholder. - cleanup $token2 - return -code error $msg -} - -proc http::AllDone {varName args} { - set $varName done - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::AltSocket -# ------------------------------------------------------------------------------ -# This command is a drop-in replacement for ::socket. -# Arguments and return value as for ::socket. -# -# Notes. -# - http::AltSocket is specified in place of ::socket by the definition of -# urlTypes in the namespace header of this file (http.tcl). -# - The command makes a simple call to ::socket unless the user has called -# http::config to change the value of -threadlevel from the default value 0. -# - For -threadlevel 1 or 2, if the Thread package is available, the command -# waits in the event loop while the socket is opened in another thread. This -# is a workaround for bug [824251] - it prevents http::geturl from blocking -# the event loop if the DNS lookup or server connection is slow. -# - FIXME Use a thread pool if connections are very frequent. -# - FIXME The peer thread can transfer the socket only to the main interpreter -# in the present thread. Therefore this code works only if this script runs -# in the main interpreter. In a child interpreter, the parent must alias a -# command to ::http::AltSocket in the child, run http::AltSocket in the -# parent, and then transfer the socket to the child. -# - The http::AltSocket command is simple, and can easily be replaced with an -# alternative command that uses a different technique to open a socket while -# entering the event loop. -# - Unexpected behaviour by thread::send -async (Thread 2.8.6). -# An error in thread::send -async causes return of just the error message -# (not the expected 3 elements), and raises a bgerror in the main thread. -# Hence wrap the command with catch as a precaution. -# - Bug in Thread 2.8.8 - on Windows, read/write operations fail on a socket -# moved from another thread by thread::transfer. -# ------------------------------------------------------------------------------ - -proc http::AltSocket {args} { - variable ThreadVar - variable ThreadCounter - variable http - - LoadThreadIfNeeded - - set targ [lsearch -exact $args -type] - if {$targ != -1} { - set token [lindex $args $targ+1] - set args [lreplace $args $targ $targ+1] - upvar 0 $token state - } - - if {$http(usingThread) && [info exists state] && $state(protoSockThread)} { - } else { - # Use plain "::socket". This is the default. - return [eval ::socket $args] - } - - set defcmd ::socket - set sockargs $args - set script " - set code \[catch { - [list proc ::SockInThread {caller defcmd sockargs} [info body ::http::SockInThread]] - [list ::SockInThread [thread::id] $defcmd $sockargs] - } result opts\] - list \$code \$opts \$result - " - - set state(tid) [thread::create] - set varName ::http::ThreadVar([incr ThreadCounter]) - thread::send -async $state(tid) $script $varName - Log >T Thread Start Wait $args -- coro [info coroutine] $varName - if {[info coroutine] ne {}} { - # All callers in the http package are coroutines launched by - # the event loop. - # The cwait command requires a coroutine because it yields - # to the caller; $varName is traced and the coroutine resumes - # when the variable is written. - cwait $varName - } else { - return -code error {code must run in a coroutine} - # For testing with a non-coroutine caller outside the http package. - # vwait $varName - } - Log >U Thread End Wait $args -- coro [info coroutine] $varName [set $varName] - thread::release $state(tid) - set state(tid) {} - set result [set $varName] - unset $varName - if {(![string is list $result]) || ([llength $result] != 3)} { - return -code error "result from peer thread is not a list of\ - length 3: it is \n$result" - } - lassign $result threadCode threadDict threadResult - if {($threadCode != 0)} { - # This is an error in thread::send. Return the lot. - return -options $threadDict -code error $threadResult - } - - # Now the results of the catch in the peer thread. - lassign $threadResult catchCode errdict sock - - if {($catchCode == 0) && ($sock ni [chan names])} { - return -code error {Transfer of socket from peer thread failed.\ - Check that this script is not running in a child interpreter.} - } - return -options $errdict -code $catchCode $sock -} - -# The commands below are dependencies of http::AltSocket and -# http::SecureProxyConnect and are not used elsewhere. - -# ------------------------------------------------------------------------------ -# Proc http::LoadThreadIfNeeded -# ------------------------------------------------------------------------------ -# Command to load the Thread package if it is needed. If it is needed and not -# loadable, the outcome depends on $http(-threadlevel): -# value 0 => Thread package not required, no problem -# value 1 => operate as if -threadlevel 0 -# value 2 => error return -# -# The command assigns a value to http(usingThread), which records whether -# command http::AltSocket can use a separate thread. -# -# Arguments: none -# Return Value: none -# ------------------------------------------------------------------------------ - -proc http::LoadThreadIfNeeded {} { - variable http - if {$http(-threadlevel) == 0} { - set http(usingThread) 0 - return - } - if {[catch {package require Thread 2.8.9-}]} { - if {$http(-threadlevel) == 2} { - set msg {[http::config -threadlevel] has value 2,\ - but the Thread package (2.8.9 or above) is not available} - return -code error $msg - } - set http(usingThread) 0 - return - } - set http(usingThread) 1 - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::SockInThread -# ------------------------------------------------------------------------------ -# Command http::AltSocket is a ::socket replacement. It defines and runs this -# command, http::SockInThread, in a peer thread. -# -# Arguments: -# caller -# defcmd -# sockargs -# -# Return value: list of values that describe the outcome. The return is -# intended to be a normal (non-error) return in all cases. -# ------------------------------------------------------------------------------ - -proc http::SockInThread {caller defcmd sockargs} { - package require Thread 2.8.9- - - set catchCode [catch {eval $defcmd $sockargs} sock errdict] - if {$catchCode == 0} { - set catchCode [catch {thread::transfer $caller $sock; set sock} sock errdict] - } - return [list $catchCode $errdict $sock] -} - - -# ------------------------------------------------------------------------------ -# Proc http::cwaiter::cwait -# ------------------------------------------------------------------------------ -# Command to substitute for vwait, without the ordering issues. -# A command that uses cwait must be a coroutine that is launched by an event, -# e.g. fileevent or after idle, and has no calling code to be resumed upon -# "yield". It cannot return a value. -# -# Arguments: -# varName - fully-qualified name of the variable that the calling script -# will write to resume the coroutine. Any scalar variable or -# array element is permitted. -# coroName - (optional) name of the coroutine to be called when varName is -# written - defaults to this coroutine -# timeout - (optional) timeout value in ms -# timeoutValue - (optional) value to assign to varName if there is a timeout -# -# Return Value: none -# ------------------------------------------------------------------------------ - -namespace eval http::cwaiter { - namespace export cwait - variable log {} - variable logOn 0 -} - -proc http::cwaiter::cwait { - varName {coroName {}} {timeout {}} {timeoutValue {}} -} { - set thisCoro [info coroutine] - if {$thisCoro eq {}} { - return -code error {cwait cannot be called outside a coroutine} - } - if {$coroName eq {}} { - set coroName $thisCoro - } - if {[string range $varName 0 1] ne {::}} { - return -code error {argument varName must be fully qualified} - } - if {$timeout eq {}} { - set toe {} - } elseif {[string is integer -strict $timeout] && ($timeout > 0)} { - set toe [after $timeout [list set $varName $timeoutValue]] - } else { - return -code error {if timeout is supplied it must be a positive integer} - } - - set cmd [list ::http::cwaiter::CwaitHelper $varName $coroName $toe] - trace add variable $varName write $cmd - CoLog "Yield $varName $coroName" - yield - CoLog "Resume $varName $coroName" - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::cwaiter::CwaitHelper -# ------------------------------------------------------------------------------ -# Helper command called by the trace set by cwait. -# - Ignores the arguments added by trace. -# - A simple call to $coroName works, and in error cases gives a suitable stack -# trace, but because it is inside a trace the headline error message is -# something like {can't set "::Result(6)": error}, not the actual -# error. So let the trace command return. -# - Remove the trace immediately. We don't want multiple calls. -# ------------------------------------------------------------------------------ - -proc http::cwaiter::CwaitHelper {varName coroName toe args} { - CoLog "got $varName for $coroName" - set cmd [list ::http::cwaiter::CwaitHelper $varName $coroName $toe] - trace remove variable $varName write $cmd - after cancel $toe - - after 0 $coroName - return -} - - -# ------------------------------------------------------------------------------ -# Proc http::cwaiter::LogInit -# ------------------------------------------------------------------------------ -# Call this command to initiate debug logging and clear the log. -# ------------------------------------------------------------------------------ - -proc http::cwaiter::LogInit {} { - variable log - variable logOn - set log {} - set logOn 1 - return -} - -proc http::cwaiter::LogRead {} { - variable log - return $log -} - -proc http::cwaiter::CoLog {msg} { - variable log - variable logOn - if {$logOn} { - append log $msg \n - } - return -} - -namespace eval http { - namespace import ::http::cwaiter::* -} - -# Local variables: -# indent-tabs-mode: t -# End: diff --git a/src/runtime/tcl_library/http/pkgIndex.tcl b/src/runtime/tcl_library/http/pkgIndex.tcl deleted file mode 100644 index 8977ef36..00000000 --- a/src/runtime/tcl_library/http/pkgIndex.tcl +++ /dev/null @@ -1,2 +0,0 @@ -if {![package vsatisfies [package provide Tcl] 8.6-]} {return} -package ifneeded http 2.10b1 [list tclPkgSetup $dir http 2.10b1 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}] diff --git a/src/runtime/tcl_library/init.tcl b/src/runtime/tcl_library/init.tcl deleted file mode 100644 index ee5b07bd..00000000 --- a/src/runtime/tcl_library/init.tcl +++ /dev/null @@ -1,780 +0,0 @@ -# init.tcl -- -# -# Default system startup file for Tcl-based applications. Defines -# "unknown" procedure and auto-load facilities. -# -# Copyright © 1991-1993 The Regents of the University of California. -# Copyright © 1994-1996 Sun Microsystems, Inc. -# Copyright © 1998-1999 Scriptics Corporation. -# Copyright © 2004 Kevin B. Kenny. -# Copyright © 2018 Sean Woods -# -# All rights reserved. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# This test intentionally written in pre-7.5 Tcl -if {[info commands package] == ""} { - error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]" -} -package require -exact tcl 9.0b1 - -# Compute the auto path to use in this interpreter. -# The values on the path come from several locations: -# -# The environment variable TCLLIBPATH -# -# tcl_library, which is the directory containing this init.tcl script. -# [tclInit] (Tcl_Init()) searches around for the directory containing this -# init.tcl and defines tcl_library to that location before sourcing it. -# -# The parent directory of tcl_library. Adding the parent -# means that packages in peer directories will be found automatically. -# -# Also add the directory ../lib relative to the directory where the -# executable is located. This is meant to find binary packages for the -# same architecture as the current executable. -# -# tcl_pkgPath, which is set by the platform-specific initialization routines -# On UNIX it is compiled in -# On Windows, it is not used -# -# (Ticket 41c9857bdd) In a safe interpreter, this file does not set -# ::auto_path (other than to {} if it is undefined). The caller, typically -# a Safe Base command, is responsible for setting ::auto_path. - -if {![info exists auto_path]} { - if {[info exists env(TCLLIBPATH)] && (![interp issafe])} { - set auto_path [apply {{} { - lmap path $::env(TCLLIBPATH) { - # Paths relative to unresolvable home dirs are ignored - if {[catch {file tildeexpand $path} expanded_path]} { - continue - } - set expanded_path - } - }}] - } else { - set auto_path "" - } -} -namespace eval tcl { - if {![interp issafe]} { - variable Dir - foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { - if {$Dir ni $::auto_path} { - lappend ::auto_path $Dir - } - } - set Dir [file join [file dirname [file dirname \ - [info nameofexecutable]]] lib] - if {$Dir ni $::auto_path} { - lappend ::auto_path $Dir - } - if {[info exists ::tcl_pkgPath]} { catch { - foreach Dir $::tcl_pkgPath { - if {$Dir ni $::auto_path} { - lappend ::auto_path $Dir - } - } - }} - - variable Path [encoding dirs] - set Dir [file join $::tcl_library encoding] - if {$Dir ni $Path} { - lappend Path $Dir - encoding dirs $Path - } - unset Dir Path - } -} - -namespace eval tcl::Pkg {} - - -# Setup the unknown package handler - - -if {[interp issafe]} { - package unknown {::tcl::tm::UnknownHandler ::tclPkgUnknown} -} else { - # Set up search for Tcl Modules (TIP #189). - # and setup platform specific unknown package handlers - if {$tcl_platform(os) eq "Darwin" - && $tcl_platform(platform) eq "unix"} { - package unknown {::tcl::tm::UnknownHandler \ - {::tcl::MacOSXPkgUnknown ::tclPkgUnknown}} - } else { - package unknown {::tcl::tm::UnknownHandler ::tclPkgUnknown} - } - - # Set up the 'clock' ensemble - - namespace eval ::tcl::clock [list variable TclLibDir $::tcl_library] - - proc ::tcl::initClock {} { - # Auto-loading stubs for 'clock.tcl' - - foreach cmd {add format scan} { - proc ::tcl::clock::$cmd args { - variable TclLibDir - source [file join $TclLibDir clock.tcl] - return [uplevel 1 [info level 0]] - } - } - - rename ::tcl::initClock {} - } - ::tcl::initClock -} - -# Conditionalize for presence of exec. - -if {[namespace which -command exec] eq ""} { - - # Some machines do not have exec. Also, on all - # platforms, safe interpreters do not have exec. - - set auto_noexec 1 -} - -# Define a log command (which can be overwritten to log errors -# differently, specially when stderr is not available) - -if {[namespace which -command tclLog] eq ""} { - proc tclLog {string} { - catch {puts stderr $string} - } -} - -# unknown -- -# This procedure is called when a Tcl command is invoked that doesn't -# exist in the interpreter. It takes the following steps to make the -# command available: -# -# 1. See if the autoload facility can locate the command in a -# Tcl script file. If so, load it and execute it. -# 2. If the command was invoked interactively at top-level: -# (a) see if the command exists as an executable UNIX program. -# If so, "exec" the command. -# (b) see if the command requests csh-like history substitution -# in one of the common forms !!, !, or ^old^new. If -# so, emulate csh's history substitution. -# (c) see if the command is a unique abbreviation for another -# command. If so, invoke the command. -# -# Arguments: -# args - A list whose elements are the words of the original -# command, including the command name. - -proc unknown args { - variable ::tcl::UnknownPending - global auto_noexec auto_noload env tcl_interactive errorInfo errorCode - - if {[info exists errorInfo]} { - set savedErrorInfo $errorInfo - } - if {[info exists errorCode]} { - set savedErrorCode $errorCode - } - - set name [lindex $args 0] - if {![info exists auto_noload]} { - # - # Make sure we're not trying to load the same proc twice. - # - if {[info exists UnknownPending($name)]} { - return -code error "self-referential recursion\ - in \"unknown\" for command \"$name\"" - } - set UnknownPending($name) pending - set ret [catch { - auto_load $name [uplevel 1 {::namespace current}] - } msg opts] - unset UnknownPending($name) - if {$ret != 0} { - dict append opts -errorinfo "\n (autoloading \"$name\")" - return -options $opts $msg - } - if {![array size UnknownPending]} { - unset UnknownPending - } - if {$msg} { - if {[info exists savedErrorCode]} { - set ::errorCode $savedErrorCode - } else { - unset -nocomplain ::errorCode - } - if {[info exists savedErrorInfo]} { - set errorInfo $savedErrorInfo - } else { - unset -nocomplain errorInfo - } - set code [catch {uplevel 1 $args} msg opts] - if {$code == 1} { - # - # Compute stack trace contribution from the [uplevel]. - # Note the dependence on how Tcl_AddErrorInfo, etc. - # construct the stack trace. - # - set errInfo [dict get $opts -errorinfo] - set errCode [dict get $opts -errorcode] - set cinfo $args - if {[string length [encoding convertto utf-8 $cinfo]] > 150} { - set cinfo [string range $cinfo 0 150] - while {[string length [encoding convertto utf-8 $cinfo]] > 150} { - set cinfo [string range $cinfo 0 end-1] - } - append cinfo ... - } - set tail "\n (\"uplevel\" body line 1)\n invoked\ - from within\n\"uplevel 1 \$args\"" - set expect "$msg\n while executing\n\"$cinfo\"$tail" - if {$errInfo eq $expect} { - # - # The stack has only the eval from the expanded command - # Do not generate any stack trace here. - # - dict unset opts -errorinfo - dict incr opts -level - return -options $opts $msg - } - # - # Stack trace is nested, trim off just the contribution - # from the extra "eval" of $args due to the "catch" above. - # - set last [string last $tail $errInfo] - if {$last + [string length $tail] != [string length $errInfo]} { - # Very likely cannot happen - return -options $opts $msg - } - set errInfo [string range $errInfo 0 $last-1] - set tail "\"$cinfo\"" - set last [string last $tail $errInfo] - if {$last < 0 || $last + [string length $tail] != [string length $errInfo]} { - return -code error -errorcode $errCode \ - -errorinfo $errInfo $msg - } - set errInfo [string range $errInfo 0 $last-1] - set tail "\n invoked from within\n" - set last [string last $tail $errInfo] - if {$last + [string length $tail] == [string length $errInfo]} { - return -code error -errorcode $errCode \ - -errorinfo [string range $errInfo 0 $last-1] $msg - } - set tail "\n while executing\n" - set last [string last $tail $errInfo] - if {$last + [string length $tail] == [string length $errInfo]} { - return -code error -errorcode $errCode \ - -errorinfo [string range $errInfo 0 $last-1] $msg - } - return -options $opts $msg - } else { - dict incr opts -level - return -options $opts $msg - } - } - } - - if {([info level] == 1) && ([info script] eq "") - && [info exists tcl_interactive] && $tcl_interactive} { - if {![info exists auto_noexec]} { - set new [auto_execok $name] - if {$new ne ""} { - set redir "" - if {[namespace which -command console] eq ""} { - set redir ">&@stdout <@stdin" - } - uplevel 1 [list ::catch \ - [concat exec $redir $new [lrange $args 1 end]] \ - ::tcl::UnknownResult ::tcl::UnknownOptions] - dict incr ::tcl::UnknownOptions -level - return -options $::tcl::UnknownOptions $::tcl::UnknownResult - } - } - if {$name eq "!!"} { - set newcmd [history event] - } elseif {[regexp {^!(.+)$} $name -> event]} { - set newcmd [history event $event] - } elseif {[regexp {^\^([^^]*)\^([^^]*)\^?$} $name -> old new]} { - set newcmd [history event -1] - catch {regsub -all -- $old $newcmd $new newcmd} - } - if {[info exists newcmd]} { - tclLog $newcmd - history change $newcmd 0 - uplevel 1 [list ::catch $newcmd \ - ::tcl::UnknownResult ::tcl::UnknownOptions] - dict incr ::tcl::UnknownOptions -level - return -options $::tcl::UnknownOptions $::tcl::UnknownResult - } - - set ret [catch {set candidates [info commands $name*]} msg] - if {$name eq "::"} { - set name "" - } - if {$ret != 0} { - dict append opts -errorinfo \ - "\n (expanding command prefix \"$name\" in unknown)" - return -options $opts $msg - } - # Filter out bogus matches when $name contained - # a glob-special char [Bug 946952] - if {$name eq ""} { - # Handle empty $name separately due to strangeness - # in [string first] (See RFE 1243354) - set cmds $candidates - } else { - set cmds [list] - foreach x $candidates { - if {[string first $name $x] == 0} { - lappend cmds $x - } - } - } - if {[llength $cmds] == 1} { - uplevel 1 [list ::catch [lreplace $args 0 0 [lindex $cmds 0]] \ - ::tcl::UnknownResult ::tcl::UnknownOptions] - dict incr ::tcl::UnknownOptions -level - return -options $::tcl::UnknownOptions $::tcl::UnknownResult - } - if {[llength $cmds]} { - return -code error "ambiguous command name \"$name\": [lsort $cmds]" - } - } - return -code error -errorcode [list TCL LOOKUP COMMAND $name] \ - "invalid command name \"$name\"" -} - -# auto_load -- -# Checks a collection of library directories to see if a procedure -# is defined in one of them. If so, it sources the appropriate -# library file to create the procedure. Returns 1 if it successfully -# loaded the procedure, 0 otherwise. -# -# Arguments: -# cmd - Name of the command to find and load. -# namespace (optional) The namespace where the command is being used - must be -# a canonical namespace as returned [namespace current] -# for instance. If not given, namespace current is used. - -proc auto_load {cmd {namespace {}}} { - global auto_index auto_path - - if {$namespace eq ""} { - set namespace [uplevel 1 [list ::namespace current]] - } - set nameList [auto_qualify $cmd $namespace] - # workaround non canonical auto_index entries that might be around - # from older auto_mkindex versions - lappend nameList $cmd - foreach name $nameList { - if {[info exists auto_index($name)]} { - namespace eval :: $auto_index($name) - # There's a couple of ways to look for a command of a given - # name. One is to use - # info commands $name - # Unfortunately, if the name has glob-magic chars in it like * - # or [], it may not match. For our purposes here, a better - # route is to use - # namespace which -command $name - if {[namespace which -command $name] ne ""} { - return 1 - } - } - } - if {![info exists auto_path]} { - return 0 - } - - if {![auto_load_index]} { - return 0 - } - foreach name $nameList { - if {[info exists auto_index($name)]} { - namespace eval :: $auto_index($name) - if {[namespace which -command $name] ne ""} { - return 1 - } - } - } - return 0 -} - -# ::tcl::Pkg::source -- -# This procedure provides an alternative "source" command, which doesn't -# register the file for the "package files" command. Safe interpreters -# don't have to do anything special. -# -# Arguments: -# filename - -proc ::tcl::Pkg::source {filename} { - if {[interp issafe]} { - uplevel 1 [list ::source $filename] - } else { - uplevel 1 [list ::source -nopkg $filename] - } -} - -# auto_load_index -- -# Loads the contents of tclIndex files on the auto_path directory -# list. This is usually invoked within auto_load to load the index -# of available commands. Returns 1 if the index is loaded, and 0 if -# the index is already loaded and up to date. -# -# Arguments: -# None. - -proc auto_load_index {} { - variable ::tcl::auto_oldpath - global auto_index auto_path - - if {[info exists auto_oldpath] && ($auto_oldpath eq $auto_path)} { - return 0 - } - set auto_oldpath $auto_path - - # Check if we are a safe interpreter. In that case, we support only - # newer format tclIndex files. - - set issafe [interp issafe] - for {set i [expr {[llength $auto_path] - 1}]} {$i >= 0} {incr i -1} { - set dir [lindex $auto_path $i] - set f "" - if {$issafe} { - catch {source [file join $dir tclIndex]} - } elseif {[catch {set f [open [file join $dir tclIndex]]}]} { - continue - } else { - set error [catch { - fconfigure $f -encoding utf-8 -eofchar \x1A - set id [gets $f] - if {$id eq "# Tcl autoload index file, version 2.0"} { - eval [read $f] - } elseif {$id eq "# Tcl autoload index file: each line identifies a Tcl"} { - while {[gets $f line] >= 0} { - if {([string index $line 0] eq "#") \ - || ([llength $line] != 2)} { - continue - } - set name [lindex $line 0] - set auto_index($name) \ - "::tcl::Pkg::source [file join $dir [lindex $line 1]]" - } - } else { - error "[file join $dir tclIndex] isn't a proper Tcl index file" - } - } msg opts] - if {$f ne ""} { - close $f - } - if {$error} { - return -options $opts $msg - } - } - } - return 1 -} - -# auto_qualify -- -# -# Compute a fully qualified names list for use in the auto_index array. -# For historical reasons, commands in the global namespace do not have leading -# :: in the index key. The list has two elements when the command name is -# relative (no leading ::) and the namespace is not the global one. Otherwise -# only one name is returned (and searched in the auto_index). -# -# Arguments - -# cmd The command name. Can be any name accepted for command -# invocations (Like "foo::::bar"). -# namespace The namespace where the command is being used - must be -# a canonical namespace as returned by [namespace current] -# for instance. - -proc auto_qualify {cmd namespace} { - - # count separators and clean them up - # (making sure that foo:::::bar will be treated as foo::bar) - set n [regsub -all {::+} $cmd :: cmd] - - # Ignore namespace if the name starts with :: - # Handle special case of only leading :: - - # Before each return case we give an example of which category it is - # with the following form : - # (inputCmd, inputNameSpace) -> output - - if {[string match ::* $cmd]} { - if {$n > 1} { - # (::foo::bar , *) -> ::foo::bar - return [list $cmd] - } else { - # (::global , *) -> global - return [list [string range $cmd 2 end]] - } - } - - # Potentially returning 2 elements to try : - # (if the current namespace is not the global one) - - if {$n == 0} { - if {$namespace eq "::"} { - # (nocolons , ::) -> nocolons - return [list $cmd] - } else { - # (nocolons , ::sub) -> ::sub::nocolons nocolons - return [list ${namespace}::$cmd $cmd] - } - } elseif {$namespace eq "::"} { - # (foo::bar , ::) -> ::foo::bar - return [list ::$cmd] - } else { - # (foo::bar , ::sub) -> ::sub::foo::bar ::foo::bar - return [list ${namespace}::$cmd ::$cmd] - } -} - -# auto_import -- -# -# Invoked during "namespace import" to make see if the imported commands -# reside in an autoloaded library. If so, the commands are loaded so -# that they will be available for the import links. If not, then this -# procedure does nothing. -# -# Arguments - -# pattern The pattern of commands being imported (like "foo::*") -# a canonical namespace as returned by [namespace current] - -proc auto_import {pattern} { - global auto_index - - # If no namespace is specified, this will be an error case - - if {![string match *::* $pattern]} { - return - } - - set ns [uplevel 1 [list ::namespace current]] - set patternList [auto_qualify $pattern $ns] - - auto_load_index - - foreach pattern $patternList { - foreach name [array names auto_index $pattern] { - if {([namespace which -command $name] eq "") - && ([namespace qualifiers $pattern] eq [namespace qualifiers $name])} { - namespace eval :: $auto_index($name) - } - } - } -} - -# auto_execok -- -# -# Returns string that indicates name of program to execute if -# name corresponds to a shell builtin or an executable in the -# Windows search path, or "" otherwise. Builds an associative -# array auto_execs that caches information about previous checks, -# for speed. -# -# Arguments: -# name - Name of a command. - -if {$tcl_platform(platform) eq "windows"} { -# Windows version. -# -# Note that file executable doesn't work under Windows, so we have to -# look for files with .exe, .com, or .bat extensions. Also, the path -# may be in the Path or PATH environment variables, and path -# components are separated with semicolons, not colons as under Unix. -# -proc auto_execok name { - global auto_execs env tcl_platform - - if {[info exists auto_execs($name)]} { - return $auto_execs($name) - } - set auto_execs($name) "" - - set shellBuiltins [list assoc cls copy date del dir echo erase exit ftype \ - md mkdir mklink move rd ren rename rmdir start time type ver vol] - if {[info exists env(PATHEXT)]} { - # Add an initial ; to have the {} extension check first. - set execExtensions [split ";$env(PATHEXT)" ";"] - } else { - set execExtensions [list {} .com .exe .bat .cmd] - } - - if {[string tolower $name] in $shellBuiltins} { - # When this is command.com for some reason on Win2K, Tcl won't - # exec it unless the case is right, which this corrects. COMSPEC - # may not point to a real file, so do the check. - set cmd $env(COMSPEC) - if {[file exists $cmd]} { - set cmd [file attributes $cmd -shortname] - } - return [set auto_execs($name) [list $cmd /c $name]] - } - - if {[llength [file split $name]] != 1} { - foreach ext $execExtensions { - set file ${name}${ext} - if {[file exists $file] && ![file isdirectory $file]} { - return [set auto_execs($name) [list $file]] - } - } - return "" - } - - set path "[file dirname [info nameof]];.;" - if {[info exists env(SystemRoot)]} { - set windir $env(SystemRoot) - } elseif {[info exists env(WINDIR)]} { - set windir $env(WINDIR) - } - if {[info exists windir]} { - append path "$windir/system32;$windir/system;$windir;" - } - - foreach var {PATH Path path} { - if {[info exists env($var)]} { - append path ";$env($var)" - } - } - - foreach ext $execExtensions { - unset -nocomplain checked - foreach dir [split $path {;}] { - # Skip already checked directories - if {[info exists checked($dir)] || ($dir eq "")} { - continue - } - set checked($dir) {} - set file [file join $dir ${name}${ext}] - if {[file exists $file] && ![file isdirectory $file]} { - return [set auto_execs($name) [list $file]] - } - } - } - return "" -} - -} else { -# Unix version. -# -proc auto_execok name { - global auto_execs env - - if {[info exists auto_execs($name)]} { - return $auto_execs($name) - } - set auto_execs($name) "" - if {[llength [file split $name]] != 1} { - if {[file executable $name] && ![file isdirectory $name]} { - set auto_execs($name) [list $name] - } - return $auto_execs($name) - } - foreach dir [split $env(PATH) :] { - if {$dir eq ""} { - set dir . - } - set file [file join $dir $name] - if {[file executable $file] && ![file isdirectory $file]} { - set auto_execs($name) [list $file] - return $auto_execs($name) - } - } - return "" -} - -} - -# ::tcl::CopyDirectory -- -# -# This procedure is called by Tcl's core when attempts to call the -# filesystem's copydirectory function fail. The semantics of the call -# are that 'dest' does not yet exist, i.e. dest should become the exact -# image of src. If dest does exist, we throw an error. -# -# Note that making changes to this procedure can change the results -# of running Tcl's tests. -# -# Arguments: -# action - "renaming" or "copying" -# src - source directory -# dest - destination directory -proc tcl::CopyDirectory {action src dest} { - set nsrc [file normalize $src] - set ndest [file normalize $dest] - - if {$action eq "renaming"} { - # Can't rename volumes. We could give a more precise - # error message here, but that would break the test suite. - if {$nsrc in [file volumes]} { - return -code error "error $action \"$src\" to\ - \"$dest\": trying to rename a volume or move a directory\ - into itself" - } - } - if {[file exists $dest]} { - if {$nsrc eq $ndest} { - return -code error "error $action \"$src\" to\ - \"$dest\": trying to rename a volume or move a directory\ - into itself" - } - if {$action eq "copying"} { - # We used to throw an error here, but, looking more closely - # at the core copy code in tclFCmd.c, if the destination - # exists, then we should only call this function if -force - # is true, which means we just want to over-write. So, - # the following code is now commented out. - # - # return -code error "error $action \"$src\" to\ - # \"$dest\": file exists" - } else { - # Depending on the platform, and on the current - # working directory, the directories '.', '..' - # can be returned in various combinations. Anyway, - # if any other file is returned, we must signal an error. - set existing [glob -nocomplain -directory $dest * .*] - lappend existing {*}[glob -nocomplain -directory $dest \ - -type hidden * .*] - foreach s $existing { - if {[file tail $s] ni {. ..}} { - return -code error "error $action \"$src\" to\ - \"$dest\": file exists" - } - } - } - } else { - if {[string first $nsrc $ndest] >= 0} { - set srclen [expr {[llength [file split $nsrc]] - 1}] - set ndest [lindex [file split $ndest] $srclen] - if {$ndest eq [file tail $nsrc]} { - return -code error "error $action \"$src\" to\ - \"$dest\": trying to rename a volume or move a directory\ - into itself" - } - } - file mkdir $dest - } - # Have to be careful to capture both visible and hidden files. - # We will also be more generous to the file system and not - # assume the hidden and non-hidden lists are non-overlapping. - # - # On Unix 'hidden' files begin with '.'. On other platforms - # or filesystems hidden files may have other interpretations. - set filelist [concat [glob -nocomplain -directory $src *] \ - [glob -nocomplain -directory $src -types hidden *]] - - foreach s [lsort -unique $filelist] { - if {[file tail $s] ni {. ..}} { - file copy -force -- $s [file join $dest [file tail $s]] - } - } - return -} diff --git a/src/runtime/tcl_library/install.tcl b/src/runtime/tcl_library/install.tcl deleted file mode 100644 index 4abdead9..00000000 --- a/src/runtime/tcl_library/install.tcl +++ /dev/null @@ -1,247 +0,0 @@ -### -# Installer actions built into tclsh and invoked -# if the first command line argument is "install" -### -if {[llength $argv] < 2} { - exit 0 -} -namespace eval ::practcl {} -### -# Installer tools -### -proc ::practcl::_isdirectory name { - return [file isdirectory $name] -} -### -# Return true if the pkgindex file contains -# any statement other than "package ifneeded" -# and/or if any package ifneeded loads a DLL -### -proc ::practcl::_pkgindex_directory {path} { - set buffer {} - set pkgidxfile [file join $path pkgIndex.tcl] - if {![file exists $pkgidxfile]} { - # No pkgIndex file, read the source - foreach file [glob -nocomplain $path/*.tm] { - set file [file normalize $file] - set fname [file rootname [file tail $file]] - ### - # We used to be able to ... Assume the package is correct in the filename - # No hunt for a "package provides" - ### - set package [lindex [split $fname -] 0] - set version [lindex [split $fname -] 1] - ### - # Read the file, and override assumptions as needed - ### - set fin [open $file r] - fconfigure $fin -encoding utf-8 -eofchar \x1A - set dat [read $fin] - close $fin - # Look for a teapot style Package statement - foreach line [split $dat \n] { - set line [string trim $line] - if { [string range $line 0 9] != "# Package " } continue - set package [lindex $line 2] - set version [lindex $line 3] - break - } - # Look for a package provide statement - foreach line [split $dat \n] { - set line [string trim $line] - if { [string range $line 0 14] != "package provide" } continue - set package [lindex $line 2] - set version [lindex $line 3] - break - } - append buffer "package ifneeded $package $version \[list source \[file join \$dir [file tail $file]\]\]" \n - } - foreach file [glob -nocomplain $path/*.tcl] { - if { [file tail $file] == "version_info.tcl" } continue - set fin [open $file r] - fconfigure $fin -encoding utf-8 -eofchar \x1A - set dat [read $fin] - close $fin - if {![regexp "package provide" $dat]} continue - set fname [file rootname [file tail $file]] - # Look for a package provide statement - foreach line [split $dat \n] { - set line [string trim $line] - if { [string range $line 0 14] != "package provide" } continue - set package [lindex $line 2] - set version [lindex $line 3] - if {[string index $package 0] in "\$ \[ @"} continue - if {[string index $version 0] in "\$ \[ @"} continue - append buffer "package ifneeded $package $version \[list source \[file join \$dir [file tail $file]\]\]" \n - break - } - } - return $buffer - } - set fin [open $pkgidxfile r] - fconfigure $fin -encoding utf-8 -eofchar \x1A - set dat [read $fin] - close $fin - set trace 0 - #if {[file tail $path] eq "tool"} { - # set trace 1 - #} - set thisline {} - foreach line [split $dat \n] { - append thisline $line \n - if {![info complete $thisline]} continue - set line [string trim $line] - if {[string length $line]==0} { - set thisline {} ; continue - } - if {[string index $line 0] eq "#"} { - set thisline {} ; continue - } - if {[regexp "if.*catch.*package.*Tcl.*return" $thisline]} { - if {$trace} {puts "[file dirname $pkgidxfile] Ignoring $thisline"} - set thisline {} ; continue - } - if {[regexp "if.*package.*vsatisfies.*package.*provide.*return" $thisline]} { - if {$trace} { puts "[file dirname $pkgidxfile] Ignoring $thisline" } - set thisline {} ; continue - } - if {![regexp "package.*ifneeded" $thisline]} { - # This package index contains arbitrary code - # source instead of trying to add it to the main - # package index - if {$trace} { puts "[file dirname $pkgidxfile] Arbitrary code $thisline" } - return {source [file join $dir pkgIndex.tcl]} - } - append buffer $thisline \n - set thisline {} - } - if {$trace} {puts [list [file dirname $pkgidxfile] $buffer]} - return $buffer -} - - -proc ::practcl::_pkgindex_path_subdir {path} { - set result {} - foreach subpath [glob -nocomplain [file join $path *]] { - if {[file isdirectory $subpath]} { - lappend result $subpath {*}[_pkgindex_path_subdir $subpath] - } - } - return $result -} -### -# Index all paths given as though they will end up in the same -# virtual file system -### -proc ::practcl::pkgindex_path args { - set stack {} - set buffer { -lappend ::PATHSTACK $dir - } - foreach base $args { - set base [file normalize $base] - set paths {} - foreach dir [glob -nocomplain [file join $base *]] { - if {[file tail $dir] eq "teapot"} continue - lappend paths $dir {*}[::practcl::_pkgindex_path_subdir $dir] - } - set i [string length $base] - # Build a list of all of the paths - if {[llength $paths]} { - foreach path $paths { - if {$path eq $base} continue - set path_indexed($path) 0 - } - } else { - puts [list WARNING: NO PATHS FOUND IN $base] - } - set path_indexed($base) 1 - set path_indexed([file join $base boot tcl]) 1 - foreach teapath [glob -nocomplain [file join $base teapot *]] { - set pkg [file tail $teapath] - append buffer [list set pkg $pkg] - append buffer { -set pkginstall [file join $::g(HOME) teapot $pkg] -if {![file exists $pkginstall]} { - installDir [file join $dir teapot $pkg] $pkginstall -} -} - } - foreach path $paths { - if {$path_indexed($path)} continue - set thisdir [file_relative $base $path] - set idxbuf [::practcl::_pkgindex_directory $path] - if {[string length $idxbuf]} { - incr path_indexed($path) - append buffer "set dir \[set PKGDIR \[file join \[lindex \$::PATHSTACK end\] $thisdir\]\]" \n - append buffer [string map {$dir $PKGDIR} [string trimright $idxbuf]] \n - } - } - } - append buffer { -set dir [lindex $::PATHSTACK end] -set ::PATHSTACK [lrange $::PATHSTACK 0 end-1] -} - return $buffer -} - -### -# topic: 64319f4600fb63c82b2258d908f9d066 -# description: Script to build the VFS file system -### -proc ::practcl::installDir {d1 d2} { - - puts [format {%*sCreating %s} [expr {4 * [info level]}] {} [file tail $d2]] - file delete -force -- $d2 - file mkdir $d2 - - foreach ftail [glob -directory $d1 -nocomplain -tails *] { - set f [file join $d1 $ftail] - if {[file isdirectory $f] && [string compare CVS $ftail]} { - installDir $f [file join $d2 $ftail] - } elseif {[file isfile $f]} { - file copy -force $f [file join $d2 $ftail] - if {$::tcl_platform(platform) eq {unix}} { - file attributes [file join $d2 $ftail] -permissions 0o644 - } else { - file attributes [file join $d2 $ftail] -readonly 1 - } - } - } - - if {$::tcl_platform(platform) eq {unix}} { - file attributes $d2 -permissions 0o755 - } else { - file attributes $d2 -readonly 1 - } -} - -proc ::practcl::copyDir {d1 d2 {toplevel 1}} { - #if {$toplevel} { - # puts [list ::practcl::copyDir $d1 -> $d2] - #} - #file delete -force -- $d2 - file mkdir $d2 - - foreach ftail [glob -directory $d1 -nocomplain -tails *] { - set f [file join $d1 $ftail] - if {[file isdirectory $f] && [string compare CVS $ftail]} { - copyDir $f [file join $d2 $ftail] 0 - } elseif {[file isfile $f]} { - file copy -force $f [file join $d2 $ftail] - } - } -} - -switch [lindex $argv 1] { - mkzip { - zipfs mkzip {*}[lrange $argv 2 end] - } - mkzip { - zipfs mkimg {*}[lrange $argv 2 end] - } - default { - ::practcl::[lindex $argv 1] {*}[lrange $argv 2 end] - } -} -exit 0 diff --git a/src/runtime/tcl_library/license.terms b/src/runtime/tcl_library/license.terms deleted file mode 100644 index d8049cd9..00000000 --- a/src/runtime/tcl_library/license.terms +++ /dev/null @@ -1,40 +0,0 @@ -This software is copyrighted by the Regents of the University of -California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState -Corporation and other parties. The following terms apply to all files -associated with the software unless explicitly disclaimed in -individual files. - -The authors hereby grant permission to use, copy, modify, distribute, -and license this software and its documentation for any purpose, provided -that existing copyright notices are retained in all copies and that this -notice is included verbatim in any distributions. No written agreement, -license, or royalty fee is required for any of the authorized uses. -Modifications to this software may be copyrighted by their authors -and need not follow the licensing terms described here, provided that -the new terms are clearly indicated on the first page of each file where -they apply. - -IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY -FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY -DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE -IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE -NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR -MODIFICATIONS. - -GOVERNMENT USE: If you are acquiring this software on behalf of the -U.S. government, the Government shall have only "Restricted Rights" -in the software and related documentation as defined in the Federal -Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you -are acquiring the software on behalf of the Department of Defense, the -software shall be classified as "Commercial Computer Software" and the -Government shall have only "Restricted Rights" as defined in Clause -252.227-7014 (b) (3) of DFARs. Notwithstanding the foregoing, the -authors grant the U.S. Government and others acting in its behalf -permission to use and distribute the software in accordance with the -terms specified in this license. diff --git a/src/runtime/tcl_library/manifest.txt b/src/runtime/tcl_library/manifest.txt deleted file mode 100644 index 988d267f..00000000 --- a/src/runtime/tcl_library/manifest.txt +++ /dev/null @@ -1,19 +0,0 @@ -### -# Package manifest for all Tcl packages included in the /library file system -### -apply {{dir} { - set isafe [interp issafe] - foreach {safe package version file} { - 0 http 2.10b1 {http http.tcl} - 1 msgcat 1.7.1 {msgcat msgcat.tcl} - 1 opt 0.4.8 {opt optparse.tcl} - 0 cookiejar 0.2.0 {cookiejar cookiejar.tcl} - 0 tcl::idna 1.0.1 {cookiejar idna.tcl} - 0 platform 1.0.19 {platform platform.tcl} - 0 platform::shell 1.1.4 {platform shell.tcl} - 1 tcltest 2.5.6 {tcltest tcltest.tcl} - } { - if {$isafe && !$safe} continue - package ifneeded $package $version [list source [file join $dir {*}$file]] - } -}} $dir diff --git a/src/runtime/tcl_library/msgcat/msgcat.tcl b/src/runtime/tcl_library/msgcat/msgcat.tcl deleted file mode 100644 index fa21685b..00000000 --- a/src/runtime/tcl_library/msgcat/msgcat.tcl +++ /dev/null @@ -1,1343 +0,0 @@ -# msgcat.tcl -- -# -# This file defines various procedures which implement a -# message catalog facility for Tcl programs. It should be -# loaded with the command "package require msgcat". -# -# Copyright © 2010-2018 Harald Oehlmann. -# Copyright © 1998-2000 Ajuba Solutions. -# Copyright © 1998 Mark Harrison. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -# We use oo::define::self, which is new in Tcl 8.7 -package require Tcl 8.7- -# When the version number changes, be sure to update the pkgIndex.tcl file, -# and the installation directory in the Makefiles. -package provide msgcat 1.7.1 - -namespace eval msgcat { - namespace export mc mcn mcexists mcload mclocale mcmax\ - mcmset mcpreferences mcset\ - mcunknown mcflset mcflmset mcloadedlocales mcforgetpackage\ - mcpackagenamespaceget mcpackageconfig mcpackagelocale mcutil - - # Records the list of locales to search - variable Loclist {} - - # List of currently loaded locales - variable LoadedLocales {} - - # Records the locale of the currently sourced message catalogue file - variable FileLocale - - # Configuration values per Package (e.g. client namespace). - # The dict key is of the form "