| Unicode-Japanese documentation | Contained in the Unicode-Japanese distribution. |
Unicode::Japanese - Convert encoding of japanese text
use Unicode::Japanese; use Unicode::Japanese qw(unijp); # convert utf8 -> sjis print Unicode::Japanese->new($str)->sjis; print unijp($str)->sjis; # same as above. # convert sjis -> utf8 print Unicode::Japanese->new($str,'sjis')->get; # convert sjis (imode_EMOJI) -> utf8 print Unicode::Japanese->new($str,'sjis-imode')->get; # convert zenkaku (utf8) -> hankaku (utf8) print Unicode::Japanese->new($str)->z2h->get;
The Unicode::Japanese module converts encoding of japanese text from one encoding to another.
No other modules are required at run time.
Create a new instance of Unicode::Japanese.
Any given parameters will be internally passed to the method set().
Same as Unicode::Jananese->new(...).
Store a string into the instance.
Possible character encodings are:
auto utf8 ucs2 ucs4 utf16-be utf16-le utf16 utf32-be utf32-le utf32 sjis cp932 euc euc-jp jis sjis-imode sjis-imode1 sjis-imode2 utf8-imode utf8-imode1 utf8-imode2 sjis-doti sjis-doti1 sjis-jsky sjis-jsky1 sjis-jsky2 jis-jsky jis-jsky1 jis-jsky2 utf8-jsky utf8-jsky1 utf8-jsky2 sjis-au sjis-au1 sjis-au2 jis-au jis-au1 jis-au2 sjis-icon-au sjis-icon-au1 sjis-icon-au2 euc-icon-au euc-icon-au1 euc-icon-au2 jis-icon-au jis-icon-au1 jis-icon-au2 utf8-icon-au utf8-icon-au1 utf8-icon-au2 ascii binary
(see also SUPPORTED ENCODINGS.)
If you want the Unicode::Japanese detect the character encoding of string, you must explicitly specify 'auto' as the second argument. In that case, the given string will be passed to the method getcode() to guess the encoding.
For binary encodings, only 'base64' is currently supported. If you specify 'base64' as the third argument, the given string will be decoded using Base64 decoder.
Specify 'binary' as the second argument if you want your string to be stored without modification.
When you specify 'sjis-imode' or 'sjis-doti' as the character encoding, any occurences of '&#dddd;' (decimal character reference) in the string will be interpreted and decoded as code point of emoji, just like emoji implanted into the string in binary form.
Since encoded forms of strings in various encodings are not clearly distinctive to each other, it is not always certainly possible to detect what encoding is used for a given string.
When a given string is possibly interpreted as both Shift_JIS and UTF-8 string, this module considers such a string to be encoded in Shift_JIS. And if the encoding is not distinguishable between 'sjis-au' and 'sjis-doti', this module considers it 'sjis-au'.
Get the internal string in UTF-8.
This method currently returns a byte string (whose UTF-8 flag is turned off), but this behavior may be changed in the future.
If you absolutely want a byte string, you should use the method utf8() instead. And if you want a character string (whose UTF-8 flag is turned on), you have to use the method getu().
Get the internal string in UTF-8.
On perl-5.8.0 or later, this method returns a character string with its UTF-8 flag turned on.
Detect the character encoding of given string.
Note that this method, exceptionaly, doesn't deal with the internal string of an instance.
To guess the encoding, the following algorithm is used:
(For pure perl implementation)
If the string has an UTF-32 BOM, its encoding is 'utf32'.
If it has an UTF-16 BOM, its encoding is 'utf16'.
If it is valid for UTF-32BE, its encoding is 'utf32-be'.
If it is valid for UTF-32LE, its encoding is 'utf32-le'.
If it contains no ESC characters or bytes whose eighth bit is on, its encoding is 'ascii'. Every ASCII control characters (0x00-0x1F and 0x7F) except ESC (0x1B) are considered to be in the range of 'ascii'.
If it contains escape sequences of ISO-2022-JP, its encoding is 'jis'.
If it contains any emoji defined for J-PHONE, its encoding is 'sjis-jsky'.
If it is valid for EUC-JP, its encoding is 'euc'.
If it is valid for Shift_JIS, its encoding is 'sjis'.
If it contains any emoji defined for au, and everything else is valid for Shift_JIS, its encoding is 'sjis-au'.
If it contains any emoji defined for i-mode, and everything else is valid for Shift_JIS, its encoding is 'sjis-imode'.
If it contains any emoji defined for dot-i, and everything else is valid for Shift_JIS, its encoding is 'sjis-doti'.
If it is valid for UTF-8, its encoding is 'utf8'.
If no conditions above are fulfilled, its encoding is 'unknown'.
(For XS implementation)
If the string has an UTF-32 BOM, its encoding is 'utf32'.
If it has an UTF-16 BOM, its encoding is 'utf16'.
Find all possible encodings that might have been applied to the string from the following:
ascii / euc / sjis / jis / utf8 / utf32-be / utf32-le / sjis-jsky / sjis-imode / sjis-au / sjis-doti
If any encodings have been found possible, this module picks out one encoding having the highest priority among them. The priority order is as follows:
utf32-be / utf32-le / ascii / jis / euc / sjis / sjis-jsky / sjis-imode / sjis-au / sjis-doti / utf8
If no conditions above are fulfilled, its encoding is 'unknown'.
Pay attention to the following pitfalls in the above algorithm:
Since the XS and pure perl implementations use different algorithms to guess encoding, they may guess differently for the same string. Especially, the pure perl implementation finds Shift_JIS strings containing ESC character (0x1B) to be actually encoded in Shift_JIS but XS implementation doesn't. This is because such strings can hardly be distinguished from 'sjis-jsky'. In addition, EUC-JP strings containing ESC character are also rejected for the same reason.
Detect the character encoding of given string.
Unlike the method getcode(), getcodelist() returns a list of possible encodings.
utf8 ucs2 ucs4 utf16 sjis cp932 euc euc-jp jis sjis-imode sjis-imode1 sjis-imode2 utf8-imode utf8-imode1 utf8-imode2 sjis-doti sjis-doti1 sjis-jsky sjis-jsky1 sjis-jsky2 jis-jsky jis-jsky1 jis-jsky2 utf8-jsky utf8-jsky1 utf8-jsky2 sjis-au sjis-au1 sjis-au2 jis-au jis-au1 jis-au2 sjis-icon-au sjis-icon-au1 sjis-icon-au2 euc-icon-au euc-icon-au1 euc-icon-au2 jis-icon-au jis-icon-au1 jis-icon-au2 utf8-icon-au utf8-icon-au1 utf8-icon-au2 binary
(see also SUPPORTED ENCODINGS.)
Some encodings for mobile phones have a trailing digit like 'sjis-au2'. Those digits represent the version number of encodings. Such encodings have a variant with no trailing digits, like 'sjis-au', which is the same as the latest version among its variants.
Get the internal string of instance with encoding it using a given character encoding method.
If you want the resulting string to be encoded in Base64, specify 'base64' as the second argument.
On perl-5.8.0 or later, the UTF-8 flag of resulting string is turned off even if you specify 'utf8' to the first argument.
Interpret decimal character references (&#dddd;) in the instance, and replaces them with single characters they represent.
Replace zenkaku (full-width) letters in the instance with hankaku (half-width) letters.
Replace hankaku (half-width) letters in the instance with zenkaku (full-width) letters.
Replace any hiragana in the instance with katakana.
Replace any katakana in the instance with hiragana.
$str: byte string in ISO-2022-JP
Get the internal string of instance with encoding it in ISO-2022-JP.
$str: byte string in EUC-JP
Get the internal string of instance with encoding it in EUC-JP.
$str: byte string in UTF-8
Get the internal UTF-8 string of instance.
On perl-5.8.0 or later, the UTF-8 flag of resulting string is turned off.
$str: byte string in UCS-2
Get the internal string of instance as a sequence of raw UCS-2 letters in big-endian. Note that this is different from UTF-16BE as raw UCS-2 sequence has no concept of surrogate pair.
$str: byte string in UCS-4
Get the internal string of instance as a sequence of raw UCS-4 letters in big-endian. This is practically the same as UTF-32BE.
$str: byte string in UTF-16
Get the insternal string of instance with encoding it in UTF-16 in big-endian with no BOM prepended.
$str: byte string in Shift_JIS
Get the internal string of instance with encoding it in Shift_JIS (MS-SJIS / MS-CP932).
$str: byte string in 'sjis-imode'
Get the internal string of instance with encoding it in 'sjis-imode'.
$str: byte string in 'sjis-imode1'
Get the internal string of instance with encoding it in 'sjis-imode1'.
$str: byte string in 'sjis-imode2'
Get the internal string of instance with encoding it in 'sjis-imode2'.
$str: byte string in 'sjis-doti'
Get the internal string of instance with encoding it in 'sjis-doti'.
$str: byte string in 'sjis-jsky'
Get the internal string of instance with encoding it in 'sjis-jsky'.
$str: byte string in 'sjis-jsky1'
Get the internal string of instance with encoding it in 'sjis-jsky1'.
$str: byte string in 'sjis-jsky'
Get the internal string of instance with encoding it in 'sjis-jsky'.
$str: byte string in 'sjis-icon-au'
Get the internal string of instance with encoding it in 'sjis-icon-au'.
Split the internal string of instance into chunks of a given length.
On perl-5.8.0 or later, UTF-8 flags of each chunks are turned on.
$len: character width of the internal string
Calculate the character width of the internal string. Half-width characters have width of one unit, and full-width characters have width of two units.
@values: array of strings
Build a line of CSV from the arguments, and store it into the instance. The resulting line has a trailing line break ("\n").
@values: array of strings
Parse a line of CSV in the instance and return each columns. The line will be chomp()ed before getting parsed.
If the internal string was decoded from 'binary' encoding (see methods new() and set()), the UTF-8 flags of the resulting array of strings are turned off. Otherwise the flags are turned on.
+---------------+----+-----+-------+ |encoding | in | out | guess | +---------------+----+-----+-------+ |auto : OK : -- | ----- | +---------------+----+-----+-------+ |utf8 : OK : OK | OK | |ucs2 : OK : OK | ----- | |ucs4 : OK : OK | ----- | |utf16-be : OK : -- | ----- | |utf16-le : OK : -- | ----- | |utf16 : OK : OK | OK(#) | |utf32-be : OK : -- | OK | |utf32-le : OK : -- | OK | |utf32 : OK : -- | OK(#) | +---------------+----+-----+-------+ |sjis : OK : OK | OK | |cp932 : OK : OK | ----- | |euc : OK : OK | OK | |euc-jp : OK : OK | ----- | |jis : OK : OK | OK | +---------------+----+-----+-------+ |sjis-imode : OK : OK | OK | |sjis-imode1 : OK : OK | ----- | |sjis-imode2 : OK : OK | ----- | |utf8-imode : OK : OK | ----- | |utf8-imode1 : OK : OK | ----- | |utf8-imode2 : OK : OK | ----- | +---------------+----+-----+-------+ |sjis-doti : OK : OK | OK | |sjis-doti1 : OK : OK | ----- | +---------------+----+-----+-------+ |sjis-jsky : OK : OK | OK | |sjis-jsky1 : OK : OK | ----- | |sjis-jsky2 : OK : OK | ----- | |jis-jsky : OK : OK | ----- | |jis-jsky1 : OK : OK | ----- | |jis-jsky2 : OK : OK | ----- | |utf8-jsky : OK : OK | ----- | |utf8-jsky1 : OK : OK | ----- | |utf8-jsky2 : OK : OK | ----- | +---------------+----+-----+-------+ |sjis-au : OK : OK | OK | |sjis-au1 : OK : OK | ----- | |sjis-au2 : OK : OK | ----- | |jis-au : OK : OK | ----- | |jis-au1 : OK : OK | ----- | |jis-au2 : OK : OK | ----- | |sjis-icon-au : OK : OK | ----- | |sjis-icon-au1 : OK : OK | ----- | |sjis-icon-au2 : OK : OK | ----- | |euc-icon-au : OK : OK | ----- | |euc-icon-au1 : OK : OK | ----- | |euc-icon-au2 : OK : OK | ----- | |jis-icon-au : OK : OK | ----- | |jis-icon-au1 : OK : OK | ----- | |jis-icon-au2 : OK : OK | ----- | |utf8-icon-au : OK : OK | ----- | |utf8-icon-au1 : OK : OK | ----- | |utf8-icon-au2 : OK : OK | ----- | +---------------+----+-----+-------+ |ascii : OK : -- | OK | |binary : OK : OK | ----- | +---------------+----+-----+-------+ (#): guessed when it has bom.
1. utf32 (#) 2. utf16 (#) 3. utf32-be 4. utf32-le 5. ascii 6. jis 7. sjis-jsky (pp) 8. euc 9. sjis 10. sjis-jsky (xs) 11. sjis-au 12. sjis-imode 13. sjis-doti 14. utf8 15. unknown
Transcoding between Unicode encodings and other ones is performed as below:
This module uses the mapping table of MS-CP932.
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
When the module tries to convert Unicode string to Shift_JIS, it represents most letters which isn't available in Shift_JIS as decimal character reference ('&#dddd;'). There is one exception to this: every graphic characters for mobile phones are replaced with '?' mark.
For variants of Shift_JIS defined for mobile phones, every unrepresentable characters are replaced with '?' mark unlike the plain Shift_JIS.
This module doesn't directly convert Unicode string from/to EUC-JP or ISO-2022-JP: it once converts from/to Shift_JIS and then do the rest translation. So characters which aren't available in the Shift_JIS can not be properly translated.
This module maps emoji in the range of F800 - F9FF to U+0FF800 - U+0FF9FF.
This module maps emoji in the range of F000 - F4FF to U+0FF000 - U+0FF4FF.
The encoding method defined by J-SKY is as follows: first an escape sequence "\e\$" comes to indicate the beginning of emoji, then the first byte of an emoji comes next, then the second bytes of at least one emoji comes next, then "\x0f" comes last to indicate the end of emoji. If a string contains a series of emoji whose first bytes are identical, such sequence can be compressed by cascading second bytes of them to the single first byte.
This module considers a pair of those first and second bytes to be one letter, and map them from 4500 - 47FF to U+0FFB00 - U+0FFDFF.
When the module encodes J-SKY emoji, it performs the compression automatically.
This module maps AU emoji to U+0FF500 - U+0FF6FF.
use Unicode::Japanese qw(PurePerl);
If you want to explicitly take the pure perl implementation, pass
'PurePerl' to the argument of the use statement.
Please report bugs and requests to bug-unicode-japanese at rt.cpan.org or
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Unicode-Japanese. If you
report them to the web interface, any progress to your report will be
automatically sent back to you.
You can find documentation for this module with the perldoc command.
perldoc Unicode::Japanese
You can find more information at:
Thanks very much to:
NAKAYAMA Nao
SUGIURA Tatsuki & Debian JP Project
Copyright 2001-2008 SANO Taku (SAWATARI Mikage) and YAMASHINA Hio, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Unicode-Japanese documentation | Contained in the Unicode-Japanese distribution. |
# ----------------------------------------------------------------------------- # Unicode::Japanese # Unicode::Japanese::PurePerl # ----------------------------------------------------------------------------- # $Id: Japanese_stub.pm 41491 2008-02-15 07:21:13Z hio $ # ----------------------------------------------------------------------------- package Unicode::Japanese::PurePerl; package Unicode::Japanese; use strict; use vars qw($VERSION $XS_VERSION $PurePerl $xs_loaderror); $VERSION = '0.47'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; # `use bytes' and `use Encode' if we are on perl-5.8.0 or later. if( $] >= 5.008 ) { my $evalerr; { local($SIG{__DIE__}) = 'DEFAULT'; local($@); eval 'use bytes;use Encode;'; $evalerr = $@; } $evalerr and CORE::die($evalerr); } # ----------------------------------------------------------------------------- # import # sub import { my $pkg = shift; my ($callerpkg) = caller; my %exp = ( '&unijp' => \&unijp, ); my @na; my @add = (grep{$_ eq ':all'} @_) ? keys %exp : (); foreach(@_, @add) { $_ eq 'PurePerl' and $PurePerl=1, next; if( $exp{$_} || $exp{'&'.$_} ) { no strict 'refs'; (my $name = $_) =~ s/^\W//; my $obj = $exp{$_} || $exp{'&'.$_}; *{$callerpkg.'::'.$name} = $obj; }elsif( $_ eq 'no_I18N_Japanese' ) { $^H &= ~0x0f00_0000; package Unicode::Japanese::PurePerl; $^H &= ~0x0f00_0000; package Unicode::Japanese; next; } push(@na,$_); } if( @na ) { #use Carp; #croak("invalid parameter (".join(',',@na).")"); } } # ----------------------------------------------------------------------------- # DESTROY # sub DESTROY { } # ----------------------------------------------------------------------------- # load_xs. # loading xs-subs. # this method is called from new (through new=>_init_table=>load_xs) # sub load_xs { #print STDERR "load_xs\n"; if( $PurePerl ) { #print STDERR "PurePerl mode\n"; $xs_loaderror = 'disabled'; return; } #print STDERR "XS mode\n"; my $use_xs; LoadXS: { #print STDERR "* * bootstrap...\n"; eval q { use strict; require DynaLoader; use vars qw(@ISA); @ISA = qw(DynaLoader); local($SIG{__DIE__}) = 'DEFAULT'; Unicode::Japanese->bootstrap($XS_VERSION); }; #print STDERR "* * the trial has been done.\n"; #undef @ISA; if( $@ ) { #print STDERR "failed.\n"; #print STDERR "$@\n"; $use_xs = 0; $xs_loaderror = $@; undef $@; last LoadXS; } #print STDERR "succeeded.\n"; $use_xs = 1; eval q { #print STDERR "overriding _s2u,_u2s\n"; do_memmap(); #print STDERR "memmap done\n"; END{ do_memunmap(); } #print STDERR "binding xsubs has been done.\n"; }; if( $@ ) { #print STDERR "error in the last part of operation to load XS.\n"; $xs_loaderror = $@; CORE::die($@); } #print STDERR "done.\n"; } if( $@ ) { $xs_loaderror = $@; CORE::die("Cannot load Unicode::Japanese of neither XS nor PurePerl side\n$@"); } if( !$use_xs ) { #print STDERR "no xs.\n"; eval q { sub do_memmap($){} sub do_memunmap($){} }; } $xs_loaderror = '' if( !defined($xs_loaderror) ); #print STDERR "load_xs done.\n"; } # ----------------------------------------------------------------------------- # Unicode::Japanese->new(); # cache for char conversion. # 2bytes. # JIS C 6226-1979 \e$@ # JIS X 0208-1983 \e$B # JIS X 0208-1990 \e&@\e$B # JIS X 0212-1990 \e$(D # 1byte. # JIS ROMAN \e(J # JIS ROMAN \e(H # ASCII \e(B # JIS KANA \e(I # ----------------------------------------------------------------------------- # $unijp = Unicode::Japanese->new([$str,[$icode]]); # sub new { my $pkg = shift; my $this = {}; if( defined($pkg) ) { bless $this, $pkg; $this->_init_table; }else { bless $this; $this->_init_table; } @_ and $this->set(@_); $this; } # ----------------------------------------------------------------------------- # _got_undefined_subroutine # die with message 'undefiend subroutine'. # sub _got_undefined_subroutine { my $subname = pop; CORE::die "Undefined subroutine \&$subname got called.\n"; } # ----------------------------------------------------------------------------- # AUTOLOAD # AUTOLOAD of Unicode::Japanese. # imports PurePerl methods. # AUTOLOAD { # load pure perl subs. use vars qw($AUTOLOAD); #print "AUTOLOAD... $AUTOLOAD\n"; if(!defined($Unicode::Japanese::xs_loaderror) ) { Unicode::Japanese::PurePerl::_init_table(); if( defined(&$AUTOLOAD) ) { no strict 'refs'; goto &$AUTOLOAD; } } my ($pkg, $subname) = do{ local($1, $2); $AUTOLOAD =~ /^(.*)::(\w+)$/ } or got_undefined_subroutine($AUTOLOAD); my $pppkg = $pkg . '::PurePerl'; my $ppsubname = $pkg . '::PurePerl::' . $subname; if( !defined(&$ppsubname) ) { my $save = $@; my @BAK = @_; $pppkg->_loadsub($ppsubname); $@ = $save; @_ = @BAK; } my $sub = \&$ppsubname; { no strict 'refs'; *$AUTOLOAD = $sub; # copy. } goto &$sub; } # ----------------------------------------------------------------------------- # Unicode::Japanese::PurePerl # ----------------------------------------------------------------------------- package Unicode::Japanese::PurePerl; use strict; use vars qw(%CHARCODE %ESC %RE @CHARSET_LIST); use vars qw(@J2S @S2J @S2E @E2S @U2T %T2U %S2U %U2S %SA2U1 %U2SA1 %SA2U2 %U2SA2); %CHARCODE = ( UNDEF_EUC => "\xa2\xae", UNDEF_SJIS => "\x81\xac", UNDEF_JIS => "\xa2\xf7", UNDEF_UNICODE => "\x20\x20", ); %ESC = ( JIS_0208 => "\e\$B", JIS_0212 => "\e\$(D", ASC => "\e\(B", KANA => "\e\(I", E_JSKY_START => "\e\$", E_JSKY_END => "\x0f", ); %RE = ( ASCII => '[\x00-\x7f]', EUC_0212 => '\x8f[\xa1-\xfe][\xa1-\xfe]', EUC_C => '[\xa1-\xfe][\xa1-\xfe]', EUC_KANA => '\x8e[\xa1-\xdf]', JIS_0208 => '\e\$\@|\e\$B|\e&\@\e\$B', JIS_0212 => "\e" . '\$\(D', JIS_ASC => "\e" . '\([BJ]', JIS_KANA => "\e" . '\(I', SJIS_DBCS => '[\x81-\x9f\xe0-\xef\xfa-\xfc][\x40-\x7e\x80-\xfc]', SJIS_KANA => '[\xa1-\xdf]', UTF8 => '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}', BOM2_BE => '\xfe\xff', BOM2_LE => '\xff\xfe', BOM4_BE => '\x00\x00\xfe\xff', BOM4_LE => '\xff\xfe\x00\x00', UTF32_BE => '\x00[\x00-\x10][\x00-\xff]{2}', UTF32_LE => '[\x00-\xff]{2}[\x00-\x10]\x00', E_IMODEv1 => '\xf8[\x9f-\xfc]|\xf9[\x40-\x49\x50-\x52\x55-\x57\x5b-\x5e\x72-\x7e\x80-\xb0]', E_IMODEv2 => '\xf9[\xb1-\xfc]', E_IMODE => '\xf8[\x9f-\xfc]|\xf9[\x40-\x49\x50-\x52\x55-\x57\x5b-\x5e\x72-\x7e\x80-\xfc]', E_JSKY1 => '[EFGOPQ]', E_JSKY1v1 => '[EFG]', E_JSKY1v2 => '[OPQ]', E_JSKY2 => '[\!-z]', E_DOTI => '\xf0[\x40-\x7e\x80-\xfc]|\xf1[\x40-\x7e\x80-\xd6]|\xf2[\x40-\x7e\x80-\xab\xb0-\xd5\xdf-\xfc]|\xf3[\x40-\x7e\x80-\xfa]|\xf4[\x40-\x4f\x80\x84-\x8a\x8c-\x8e\x90\x94-\x96\x98-\x9c\xa0-\xa4\xa8-\xaf\xb4\xb5\xbc-\xbe\xc4\xc5\xc8\xcc]', E_JIS_AU => '[\x75-\x7b][\x21-\x7e]', E_SJIS_AU => '[\xf3\xf4\xf6\xf7][\x40-\xfc]', E_ICON_AU_START => '<IMG ICON="', E_ICON_AU_END => '">', E_JSKY_START => quotemeta($ESC{E_JSKY_START}), E_JSKY_END => '(?:'.quotemeta($ESC{E_JSKY_END}).'|\z)', E_JSKYv1_UTF8 => '\xee(?:\x80[\x81-\xbf]|\x81[\x80-\x9a]|\x84[\x81-\xbf]|\x85[\x80-\x9a]|\x88[\x81-\xbf]|\x89[\x80-\x9a])', E_JSKYv2_UTF8 => '\xee(?:\x8c[\x81-\xbf]|\x8d[\x80-\x8d]|\x90[\x81-\xbf]|\x91[\x80-\x8c]|\x94[\x81-\xb7])', ); $]<5.005 and $RE{E_JSKY_END} =~ s/\\z/\$/; $RE{E_JSKY} = $RE{E_JSKY_START} . $RE{E_JSKY1} . $RE{E_JSKY2} . '+' . $RE{E_JSKY_END}; $RE{E_JSKYv1} = $RE{E_JSKY_START} . $RE{E_JSKY1v1} . $RE{E_JSKY2} . '+' . $RE{E_JSKY_END}; $RE{E_JSKYv2} = $RE{E_JSKY_START} . $RE{E_JSKY1v2} . $RE{E_JSKY2} . '+' . $RE{E_JSKY_END}; @CHARSET_LIST = qw( utf8 ucs2 ucs4 utf16 sjis sjis-imode sjis-doti sjis-jsky sjis-icon-au cp932 jis jis-jsky jis-au jis-icon-au euc euc-jp euc-icon-au utf8-jsky utf8-icon-au utf8-imode ); use vars qw($s2u_table $u2s_table); use vars qw($ei2u1 $ei2u2 $ed2u $ej2u1 $ej2u2 $ea2u1 $ea2u2 $ea2u1s $ea2u2s); use vars qw($eu2i1 $eu2i2 $eu2d $eu2j1 $eu2j2 $eu2a1 $eu2a2 $eu2a1s $eu2a2s); use vars qw(%_h2zNum %_z2hNum %_h2zAlpha %_z2hAlpha %_h2zSym %_z2hSym %_h2zKanaK %_z2hKanaK %_h2zKanaD %_z2hKanaD %_hira2kata %_kata2hira); use vars qw($PID $FH $TABLE $HEADLEN $PROGLEN); # ----------------------------------------------------------------------------- # AUTOLOAD # AUTOLOAD of Unicode::Japanese::PurePerl. # load PurePerl methods from embedded data. # AUTOLOAD { use strict; use vars qw($AUTOLOAD); #print "AUTOLOAD... $AUTOLOAD\n"; my $save = $@; my @BAK = @_; my ($pkg, $subname) = do{ local($1, $2); $AUTOLOAD =~ /^(.*)::(\w+)$/ } or got_undefined_subroutine($AUTOLOAD); $pkg->_loadsub($AUTOLOAD); $@ = $save; @_ = @BAK; goto &$AUTOLOAD; } sub _loadsub { my $pkg = shift; my $fullsubname = shift; #print "subs..\n",join("\n",keys %$TABLE,''); use vars qw($AUTOLOAD); local($1, $2); my ($subpkg,$subname) = $fullsubname =~ /^(.*)::(\w+)$/ or got_undefined_subroutine($fullsubname); # check if(!defined($TABLE->{$subname}{offset})) { _init_table(); if( !defined($TABLE->{$subname}{offset}) ) { if( $subname eq 'DESTROY' ) { my $sub = sub{}; { no strict 'refs'; *$fullsubname = $sub; } return $sub; } CORE::die "Undefined subroutine \&$fullsubname got called.\n"; } } if($TABLE->{$subname}{offset} == -1) { CORE::die "\&$fullsubname is getting loaded twice. There must be a problem in AUTOLOAD.\n"; } _check_and_update_fh(); seek($FH, $PROGLEN + $HEADLEN + $TABLE->{$subname}{offset}, 0) or die "Can't seek $subname. [$!]\n"; my $sub; read($FH, $sub, $TABLE->{$subname}{'length'}) or die "Can't read $subname. [$!]\n"; if( $]>=5.008 ) { $sub = 'use bytes;'.$sub; } CORE::eval(($sub=~/(.*)/s)[0]); if ($@) { CORE::die $@; } $DB::sub = $fullsubname; # Now debugger knows where we are. # evaled $TABLE->{$subname}{offset} = -1; } # ----------------------------------------------------------------------------- # Unicode::Japanese::PurePerl->new() # sub new { goto &Unicode::Japanese::new; } # ----------------------------------------------------------------------------- # DESTROY # sub DESTROY { } # ----------------------------------------------------------------------------- # gensym # sub gensym { package Unicode::Japanese::Symbol; no strict; $genpkg = "Unicode::Japanese::Symbol::"; $genseq = 0; my $name = "GEN" . $genseq++; my $ref = \*{$genpkg . $name}; delete $$genpkg{$name}; $ref; } sub _check_and_update_fh { _open_fh() if not ($PID == $$); } sub _open_fh { my $file = "Unicode/Japanese.pm"; $PID = $$; OPEN: { if( $INC{$file} ) { open($FH,$INC{$file}) || CORE::die("could not open file [$INC{$file}] for input : $!"); last OPEN; } foreach my $path (@INC) { my $mypath = $path; $mypath =~ s#/$##; if (-f "$mypath/$file") { open($FH,"$mypath/$file") || CORE::die("could not open file [$INC{$file}] for input : $!"); last OPEN; } } CORE::die "Can't find Japanese.pm in \@INC\n"; } binmode($FH); } # ----------------------------------------------------------------------------- # _init_table # sub _init_table { if(!defined($HEADLEN)) { $FH = gensym; _open_fh(); local($/) = "\n"; my $line; while(defined($line = <$FH>)) { last if($line =~ m/^__DATA__/); } $PROGLEN = tell($FH); read($FH, $HEADLEN, 4) or die "Can't read the table. [$!]\n"; $HEADLEN = unpack('N', $HEADLEN); read($FH, $TABLE, $HEADLEN) or die "Can't seek the table. [$!]\n"; $TABLE =~ /(.*)/s; $TABLE = eval(($TABLE=~/(.*)/s)[0]); if($@) { die "Internal Error. [$@]\n"; } if(!defined($TABLE)) { die "Internal Error.\n"; } $HEADLEN += 4; # load xs. Unicode::Japanese::load_xs(); } } # ----------------------------------------------------------------------------- # _getFile # load embedded file data. # sub _getFile { my $this = shift; my $file = shift; exists($TABLE->{$file}) or die "no such file [$file]\n"; _check_and_update_fh(); #my $offset16 = $TABLE->{$file}{offset} % 16; #print STDERR "_getFile($file, $TABLE->{$file}{offset}, $TABLE->{$file}{'length'}, $offset16)\n"; seek($FH, $PROGLEN + $HEADLEN + $TABLE->{$file}{offset}, 0) or die "Can't seek $file. [$!]\n"; my $data; read($FH, $data, $TABLE->{$file}{'length'}) or die "Can't read $file. [$!]\n"; $data; } # ----------------------------------------------------------------------------- # use_I18N_Japanese # copied from I18N::Japanese in jperl-5.5.3 # sub use_I18N_Japanese { shift; if( @_ ) { my $bits = 0; foreach( @_ ) { $bits |= 0x1000000 if $_ eq 're'; $bits |= 0x2000000 if $_ eq 'tr'; $bits |= 0x4000000 if $_ eq 'format'; $bits |= 0x8000000 if $_ eq 'string'; } $^H |= $bits; }else { $^H |= 0x0f00_0000; } } # ----------------------------------------------------------------------------- # no_I18N_Japanese # copied from I18N::Japanese in jperl-5.5.3 # sub no_I18N_Japanese { shift; if( @_ ) { my $bits = 0; foreach( @_ ) { $bits |= 0x1000000 if $_ eq 're'; $bits |= 0x2000000 if $_ eq 'tr'; $bits |= 0x4000000 if $_ eq 'format'; $bits |= 0x8000000 if $_ eq 'string'; } $^H &= ~$bits; }else { $^H &= ~0x0f00_0000; } } 1;
__DATA__ î{'joinCsv'=>{'length'=>947,'offset'=>0},'_decodeBase64'=>{'length'=>610,'offset'=>947},'z2hNum'=>{'length'=>284,'offset'=>1557},'_utf16le_utf16'=>{'length'=>179,'offset'=>3083},'kata2hira'=>{'length'=>1242,'offset'=>1841},'jcode/emoji2/ea2u.dat'=>{'length'=>1320,'offset'=>376896},'_u2ai2'=>{'length'=>1062,'offset'=>3262},'z2hAlpha'=>{'length'=>836,'offset'=>4324},'_u2ui2'=>{'length'=>721,'offset'=>5160},'_ui2u2'=>{'length'=>785,'offset'=>5881},'_ucs4_utf8'=>{'length'=>936,'offset'=>6666},'h2zSym'=>{'length'=>316,'offset'=>7602},'utf8_icon_au1'=>{'length'=>73,'offset'=>7918},'h2z'=>{'length'=>114,'offset'=>7991},'jcode/emoji2/ea2u2s.dat'=>{'length'=>4096,'offset'=>434768},'sjis'=>{'length'=>177,'offset'=>8105},'euc_icon_au2'=>{'length'=>98,'offset'=>8282},'_u2si1'=>{'length'=>1619,'offset'=>8380},'_sj2u1'=>{'length'=>1144,'offset'=>9999},'euc_icon_au'=>{'length'=>97,'offset'=>11471},'tag2bin'=>{'length'=>328,'offset'=>11143},'z2hSym'=>{'length'=>596,'offset'=>11568},'ucs2'=>{'length'=>183,'offset'=>12164},'jis_au2'=>{'length'=>80,'offset'=>12347},'jcode/emoji2/ei2u2.dat'=>{'length'=>2048,'offset'=>248896},'_si2u1'=>{'length'=>1228,'offset'=>12427},'_utf8_utf16'=>{'length'=>950,'offset'=>13655},'jis_icon_au1'=>{'length'=>98,'offset'=>14605},'sjis_icon_au1'=>{'length'=>86,'offset'=>14703},'sjis_jsky2'=>{'length'=>70,'offset'=>14789},'jcode/emoji2/ei2u.dat'=>{'length'=>2048,'offset'=>230464},'getcode'=>{'length'=>2111,'offset'=>14859},'_j2s2'=>{'length'=>469,'offset'=>16970},'jcode/emoji2/ea2us.dat'=>{'length'=>4096,'offset'=>414288},'sjis_au2'=>{'length'=>95,'offset'=>17439},'h2zKanaD'=>{'length'=>810,'offset'=>17534},'sjis_imode1'=>{'length'=>71,'offset'=>18344},'eucjp'=>{'length'=>32,'offset'=>18415},'utf8'=>{'length'=>187,'offset'=>18447},'_s2e'=>{'length'=>244,'offset'=>18634},'jcode/emoji2/ea2u2.dat'=>{'length'=>3288,'offset'=>394608},'utf8_jsky'=>{'length'=>189,'offset'=>18878},'_uj2u2'=>{'length'=>874,'offset'=>19067},'utf8_jsky1'=>{'length'=>70,'offset'=>19941},'jcode/emoji2/eu2a2.dat'=>{'length'=>16384,'offset'=>397904},'jcode/s2u.dat'=>{'length'=>48573,'offset'=>181888},'conv'=>{'length'=>3896,'offset'=>20011},'_utf16be_utf16'=>{'length'=>71,'offset'=>23907},'jcode/emoji2/eu2j.dat'=>{'length'=>40960,'offset'=>270400},'hira2kata'=>{'length'=>1242,'offset'=>23978},'splitCsvu'=>{'length'=>197,'offset'=>25220},'_u2ui1'=>{'length'=>744,'offset'=>25417},'sjis_doti1'=>{'length'=>69,'offset'=>26161},'_s2j'=>{'length'=>272,'offset'=>26230},'_sa2j2'=>{'length'=>384,'offset'=>26502},'_j2sa'=>{'length'=>179,'offset'=>26886},'sjis_au1'=>{'length'=>95,'offset'=>27065},'join_csv'=>{'length'=>29,'offset'=>27160},'_ai2u1'=>{'length'=>458,'offset'=>27189},'jcode/emoji2/eu2as.dat'=>{'length'=>16384,'offset'=>418384},'_s2u'=>{'length'=>988,'offset'=>27647},'utf8_imode1'=>{'length'=>71,'offset'=>28635},'_j2sa3'=>{'length'=>434,'offset'=>28706},'jis_jsky1'=>{'length'=>82,'offset'=>29140},'jis_icon_au2'=>{'length'=>98,'offset'=>29222},'sjis_jsky'=>{'length'=>189,'offset'=>29320},'_u2uj2'=>{'length'=>788,'offset'=>29509},'jis'=>{'length'=>179,'offset'=>30297},'jis_au1'=>{'length'=>80,'offset'=>30476},'_utf8_ucs4'=>{'length'=>1149,'offset'=>30556},'get'=>{'length'=>162,'offset'=>31705},'z2h'=>{'length'=>114,'offset'=>31867},'getu'=>{'length'=>266,'offset'=>31981},'_loadConvTable'=>{'length'=>18009,'offset'=>32247},'unijp'=>{'length'=>137,'offset'=>50256},'utf8_imode2'=>{'length'=>71,'offset'=>50393},'_u2uj1'=>{'length'=>806,'offset'=>50464},'jcode/emoji2/eu2a2s.dat'=>{'length'=>16384,'offset'=>438864},'_u2ja1'=>{'length'=>1639,'offset'=>51270},'_j2s'=>{'length'=>177,'offset'=>52909},'utf16'=>{'length'=>187,'offset'=>53086},'utf8_jsky2'=>{'length'=>70,'offset'=>53273},'_u2ai1'=>{'length'=>1203,'offset'=>53343},'sjis_icon_au2'=>{'length'=>86,'offset'=>54546},'_u2si2'=>{'length'=>1620,'offset'=>54632},'jcode/emoji2/eu2i.dat'=>{'length'=>16384,'offset'=>232512},'splitCsv'=>{'length'=>350,'offset'=>56252},'jcode/emoji2/eu2i2.dat'=>{'length'=>16384,'offset'=>250944},'sjis_jsky1'=>{'length'=>70,'offset'=>56602},'_s2j3'=>{'length'=>355,'offset'=>56672},'_sa2u1'=>{'length'=>1137,'offset'=>57027},'_u2s'=>{'length'=>2320,'offset'=>58164},'_sa2j3'=>{'length'=>455,'offset'=>60484},'_utf16_utf8'=>{'length'=>769,'offset'=>60939},'h2zNum'=>{'length'=>174,'offset'=>61708},'h2zKanaK'=>{'length'=>979,'offset'=>61882},'strlen'=>{'length'=>360,'offset'=>62861},'strcutu'=>{'length'=>195,'offset'=>63221},'sjis_imode2'=>{'length'=>71,'offset'=>63416},'_validate_utf8'=>{'length'=>763,'offset'=>63487},'jcode/emoji2/eu2a.dat'=>{'length'=>16384,'offset'=>378224},'z2hKanaK'=>{'length'=>979,'offset'=>64250},'h2zAlpha'=>{'length'=>264,'offset'=>65229},'set'=>{'length'=>5582,'offset'=>65493},'_ucs2_utf8'=>{'length'=>549,'offset'=>71075},'_utf16_utf16'=>{'length'=>300,'offset'=>71624},'getcodelist'=>{'length'=>2241,'offset'=>71924},'_sj2u2'=>{'length'=>1503,'offset'=>74165},'jcode/emoji2/ed2u.dat'=>{'length'=>5120,'offset'=>355392},'jis_icon_au'=>{'length'=>97,'offset'=>75668},'_utf32_ucs4'=>{'length'=>312,'offset'=>75765},'_ai2u2'=>{'length'=>410,'offset'=>76077},'utf8_icon_au2'=>{'length'=>73,'offset'=>76487},'_uj2u1'=>{'length'=>600,'offset'=>76560},'_sa2j'=>{'length'=>174,'offset'=>77160},'h2zKana'=>{'length'=>185,'offset'=>77334},'z2hKana'=>{'length'=>89,'offset'=>77519},'utf8_imode'=>{'length'=>192,'offset'=>77608},'_si2u2'=>{'length'=>1227,'offset'=>77800},'_u2sj1'=>{'length'=>1772,'offset'=>79027},'_u2sj2'=>{'length'=>1794,'offset'=>80799},'utf8_icon_au'=>{'length'=>72,'offset'=>82593},'jis_jsky2'=>{'length'=>82,'offset'=>82665},'sjis_doti'=>{'length'=>188,'offset'=>82747},'_e2s'=>{'length'=>202,'offset'=>82935},'jcode/emoji2/ej2u2.dat'=>{'length'=>3072,'offset'=>311360},'euc'=>{'length'=>175,'offset'=>83137},'_j2s3'=>{'length'=>337,'offset'=>83312},'jcode/emoji2/ej2u.dat'=>{'length'=>3072,'offset'=>267328},'ucs4'=>{'length'=>183,'offset'=>83649},'_j2sa2'=>{'length'=>446,'offset'=>83832},'_ui2u1'=>{'length'=>803,'offset'=>84278},'_sd2u'=>{'length'=>1221,'offset'=>85081},'_u2ja2'=>{'length'=>1640,'offset'=>86302},'_s2e2'=>{'length'=>446,'offset'=>87942},'z2hKanaD'=>{'length'=>498,'offset'=>88388},'_u2sd'=>{'length'=>1615,'offset'=>88886},'sjis_au'=>{'length'=>94,'offset'=>90501},'jcode/emoji2/eu2j2.dat'=>{'length'=>40960,'offset'=>314432},'jcode/emoji2/eu2d.dat'=>{'length'=>16384,'offset'=>360512},'jcode/u2s.dat'=>{'length'=>85504,'offset'=>96384},'_utf8_ucs2'=>{'length'=>755,'offset'=>90595},'euc_icon_au1'=>{'length'=>98,'offset'=>91350},'jis_au'=>{'length'=>195,'offset'=>91448},'_utf32le_ucs4'=>{'length'=>178,'offset'=>91643},'sjis_imode'=>{'length'=>192,'offset'=>91821},'_e2s2'=>{'length'=>535,'offset'=>92013},'_s2j2'=>{'length'=>377,'offset'=>92548},'_encodeBase64'=>{'length'=>775,'offset'=>92925},'validate_utf8'=>{'length'=>129,'offset'=>93700},'split_csv'=>{'length'=>131,'offset'=>93914},'sjis_icon_au'=>{'length'=>85,'offset'=>93829},'_sa2u2'=>{'length'=>1138,'offset'=>94045},'jis_jsky'=>{'length'=>200,'offset'=>95183},'strcut'=>{'length'=>894,'offset'=>95383},'_utf32be_ucs4'=>{'length'=>70,'offset'=>96310},'cp932'=>{'length'=>33,'offset'=>96277}} sub joinCsv { my $this = shift; my $list; if(ref($_[0]) eq 'ARRAY') { $list = shift; if( $]>=5.008 ) { $list = [ @$list ]; foreach(@$list) { defined($_) and Encode::_utf8_off($_); } } } elsif(!ref($_[0])) { $list = [ @_ ]; if( $]>=5.008 ) { foreach(@$list) { defined($_) and Encode::_utf8_off($_); } } } else { my $ref = ref($_[0]); die "String#joinCsv: param[1] is neither ARRRAY Ref nor Scalar. [$ref]\n"; } my $text; if( $^W && grep{!defined($_)}@$list ) { $_[0] && $list eq $_[0] and $list = [@$list]; foreach(@$list) { defined($_) and next; warn "Use of uninitialized value in Unicode::Japanese::joinCsv"; $_ = ""; } } $text = join ',', map {defined($_) ? (s/"/""/g or /[\r\n,]/) ? qq("$_") : $_ : ""} @$list; $this->{str} = $text."\n"; $this->{icode} = 'binary'; $this; } sub _decodeBase64 { local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123] my $this = shift; my $str = shift; my $res = ""; $str =~ tr|A-Za-z0-9+=/||cd; # remove non-base64 chars if (length($str) % 4) { warn("Length of Base64 data is not multiple of 4"); } $str =~ s/=+$//; # remove padding $str =~ tr|A-Za-z0-9+/| -_|; # convert to uuencoded format while ($str =~ /(.{1,60})/gs) { my $len = chr(32 + length($1)*3/4); # compute length byte $res .= unpack("u", $len . $1 ); # uudecode } $res; } sub z2hNum { my $this = shift; if(!defined(%_z2hNum)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbc\x90|\xef\xbc\x91|\xef\xbc\x92|\xef\xbc\x93|\xef\xbc\x94|\xef\xbc\x95|\xef\xbc\x96|\xef\xbc\x97|\xef\xbc\x98|\xef\xbc\x99)/$_z2hNum{$1}/eg; $this; } sub kata2hira { my $this = shift; if(!defined(%_kata2hira)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x82\xa1|\xe3\x82\xa2|\xe3\x82\xa3|\xe3\x82\xa4|\xe3\x82\xa5|\xe3\x82\xa6|\xe3\x82\xa7|\xe3\x82\xa8|\xe3\x82\xa9|\xe3\x82\xaa|\xe3\x82\xab|\xe3\x82\xac|\xe3\x82\xad|\xe3\x82\xae|\xe3\x82\xaf|\xe3\x82\xb0|\xe3\x82\xb1|\xe3\x82\xb2|\xe3\x82\xb3|\xe3\x82\xb4|\xe3\x82\xb5|\xe3\x82\xb6|\xe3\x82\xb7|\xe3\x82\xb8|\xe3\x82\xb9|\xe3\x82\xba|\xe3\x82\xbb|\xe3\x82\xbc|\xe3\x82\xbd|\xe3\x82\xbe|\xe3\x82\xbf|\xe3\x83\x80|\xe3\x83\x81|\xe3\x83\x82|\xe3\x83\x83|\xe3\x83\x84|\xe3\x83\x85|\xe3\x83\x86|\xe3\x83\x87|\xe3\x83\x88|\xe3\x83\x89|\xe3\x83\x8a|\xe3\x83\x8b|\xe3\x83\x8c|\xe3\x83\x8d|\xe3\x83\x8e|\xe3\x83\x8f|\xe3\x83\x90|\xe3\x83\x91|\xe3\x83\x92|\xe3\x83\x93|\xe3\x83\x94|\xe3\x83\x95|\xe3\x83\x96|\xe3\x83\x97|\xe3\x83\x98|\xe3\x83\x99|\xe3\x83\x9a|\xe3\x83\x9b|\xe3\x83\x9c|\xe3\x83\x9d|\xe3\x83\x9e|\xe3\x83\x9f|\xe3\x83\xa0|\xe3\x83\xa1|\xe3\x83\xa2|\xe3\x83\xa3|\xe3\x83\xa4|\xe3\x83\xa5|\xe3\x83\xa6|\xe3\x83\xa7|\xe3\x83\xa8|\xe3\x83\xa9|\xe3\x83\xaa|\xe3\x83\xab|\xe3\x83\xac|\xe3\x83\xad|\xe3\x83\xae|\xe3\x83\xaf|\xe3\x83\xb0|\xe3\x83\xb1|\xe3\x83\xb2|\xe3\x83\xb3)/$_kata2hira{$1}/eg; $this; } sub _utf16le_utf16 { my $this = shift; my $str = shift; my $result = ''; foreach my $ch (unpack('v*', $str)) { $result .= pack('n', $ch); } $result; } sub _u2ai2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($eu2a2)) { $eu2a2 = $this->_getFile('jcode/emoji2/eu2a2.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $d; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? $1 : (length($1) == 3) ? $1 : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a2, ($ch - 0x0fe000) * 2, 2), $d = unpack('n', $c), $c =~ tr,\0,,d, ($d <= 0x0336) ? $RE{E_ICON_AU_START} . $d . $RE{E_ICON_AU_END} : ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub z2hAlpha { my $this = shift; if(!defined(%_z2hAlpha)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbc\xa1|\xef\xbc\xa2|\xef\xbc\xa3|\xef\xbc\xa4|\xef\xbc\xa5|\xef\xbc\xa6|\xef\xbc\xa7|\xef\xbc\xa8|\xef\xbc\xa9|\xef\xbc\xaa|\xef\xbc\xab|\xef\xbc\xac|\xef\xbc\xad|\xef\xbc\xae|\xef\xbc\xaf|\xef\xbc\xb0|\xef\xbc\xb1|\xef\xbc\xb2|\xef\xbc\xb3|\xef\xbc\xb4|\xef\xbc\xb5|\xef\xbc\xb6|\xef\xbc\xb7|\xef\xbc\xb8|\xef\xbc\xb9|\xef\xbc\xba|\xef\xbd\x81|\xef\xbd\x82|\xef\xbd\x83|\xef\xbd\x84|\xef\xbd\x85|\xef\xbd\x86|\xef\xbd\x87|\xef\xbd\x88|\xef\xbd\x89|\xef\xbd\x8a|\xef\xbd\x8b|\xef\xbd\x8c|\xef\xbd\x8d|\xef\xbd\x8e|\xef\xbd\x8f|\xef\xbd\x90|\xef\xbd\x91|\xef\xbd\x92|\xef\xbd\x93|\xef\xbd\x94|\xef\xbd\x95|\xef\xbd\x96|\xef\xbd\x97|\xef\xbd\x98|\xef\xbd\x99|\xef\xbd\x9a)/$_z2hAlpha{$1}/eg; $this; } sub _u2ui2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } # imode : F800-F9FF => U+0FF800 - U+0FF9FF # [BASIC] # F89F = E63E = ee 98 be = F3BFA29F # F9B0 = E70B = ee 9c 8b = F3BFA6B0 # [EXTENSION] # F9B1 = E70C = ee 9c 8c = F3BFA6B1 # F9FC = E757 = ee 9d 97 = F3BFA7BC $str =~ s{\xf3\xbf([\xa2-\xa7][\x80-\xbf])}{ my ($in1, $in2) = unpack("CC", $1); my $in = (($in1 - 0xa2) << 6) + $in2; my $diff = $in <= 0xfc ? 0xfc - 0x9b : $in <= 0x17e ? 0x17e - 0xda : 0x1b0 - 0x10b; my $ucs2offset = $in + 0xe600 - $diff; pack("C3", 0xee, (($ucs2offset>>6)&63)+128, ($ucs2offset&63)+128); }xeg; $str; } sub _ui2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($ei2u2)) { $ei2u2 = $this->_getFile('jcode/emoji2/ei2u2.dat'); } $str = $this->_validate_utf8($str); # imode : F800-F9FF => U+0FF800 - U+0FF9FF # E63E - E70B = ee 98 be - ee 9c 8b # E70C - E757 = ee 9c 8c - ee 9d 97 $str =~ s{\xee([\x98-\x9e][\x80-\xbf])}{ my ($in1, $in2) = unpack("CC", $1); my $in = (($in1 - 0x98) << 6) + ($in2 - 0x80); my $diff = $in <= 0x9b ? ( 0xfc - 0x9b) : $in <= 0xda ? (0x17e - 0xda) : (0x1b0 - 0x10b); my $sjisoffset = $diff + $in; my $sjisbin = pack("n", $sjisoffset); $S2U{$sjisbin} ||= substr($ei2u2, $sjisoffset * 4, 4) || '?'; }xeg; $str; } sub _ucs4_utf8 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $result = ''; for my $uc (unpack("N*", $str)) { $result .= ($uc < 0x80) ? chr($uc) : ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x10000) ? chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x200000) ? chr(0xF0 | ($uc >> 18)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x4000000) ? chr(0xF8 | ($uc >> 24)) . chr(0x80 | (($uc >> 18) & 0x3F)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : chr(0xFC | ($uc >> 30)) . chr(0x80 | (($uc >> 24) & 0x3F)) . chr(0x80 | (($uc >> 18) & 0x3F)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)); } $result; } sub h2zSym { my $this = shift; if(!defined(%_h2zSym)) { $this->_loadConvTable; } $this->{str} =~ s/(\x20|\x21|\x22|\x23|\x24|\x25|\x26|\x27|\x28|\x29|\x2a|\x2b|\x2c|\x2d|\x2e|\x2f|\x3a|\x3b|\x3c|\x3d|\x3e|\x3f|\x40|\x5b|\x5c|\x5d|\x5e|_|\x60|\x7b|\x7c|\x7d|\x7e)/$_h2zSym{$1}/eg; $this; } sub utf8_icon_au1 { my $this = shift; $this->_u2ai1($this->{str}); } sub h2z { my $this = shift; $this->h2zKana; $this->h2zNum; $this->h2zAlpha; $this->h2zSym; $this; } # ----------------------------------------------------------------------------- # $bytes_sjis = $unijp->sjis(); # sub sjis { my $this = shift; $this->_u2s($this->{str}); } sub euc_icon_au2 { my $this = shift; $this->_s2e($this->_u2s($this->_u2ai2($this->{str}))); } sub _u2si1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2i1)) { $eu2i1 = $this->_getFile('jcode/emoji2/eu2i.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2i1, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub _sj2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ej2u1)) { $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat'); } my $l; my $j1; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_JSKYv1}|[\x80-\xff])/ (length($1) <= 2) ? ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) : ( $l = $1, $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v1}),,o, $j1 = $1, $uc = '', $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u1, (unpack('n', $j1 . $1) - 0x4500) * 4, 4), ''!ego, $uc =~ tr,\0,,d, $uc ) /eg; $str; } # ----------------------------------------------------------------------------- # tag2bin # sub tag2bin { my $this = shift; $this->{str} =~ s/\&(\#\d+|\#x[a-f0-9A-F]+);/ (substr($1, 1, 1) eq 'x') ? $this->_ucs4_utf8(pack('N', hex(substr($1, 2)))) : $this->_ucs4_utf8(pack('N', substr($1, 1))) /eg; $this; } sub euc_icon_au { my $this = shift; $this->_s2e($this->_u2s($this->_u2ai2($this->{str}))); } sub z2hSym { my $this = shift; if(!defined(%_z2hSym)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x80\x80|\xef\xbc\x8c|\xef\xbc\x8e|\xef\xbc\x9a|\xef\xbc\x9b|\xef\xbc\x9f|\xef\xbc\x81|\xef\xbd\x80|\xef\xbc\xbe|\xef\xbc\xbf|\xef\xbc\x8f|\xef\xbd\x9e|\xef\xbd\x9c|\xe2\x80\x99|\xe2\x80\x9d|\xef\xbc\x88|\xef\xbc\x89|\xef\xbc\xbb|\xef\xbc\xbd|\xef\xbd\x9b|\xef\xbd\x9d|\xef\xbc\x8b|\xef\xbc\x8d|\xef\xbc\x9d|\xef\xbc\x9c|\xef\xbc\x9e|\xef\xbf\xa5|\xef\xbc\x84|\xef\xbc\x85|\xef\xbc\x83|\xef\xbc\x86|\xef\xbc\x8a|\xef\xbc\xa0|\xe3\x80\x9c)/$_z2hSym{$1}/eg; $this; } # ----------------------------------------------------------------------------- # $bytes_ucs2 = $unijp->ucs2(); # sub ucs2 { my $this = shift; $this->_utf8_ucs2($this->{str}); } sub jis_au2 { my $this = shift; $this->_s2j($this->_u2ja2($this->{str})); } sub _si2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ei2u1)) { $ei2u1 = $this->_getFile('jcode/emoji2/ei2u.dat'); } $str =~ s/(\&\#(\d+);)/ ($2 >= 0xf800 and $2 <= 0xf9ff) ? pack('n', $2) : $1 /eg; my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_IMODEv1}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xf800 and $l <= 0xf9ff) ? ( $uc = substr($ei2u1, ($l - 0xf800) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub _utf8_utf16 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $c1; my $c2; my $c3; my $c4; my $uc; $str =~ s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})/ $T2U{$1} or ($T2U{$1} = ((length($1) == 1) ? pack("n", unpack("C", $1)) : (length($1) == 2) ? (($c1,$c2) = unpack("C2", $1), pack("n", (($c1 & 0x1F)<<6)|($c2 & 0x3F))) : (length($1) == 3) ? (($c1,$c2,$c3) = unpack("C3", $1), pack("n", (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F))) : (length($1) == 4) ? (($c1,$c2,$c3,$c4) = unpack("C4", $1), ($uc = ((($c1 & 0x07) << 18)|(($c2 & 0x3F) << 12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F)) - 0x10000), (($uc < 0x100000) ? pack("nn", (($uc >> 10) | 0xd800), (($uc & 0x3ff) | 0xdc00)) : "\0?")) : "\0?") ); /eg; $str; } sub jis_icon_au1 { my $this = shift; $this->_s2j($this->_u2s($this->_u2ai1($this->{str}))); } sub sjis_icon_au1 { my $this = shift; $this->_u2s($this->_u2ai1($this->{str})); } sub sjis_jsky2 { my $this = shift; $this->_u2sj2($this->{str}); } # ----------------------------------------------------------------------------- # $code = Unicode::Japanese->getcode($str); # sub getcode { my $this = shift; my $str = shift; if( $]>=5.008 ) { Encode::_utf8_off($str); } my $l = length($str); if((($l % 4) == 0) and ($str =~ m/^(?:$RE{BOM4_BE}|$RE{BOM4_LE})/o)) { return 'utf32'; } if((($l % 2) == 0) and ($str =~ m/^(?:$RE{BOM2_BE}|$RE{BOM2_LE})/o)) { return 'utf16'; } my $str2; if(($l % 4) == 0) { $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_BE})//o); if($str2 eq '') { return 'utf32-be'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_LE})//o); if($str2 eq '') { return 'utf32-le'; } } if($str !~ m/[\e\x80-\xff]/) { return 'ascii'; } if($str =~ m/$RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA}/o) { if($str =~ m/(?:$RE{JIS_0208})(?:[^\e]{2})*$RE{E_JIS_AU}/o) { return 'jis-au'; } elsif($str =~ m/(?:$RE{E_JSKY})/o) { return 'jis-jsky'; } else { return 'jis'; } } if($str =~ m/(?:$RE{E_JSKY})/o) { return 'sjis-jsky'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C})//o); if($str2 eq '') { return 'euc'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA})//o); if($str2 eq '') { return 'sjis'; } my $str3; $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_SJIS_AU})//o); if($str3 eq '') { return 'sjis-au'; } $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_IMODE})//o); if($str3 eq '') { return 'sjis-imode'; } $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_DOTI})//o); if($str3 eq '') { return 'sjis-doti'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF8})//o); if($str2 eq '') { return 'utf8'; } return 'unknown'; } sub _j2s2 { my $this = shift; my $esc = shift; my $str = shift; if($esc eq $ESC{JIS_0212}) { $str =~ s/../$CHARCODE{UNDEF_SJIS}/g; } elsif($esc !~ m/^$RE{JIS_ASC}/) { $str =~ s{([\x21-\x7e]+)}{ my $str = $1; $str =~ tr/\x21-\x7e/\xa1-\xfe/; if($esc =~ m/^$RE{JIS_0208}/) { $str =~ s/($RE{EUC_C})/ $J2S[unpack('n', $1)] or $this->_j2s3($1) /geo; } $str; }e; } $str; } sub sjis_au2 { my $this = shift; $this->_j2sa($this->_s2j($this->_u2ja2($this->{str}))); } sub h2zKanaD { my $this = shift; if(!defined(%_h2zKanaD)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbd\xb3\xef\xbe\x9e|\xef\xbd\xb6\xef\xbe\x9e|\xef\xbd\xb7\xef\xbe\x9e|\xef\xbd\xb8\xef\xbe\x9e|\xef\xbd\xb9\xef\xbe\x9e|\xef\xbd\xba\xef\xbe\x9e|\xef\xbd\xbb\xef\xbe\x9e|\xef\xbd\xbc\xef\xbe\x9e|\xef\xbd\xbd\xef\xbe\x9e|\xef\xbd\xbe\xef\xbe\x9e|\xef\xbd\xbf\xef\xbe\x9e|\xef\xbe\x80\xef\xbe\x9e|\xef\xbe\x81\xef\xbe\x9e|\xef\xbe\x82\xef\xbe\x9e|\xef\xbe\x83\xef\xbe\x9e|\xef\xbe\x84\xef\xbe\x9e|\xef\xbe\x8a\xef\xbe\x9e|\xef\xbe\x8a\xef\xbe\x9f|\xef\xbe\x8b\xef\xbe\x9e|\xef\xbe\x8b\xef\xbe\x9f|\xef\xbe\x8c\xef\xbe\x9e|\xef\xbe\x8c\xef\xbe\x9f|\xef\xbe\x8d\xef\xbe\x9e|\xef\xbe\x8d\xef\xbe\x9f|\xef\xbe\x8e\xef\xbe\x9e|\xef\xbe\x8e\xef\xbe\x9f)/$_h2zKanaD{$1}/eg; $this; } sub sjis_imode1 { my $this = shift; $this->_u2si1($this->{str}); } sub eucjp { shift->euc(@_); } # ----------------------------------------------------------------------------- # $bytes_utf8 = $unijp->utf8(); # sub utf8 { my $this = shift; $this->_validate_utf8($this->{str}); } sub _s2e { my $this = shift; my $str = shift; if( $]>=5.008 ) { Encode::_utf8_off($str); } $str =~ s/($RE{SJIS_DBCS}|$RE{SJIS_KANA})/ $S2E[unpack('n', $1) or unpack('C', $1)] or $this->_s2e2($1) /geo; $str; } # ----------------------------------------------------------------------------- # $bytes_utf8 = $unijp->utf8_jsky(); # sub utf8_jsky { my $this = shift; $this->_u2uj2($this->{str}); } # utf8-jsky2 => utf8. sub _uj2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ej2u1)) { $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat'); } if(!defined($ej2u2)) { $ej2u2 = $this->_getFile('jcode/emoji2/ej2u2.dat'); } $str = $this->_validate_utf8($str); my @umap = (0x200, 0x000, 0x100); $str =~ s{($RE{E_JSKYv1_UTF8}+)}{ join('', map{ my $l = $_ - 0xe000; substr($ej2u1, ($umap[$l/256]+($l&255)+0x20) * 4, 4); } unpack("n*", $this->_utf8_ucs2($1)) ) }geo; $str =~ s{($RE{E_JSKYv2_UTF8}+)}{ join('', map{ my $l = $_ - 0xe300 + 0x20; substr($ej2u2, $l * 4, 4); } unpack("n*", $this->_utf8_ucs2($1)) ) }geo; $str; } sub utf8_jsky1 { my $this = shift; $this->_u2uj1($this->{str}); } # ----------------------------------------------------------------------------- # $bytes_str = $unijp->conv($ocode,[$encode]); # sub conv { my $this = shift; my $ocode = shift; my $encode = shift; my (@option) = @_; my $res; if(!defined($ocode)) { use Carp; croak(qq(String#conv: param[1] is undef.)); } elsif($ocode eq 'utf8') { $res = $this->utf8; } elsif($ocode eq 'euc' || $ocode eq 'euc-jp' ) { $res = $this->euc; } elsif($ocode eq 'jis') { $res = $this->jis; } elsif($ocode eq 'sjis' || $ocode eq 'cp932') { $res = $this->sjis; } elsif($ocode eq 'sjis-imode') { $res = $this->sjis_imode; } elsif($ocode eq 'sjis-imode1') { $res = $this->sjis_imode1; } elsif($ocode eq 'sjis-imode2') { $res = $this->sjis_imode2; } elsif($ocode eq 'utf8-imode') { $res = $this->utf8_imode; } elsif($ocode eq 'utf8-imode1') { $res = $this->utf8_imode1; } elsif($ocode eq 'utf8-imode2') { $res = $this->utf8_imode2; } elsif($ocode eq 'sjis-doti') { $res = $this->sjis_doti; } elsif($ocode eq 'sjis-doti1') { $res = $this->sjis_doti; } elsif($ocode eq 'sjis-jsky') { $res = $this->sjis_jsky; } elsif($ocode eq 'sjis-jsky1') { $res = $this->sjis_jsky1; } elsif($ocode eq 'sjis-jsky2') { $res = $this->sjis_jsky2; } elsif($ocode eq 'jis-jsky') { $res = $this->jis_jsky; } elsif($ocode eq 'jis-jsky1') { $res = $this->jis_jsky1; } elsif($ocode eq 'jis-jsky2') { $res = $this->jis_jsky2; } elsif($ocode eq 'utf8-jsky') { $res = $this->utf8_jsky; } elsif($ocode eq 'utf8-jsky1') { $res = $this->utf8_jsky1; } elsif($ocode eq 'utf8-jsky2') { $res = $this->utf8_jsky2; } elsif($ocode eq 'jis-au') { $res = $this->jis_au2; } elsif($ocode eq 'jis-au1') { $res = $this->jis_au1; } elsif($ocode eq 'jis-au2') { $res = $this->jis_au2; } elsif($ocode eq 'sjis-au') { $res = $this->sjis_au2; } elsif($ocode eq 'sjis-au1') { $res = $this->sjis_au1; } elsif($ocode eq 'sjis-au2') { $res = $this->sjis_au2; } elsif($ocode eq 'sjis-icon-au') { $res = $this->sjis_icon_au2; } elsif($ocode eq 'sjis-icon-au1') { $res = $this->sjis_icon_au1; } elsif($ocode eq 'sjis-icon-au2') { $res = $this->sjis_icon_au2; } elsif($ocode eq 'jis-icon-au') { $res = $this->jis_icon_au2; } elsif($ocode eq 'jis-icon-au1') { $res = $this->jis_icon_au1; } elsif($ocode eq 'jis-icon-au2') { $res = $this->jis_icon_au2; } elsif($ocode eq 'euc-icon-au') { $res = $this->euc_icon_au2; } elsif($ocode eq 'euc-icon-au1') { $res = $this->euc_icon_au1; } elsif($ocode eq 'euc-icon-au2') { $res = $this->euc_icon_au2; } elsif($ocode eq 'utf8-icon-au') { $res = $this->utf8_icon_au2; } elsif($ocode eq 'utf8-icon-au1') { $res = $this->utf8_icon_au1; } elsif($ocode eq 'utf8-icon-au2') { $res = $this->utf8_icon_au2; } elsif($ocode eq 'ucs2') { $res = $this->ucs2; } elsif($ocode eq 'ucs4') { $res = $this->ucs4; } elsif($ocode eq 'utf16') { $res = $this->utf16; } elsif($ocode eq 'binary') { $res = $this->{str}; } else { use Carp; croak(qq(String#conv: param[1]: invalid ocode "$ocode")); } if(defined($encode)) { if($encode eq 'base64') { $res = $this->_encodeBase64($res, @option); } else { use Carp; croak(qq(String#conv: param[2]: invalid encoding "$encode")); } } $res; } sub _utf16be_utf16 { my $this = shift; my $str = shift; $str; } sub hira2kata { my $this = shift; if(!defined(%_hira2kata)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x81\x81|\xe3\x81\x82|\xe3\x81\x83|\xe3\x81\x84|\xe3\x81\x85|\xe3\x81\x86|\xe3\x81\x87|\xe3\x81\x88|\xe3\x81\x89|\xe3\x81\x8a|\xe3\x81\x8b|\xe3\x81\x8c|\xe3\x81\x8d|\xe3\x81\x8e|\xe3\x81\x8f|\xe3\x81\x90|\xe3\x81\x91|\xe3\x81\x92|\xe3\x81\x93|\xe3\x81\x94|\xe3\x81\x95|\xe3\x81\x96|\xe3\x81\x97|\xe3\x81\x98|\xe3\x81\x99|\xe3\x81\x9a|\xe3\x81\x9b|\xe3\x81\x9c|\xe3\x81\x9d|\xe3\x81\x9e|\xe3\x81\x9f|\xe3\x81\xa0|\xe3\x81\xa1|\xe3\x81\xa2|\xe3\x81\xa3|\xe3\x81\xa4|\xe3\x81\xa5|\xe3\x81\xa6|\xe3\x81\xa7|\xe3\x81\xa8|\xe3\x81\xa9|\xe3\x81\xaa|\xe3\x81\xab|\xe3\x81\xac|\xe3\x81\xad|\xe3\x81\xae|\xe3\x81\xaf|\xe3\x81\xb0|\xe3\x81\xb1|\xe3\x81\xb2|\xe3\x81\xb3|\xe3\x81\xb4|\xe3\x81\xb5|\xe3\x81\xb6|\xe3\x81\xb7|\xe3\x81\xb8|\xe3\x81\xb9|\xe3\x81\xba|\xe3\x81\xbb|\xe3\x81\xbc|\xe3\x81\xbd|\xe3\x81\xbe|\xe3\x81\xbf|\xe3\x82\x80|\xe3\x82\x81|\xe3\x82\x82|\xe3\x82\x83|\xe3\x82\x84|\xe3\x82\x85|\xe3\x82\x86|\xe3\x82\x87|\xe3\x82\x88|\xe3\x82\x89|\xe3\x82\x8a|\xe3\x82\x8b|\xe3\x82\x8c|\xe3\x82\x8d|\xe3\x82\x8e|\xe3\x82\x8f|\xe3\x82\x90|\xe3\x82\x91|\xe3\x82\x92|\xe3\x82\x93)/$_hira2kata{$1}/eg; $this; } sub splitCsvu { my $this = shift; my $result = &splitCsv; if( $]>=5.008 && $this->{icode} ne 'binary' ) { foreach(@$result) { Encode::_utf8_on($_); } } $result; } sub _u2ui1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } # imode : F800-F9FF => U+0FF800 - U+0FF9FF # [BASIC] # F89F = E63E = ee 98 be = F3BFA29F # F9B0 = E70B = ee 9c 8b = F3BFA6B0 # [EXTENSION] # F9B1 = E70C = ee 9c 8c = F3BFA6B1 # F9FC = E757 = ee 9d 97 = F3BFA7BC $str =~ s{\xf3\xbf([\xa2-\xa7][\x80-\xbf])}{ my ($in1, $in2) = unpack("CC", $1); my $in = (($in1 - 0xa2) << 6) + $in2; my $diff = $in <= 0xfc ? 0xfc - 0x9b : $in <= 0x17e ? 0x17e - 0xda : 0x1b0 - 0x10b; my $ucs2offset = $in + 0xe600 - $diff; $in <= 0x1b0 ? pack("C3", 0xee, (($ucs2offset>>6)&63)+128, ($ucs2offset&63)+128) : '?'; }xeg; $str; } sub sjis_doti1 { my $this = shift; $this->_u2sd($this->{str}); } # ----------------------------------------------------------------------------- # conversion methods (private). # sub _s2j { my $this = shift; my $str = shift; $str =~ s/((?:$RE{SJIS_DBCS}|$RE{SJIS_KANA})+)/ $this->_s2j2($1) . $ESC{ASC} /geo; $str; } sub _sa2j2 { my $this = shift; my $str = shift; $str =~ s/((?:$RE{SJIS_DBCS}|$RE{E_SJIS_AU})+|(?:$RE{SJIS_KANA})+)/ my $s = $1; if($s =~ m,^$RE{SJIS_KANA},o) { $s =~ tr,\xa1-\xdf,\x21-\x5f,; $ESC{KANA} . $s } else { $s =~ s!($RE{SJIS_DBCS}|$RE{E_SJIS_AU})! $this->_sa2j3($1) !geo; $ESC{JIS_0208} . $s; } /geo; $str; } sub _j2sa { my $this = shift; my $str = shift; $str =~ s/($RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA})([^\e]*)/ $this->_j2sa2($1, $2) /geo; $str; } sub sjis_au1 { my $this = shift; $this->_j2sa($this->_s2j($this->_u2ja1($this->{str}))); } sub join_csv { &joinCsv; } # utf8Ãæ¤Î<IMG ICON="">ʸ»ú¤òAU³¨Ê¸»ú¥³¡¼¥É¤ËÊÑ´¹ sub _ai2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($ea2u1)) { $ea2u1 = $this->_getFile('jcode/emoji2/ea2u.dat'); } my $c; $str =~ s/$RE{E_ICON_AU_START}(\d+)$RE{E_ICON_AU_END}/ ($1 > 0 and $1 <= 0x14a) ? ($c = substr($ea2u1, ($1-1) * 4, 4), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c) : '?' /ige; $str; } # ----------------------------------------------------------------------------- # sjis/³¨Ê¸»ú => utf8 # sub _s2u { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xfcff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub utf8_imode1 { my $this = shift; $this->_u2ui1($this->{str}); } sub _j2sa3 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if ($c1 % 2) { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71); $c2 -= 0x60 + ($c2 < 0xe0); } else { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70); $c2 -= 2; } $c1 = 0xf6 if($c1 == 0xeb); $c1 = 0xf7 if($c1 == 0xec); $c1 = 0xf3 if($c1 == 0xed); $c1 = 0xf4 if($c1 == 0xee); pack('CC', $c1, $c2); } sub jis_jsky1 { my $this = shift; $this->_s2j($this->_u2sj1($this->{str})); } sub jis_icon_au2 { my $this = shift; $this->_s2j($this->_u2s($this->_u2ai2($this->{str}))); } # ----------------------------------------------------------------------------- # $bytes_jsky = $unijp->sjis_jsky(); # sub sjis_jsky { my $this = shift; $this->_u2sj2($this->{str}); } sub _u2uj2 { my $this = shift; if(!defined($eu2j2)) { $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat'); } my $str = $this->_validate_utf8($this->{str}); $str =~ s{([\xf0-\xf7][\x80-\xbf]{3})}{ my ($c1,$c2,$c3,$c4) = unpack("C4", $1); my $ch = (($c1 & 0x07)<<18) | (($c2 & 0x3F)<<12) | (($c3 & 0x3f)<< 6) | ($c4 & 0x3F); if( 0x0fe000 <= $ch && $ch <= 0x0fffff ) { my $c = substr($eu2j2, ($ch - 0x0fe000) * 5, 5); $c =~ tr,\0,,d; $c eq '' and $c = '?'; if( $c =~ /^\e\$([GEFOPQ])(.)\x0f/ ) { my ($j1,$j2) = ($1,$2); $j1 =~ tr/GEFOPQ/\xe0-\xe5/; $j2 =~ tr/!-z/\x01-\x5a/; $c = $this->_ucs2_utf8($j1.$j2); } $c; }else { '?'; } }ge; $str; } # ----------------------------------------------------------------------------- # $bytes_iso2022jp = $unijp->jis(); # sub jis { my $this = shift; $this->_s2j($this->sjis); } sub jis_au1 { my $this = shift; $this->_s2j($this->_u2ja1($this->{str})); } sub _utf8_ucs4 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; $str =~ s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}|(.))/ defined($2) ? "\0\0\0$2" : (length($1) == 1) ? pack("N", unpack("C", $1)) : (length($1) == 2) ? do { ($c1,$c2) = unpack("C2", $1); my $n = (($c1 & 0x1F) << 6)|($c2 & 0x3F); pack("N", $n>=0x80 ? $n : unpack("C",'?')); } : (length($1) == 3) ? do { ($c1,$c2,$c3) = unpack("C3", $1); my $n = (($c1 & 0x0F) << 12)|(($c2 & 0x3F) << 6)| ($c3 & 0x3F); pack("N", $n>=0x800 ? $n : unpack("C",'?')); } : (length($1) == 4) ? do { ($c1,$c2,$c3,$c4) = unpack("C4", $1); my $n = (($c1 & 0x07) << 18)|(($c2 & 0x3F) << 12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F); pack("N", ($n>=0x010000 && $n<=0x10FFFF) ? $n : unpack("C",'?')); } : pack("N", unpack("C",'?')) /eg; $str; } # ----------------------------------------------------------------------------- # $bytes_utf8 = $unijp->get(); # sub get { my $this = shift; $this->{str}; } sub z2h { my $this = shift; $this->z2hKana; $this->z2hNum; $this->z2hAlpha; $this->z2hSym; $this; } # ----------------------------------------------------------------------------- # $chars_utf8 = $unijp->getu(); # sub getu { my $this = shift; my $str = $this->{str}; if( $]>=5.008 && $this->{icode} ne 'binary' ) { Encode::_utf8_on($str); } $str; } sub _loadConvTable { %_h2zNum = ( "0" => "\xef\xbc\x90", "1" => "\xef\xbc\x91", "2" => "\xef\xbc\x92", "3" => "\xef\xbc\x93", "4" => "\xef\xbc\x94", "5" => "\xef\xbc\x95", "6" => "\xef\xbc\x96", "7" => "\xef\xbc\x97", "8" => "\xef\xbc\x98", "9" => "\xef\xbc\x99", ); %_z2hNum = ( "\xef\xbc\x90" => "0", "\xef\xbc\x91" => "1", "\xef\xbc\x92" => "2", "\xef\xbc\x93" => "3", "\xef\xbc\x94" => "4", "\xef\xbc\x95" => "5", "\xef\xbc\x96" => "6", "\xef\xbc\x97" => "7", "\xef\xbc\x98" => "8", "\xef\xbc\x99" => "9", ); %_h2zAlpha = ( "A" => "\xef\xbc\xa1", "B" => "\xef\xbc\xa2", "C" => "\xef\xbc\xa3", "D" => "\xef\xbc\xa4", "E" => "\xef\xbc\xa5", "F" => "\xef\xbc\xa6", "G" => "\xef\xbc\xa7", "H" => "\xef\xbc\xa8", "I" => "\xef\xbc\xa9", "J" => "\xef\xbc\xaa", "K" => "\xef\xbc\xab", "L" => "\xef\xbc\xac", "M" => "\xef\xbc\xad", "N" => "\xef\xbc\xae", "O" => "\xef\xbc\xaf", "P" => "\xef\xbc\xb0", "Q" => "\xef\xbc\xb1", "R" => "\xef\xbc\xb2", "S" => "\xef\xbc\xb3", "T" => "\xef\xbc\xb4", "U" => "\xef\xbc\xb5", "V" => "\xef\xbc\xb6", "W" => "\xef\xbc\xb7", "X" => "\xef\xbc\xb8", "Y" => "\xef\xbc\xb9", "Z" => "\xef\xbc\xba", "a" => "\xef\xbd\x81", "b" => "\xef\xbd\x82", "c" => "\xef\xbd\x83", "d" => "\xef\xbd\x84", "e" => "\xef\xbd\x85", "f" => "\xef\xbd\x86", "g" => "\xef\xbd\x87", "h" => "\xef\xbd\x88", "i" => "\xef\xbd\x89", "j" => "\xef\xbd\x8a", "k" => "\xef\xbd\x8b", "l" => "\xef\xbd\x8c", "m" => "\xef\xbd\x8d", "n" => "\xef\xbd\x8e", "o" => "\xef\xbd\x8f", "p" => "\xef\xbd\x90", "q" => "\xef\xbd\x91", "r" => "\xef\xbd\x92", "s" => "\xef\xbd\x93", "t" => "\xef\xbd\x94", "u" => "\xef\xbd\x95", "v" => "\xef\xbd\x96", "w" => "\xef\xbd\x97", "x" => "\xef\xbd\x98", "y" => "\xef\xbd\x99", "z" => "\xef\xbd\x9a", ); %_z2hAlpha = ( "\xef\xbc\xa1" => "A", "\xef\xbc\xa2" => "B", "\xef\xbc\xa3" => "C", "\xef\xbc\xa4" => "D", "\xef\xbc\xa5" => "E", "\xef\xbc\xa6" => "F", "\xef\xbc\xa7" => "G", "\xef\xbc\xa8" => "H", "\xef\xbc\xa9" => "I", "\xef\xbc\xaa" => "J", "\xef\xbc\xab" => "K", "\xef\xbc\xac" => "L", "\xef\xbc\xad" => "M", "\xef\xbc\xae" => "N", "\xef\xbc\xaf" => "O", "\xef\xbc\xb0" => "P", "\xef\xbc\xb1" => "Q", "\xef\xbc\xb2" => "R", "\xef\xbc\xb3" => "S", "\xef\xbc\xb4" => "T", "\xef\xbc\xb5" => "U", "\xef\xbc\xb6" => "V", "\xef\xbc\xb7" => "W", "\xef\xbc\xb8" => "X", "\xef\xbc\xb9" => "Y", "\xef\xbc\xba" => "Z", "\xef\xbd\x81" => "a", "\xef\xbd\x82" => "b", "\xef\xbd\x83" => "c", "\xef\xbd\x84" => "d", "\xef\xbd\x85" => "e", "\xef\xbd\x86" => "f", "\xef\xbd\x87" => "g", "\xef\xbd\x88" => "h", "\xef\xbd\x89" => "i", "\xef\xbd\x8a" => "j", "\xef\xbd\x8b" => "k", "\xef\xbd\x8c" => "l", "\xef\xbd\x8d" => "m", "\xef\xbd\x8e" => "n", "\xef\xbd\x8f" => "o", "\xef\xbd\x90" => "p", "\xef\xbd\x91" => "q", "\xef\xbd\x92" => "r", "\xef\xbd\x93" => "s", "\xef\xbd\x94" => "t", "\xef\xbd\x95" => "u", "\xef\xbd\x96" => "v", "\xef\xbd\x97" => "w", "\xef\xbd\x98" => "x", "\xef\xbd\x99" => "y", "\xef\xbd\x9a" => "z", ); %_h2zSym = ( "\x20" => "\xe3\x80\x80", "\x21" => "\xef\xbc\x81", "\x22" => "\xe2\x80\x9d", "\x23" => "\xef\xbc\x83", "\x24" => "\xef\xbc\x84", "\x25" => "\xef\xbc\x85", "\x26" => "\xef\xbc\x86", "\x27" => "\xe2\x80\x99", "\x28" => "\xef\xbc\x88", "\x29" => "\xef\xbc\x89", "\x2a" => "\xef\xbc\x8a", "\x2b" => "\xef\xbc\x8b", "\x2c" => "\xef\xbc\x8c", "\x2d" => "\xef\xbc\x8d", "\x2e" => "\xef\xbc\x8e", "\x2f" => "\xef\xbc\x8f", "\x3a" => "\xef\xbc\x9a", "\x3b" => "\xef\xbc\x9b", "\x3c" => "\xef\xbc\x9c", "\x3d" => "\xef\xbc\x9d", "\x3e" => "\xef\xbc\x9e", "\x3f" => "\xef\xbc\x9f", "\x40" => "\xef\xbc\xa0", "\x5b" => "\xef\xbc\xbb", "\x5c" => "\xef\xbf\xa5", "\x5d" => "\xef\xbc\xbd", "\x5e" => "\xef\xbc\xbe", "_" => "\xef\xbc\xbf", "\x60" => "\xef\xbd\x80", "\x7b" => "\xef\xbd\x9b", "\x7c" => "\xef\xbd\x9c", "\x7d" => "\xef\xbd\x9d", "\x7e" => "\xef\xbd\x9e", ); %_z2hSym = ( "\xe3\x80\x80" => "\x20", "\xef\xbc\x8c" => "\x2c", "\xef\xbc\x8e" => "\x2e", "\xef\xbc\x9a" => "\x3a", "\xef\xbc\x9b" => "\x3b", "\xef\xbc\x9f" => "\x3f", "\xef\xbc\x81" => "\x21", "\xef\xbd\x80" => "\x60", "\xef\xbc\xbe" => "\x5e", "\xef\xbc\xbf" => "_", "\xef\xbc\x8f" => "\x2f", "\xef\xbd\x9e" => "\x7e", "\xef\xbd\x9c" => "\x7c", "\xe2\x80\x99" => "\x27", "\xe2\x80\x9d" => "\x22", "\xef\xbc\x88" => "\x28", "\xef\xbc\x89" => "\x29", "\xef\xbc\xbb" => "\x5b", "\xef\xbc\xbd" => "\x5d", "\xef\xbd\x9b" => "\x7b", "\xef\xbd\x9d" => "\x7d", "\xef\xbc\x8b" => "\x2b", "\xef\xbc\x8d" => "\x2d", "\xef\xbc\x9d" => "\x3d", "\xef\xbc\x9c" => "\x3c", "\xef\xbc\x9e" => "\x3e", "\xef\xbf\xa5" => "\x5c", "\xef\xbc\x84" => "\x24", "\xef\xbc\x85" => "\x25", "\xef\xbc\x83" => "\x23", "\xef\xbc\x86" => "\x26", "\xef\xbc\x8a" => "\x2a", "\xef\xbc\xa0" => "\x40", "\xe3\x80\x9c" => "\x7e", ); %_h2zKanaK = ( "\xef\xbd\xa1" => "\xe3\x80\x82", "\xef\xbd\xa2" => "\xe3\x80\x8c", "\xef\xbd\xa3" => "\xe3\x80\x8d", "\xef\xbd\xa4" => "\xe3\x80\x81", "\xef\xbd\xa5" => "\xe3\x83\xbb", "\xef\xbd\xa6" => "\xe3\x83\xb2", "\xef\xbd\xa7" => "\xe3\x82\xa1", "\xef\xbd\xa8" => "\xe3\x82\xa3", "\xef\xbd\xa9" => "\xe3\x82\xa5", "\xef\xbd\xaa" => "\xe3\x82\xa7", "\xef\xbd\xab" => "\xe3\x82\xa9", "\xef\xbd\xac" => "\xe3\x83\xa3", "\xef\xbd\xad" => "\xe3\x83\xa5", "\xef\xbd\xae" => "\xe3\x83\xa7", "\xef\xbd\xaf" => "\xe3\x83\x83", "\xef\xbd\xb0" => "\xe3\x83\xbc", "\xef\xbd\xb1" => "\xe3\x82\xa2", "\xef\xbd\xb2" => "\xe3\x82\xa4", "\xef\xbd\xb3" => "\xe3\x82\xa6", "\xef\xbd\xb4" => "\xe3\x82\xa8", "\xef\xbd\xb5" => "\xe3\x82\xaa", "\xef\xbd\xb6" => "\xe3\x82\xab", "\xef\xbd\xb7" => "\xe3\x82\xad", "\xef\xbd\xb8" => "\xe3\x82\xaf", "\xef\xbd\xb9" => "\xe3\x82\xb1", "\xef\xbd\xba" => "\xe3\x82\xb3", "\xef\xbd\xbb" => "\xe3\x82\xb5", "\xef\xbd\xbc" => "\xe3\x82\xb7", "\xef\xbd\xbd" => "\xe3\x82\xb9", "\xef\xbd\xbe" => "\xe3\x82\xbb", "\xef\xbd\xbf" => "\xe3\x82\xbd", "\xef\xbe\x80" => "\xe3\x82\xbf", "\xef\xbe\x81" => "\xe3\x83\x81", "\xef\xbe\x82" => "\xe3\x83\x84", "\xef\xbe\x83" => "\xe3\x83\x86", "\xef\xbe\x84" => "\xe3\x83\x88", "\xef\xbe\x85" => "\xe3\x83\x8a", "\xef\xbe\x86" => "\xe3\x83\x8b", "\xef\xbe\x87" => "\xe3\x83\x8c", "\xef\xbe\x88" => "\xe3\x83\x8d", "\xef\xbe\x89" => "\xe3\x83\x8e", "\xef\xbe\x8a" => "\xe3\x83\x8f", "\xef\xbe\x8b" => "\xe3\x83\x92", "\xef\xbe\x8c" => "\xe3\x83\x95", "\xef\xbe\x8d" => "\xe3\x83\x98", "\xef\xbe\x8e" => "\xe3\x83\x9b", "\xef\xbe\x8f" => "\xe3\x83\x9e", "\xef\xbe\x90" => "\xe3\x83\x9f", "\xef\xbe\x91" => "\xe3\x83\xa0", "\xef\xbe\x92" => "\xe3\x83\xa1", "\xef\xbe\x93" => "\xe3\x83\xa2", "\xef\xbe\x94" => "\xe3\x83\xa4", "\xef\xbe\x95" => "\xe3\x83\xa6", "\xef\xbe\x96" => "\xe3\x83\xa8", "\xef\xbe\x97" => "\xe3\x83\xa9", "\xef\xbe\x98" => "\xe3\x83\xaa", "\xef\xbe\x99" => "\xe3\x83\xab", "\xef\xbe\x9a" => "\xe3\x83\xac", "\xef\xbe\x9b" => "\xe3\x83\xad", "\xef\xbe\x9c" => "\xe3\x83\xaf", "\xef\xbe\x9d" => "\xe3\x83\xb3", "\xef\xbe\x9e" => "\xe3\x82\x9b", "\xef\xbe\x9f" => "\xe3\x82\x9c", ); %_z2hKanaK = ( "\xe3\x80\x81" => "\xef\xbd\xa4", "\xe3\x80\x82" => "\xef\xbd\xa1", "\xe3\x83\xbb" => "\xef\xbd\xa5", "\xe3\x82\x9b" => "\xef\xbe\x9e", "\xe3\x82\x9c" => "\xef\xbe\x9f", "\xe3\x83\xbc" => "\xef\xbd\xb0", "\xe3\x80\x8c" => "\xef\xbd\xa2", "\xe3\x80\x8d" => "\xef\xbd\xa3", "\xe3\x82\xa1" => "\xef\xbd\xa7", "\xe3\x82\xa2" => "\xef\xbd\xb1", "\xe3\x82\xa3" => "\xef\xbd\xa8", "\xe3\x82\xa4" => "\xef\xbd\xb2", "\xe3\x82\xa5" => "\xef\xbd\xa9", "\xe3\x82\xa6" => "\xef\xbd\xb3", "\xe3\x82\xa7" => "\xef\xbd\xaa", "\xe3\x82\xa8" => "\xef\xbd\xb4", "\xe3\x82\xa9" => "\xef\xbd\xab", "\xe3\x82\xaa" => "\xef\xbd\xb5", "\xe3\x82\xab" => "\xef\xbd\xb6", "\xe3\x82\xad" => "\xef\xbd\xb7", "\xe3\x82\xaf" => "\xef\xbd\xb8", "\xe3\x82\xb1" => "\xef\xbd\xb9", "\xe3\x82\xb3" => "\xef\xbd\xba", "\xe3\x82\xb5" => "\xef\xbd\xbb", "\xe3\x82\xb7" => "\xef\xbd\xbc", "\xe3\x82\xb9" => "\xef\xbd\xbd", "\xe3\x82\xbb" => "\xef\xbd\xbe", "\xe3\x82\xbd" => "\xef\xbd\xbf", "\xe3\x82\xbf" => "\xef\xbe\x80", "\xe3\x83\x81" => "\xef\xbe\x81", "\xe3\x83\x83" => "\xef\xbd\xaf", "\xe3\x83\x84" => "\xef\xbe\x82", "\xe3\x83\x86" => "\xef\xbe\x83", "\xe3\x83\x88" => "\xef\xbe\x84", "\xe3\x83\x8a" => "\xef\xbe\x85", "\xe3\x83\x8b" => "\xef\xbe\x86", "\xe3\x83\x8c" => "\xef\xbe\x87", "\xe3\x83\x8d" => "\xef\xbe\x88", "\xe3\x83\x8e" => "\xef\xbe\x89", "\xe3\x83\x8f" => "\xef\xbe\x8a", "\xe3\x83\x92" => "\xef\xbe\x8b", "\xe3\x83\x95" => "\xef\xbe\x8c", "\xe3\x83\x98" => "\xef\xbe\x8d", "\xe3\x83\x9b" => "\xef\xbe\x8e", "\xe3\x83\x9e" => "\xef\xbe\x8f", "\xe3\x83\x9f" => "\xef\xbe\x90", "\xe3\x83\xa0" => "\xef\xbe\x91", "\xe3\x83\xa1" => "\xef\xbe\x92", "\xe3\x83\xa2" => "\xef\xbe\x93", "\xe3\x83\xa3" => "\xef\xbd\xac", "\xe3\x83\xa4" => "\xef\xbe\x94", "\xe3\x83\xa5" => "\xef\xbd\xad", "\xe3\x83\xa6" => "\xef\xbe\x95", "\xe3\x83\xa7" => "\xef\xbd\xae", "\xe3\x83\xa8" => "\xef\xbe\x96", "\xe3\x83\xa9" => "\xef\xbe\x97", "\xe3\x83\xaa" => "\xef\xbe\x98", "\xe3\x83\xab" => "\xef\xbe\x99", "\xe3\x83\xac" => "\xef\xbe\x9a", "\xe3\x83\xad" => "\xef\xbe\x9b", "\xe3\x83\xaf" => "\xef\xbe\x9c", "\xe3\x83\xb2" => "\xef\xbd\xa6", "\xe3\x83\xb3" => "\xef\xbe\x9d", ); %_h2zKanaD = ( "\xef\xbd\xb3\xef\xbe\x9e" => "\xe3\x83\xb4", "\xef\xbd\xb6\xef\xbe\x9e" => "\xe3\x82\xac", "\xef\xbd\xb7\xef\xbe\x9e" => "\xe3\x82\xae", "\xef\xbd\xb8\xef\xbe\x9e" => "\xe3\x82\xb0", "\xef\xbd\xb9\xef\xbe\x9e" => "\xe3\x82\xb2", "\xef\xbd\xba\xef\xbe\x9e" => "\xe3\x82\xb4", "\xef\xbd\xbb\xef\xbe\x9e" => "\xe3\x82\xb6", "\xef\xbd\xbc\xef\xbe\x9e" => "\xe3\x82\xb8", "\xef\xbd\xbd\xef\xbe\x9e" => "\xe3\x82\xba", "\xef\xbd\xbe\xef\xbe\x9e" => "\xe3\x82\xbc", "\xef\xbd\xbf\xef\xbe\x9e" => "\xe3\x82\xbe", "\xef\xbe\x80\xef\xbe\x9e" => "\xe3\x83\x80", "\xef\xbe\x81\xef\xbe\x9e" => "\xe3\x83\x82", "\xef\xbe\x82\xef\xbe\x9e" => "\xe3\x83\x85", "\xef\xbe\x83\xef\xbe\x9e" => "\xe3\x83\x87", "\xef\xbe\x84\xef\xbe\x9e" => "\xe3\x83\x89", "\xef\xbe\x8a\xef\xbe\x9e" => "\xe3\x83\x90", "\xef\xbe\x8a\xef\xbe\x9f" => "\xe3\x83\x91", "\xef\xbe\x8b\xef\xbe\x9e" => "\xe3\x83\x93", "\xef\xbe\x8b\xef\xbe\x9f" => "\xe3\x83\x94", "\xef\xbe\x8c\xef\xbe\x9e" => "\xe3\x83\x96", "\xef\xbe\x8c\xef\xbe\x9f" => "\xe3\x83\x97", "\xef\xbe\x8d\xef\xbe\x9e" => "\xe3\x83\x99", "\xef\xbe\x8d\xef\xbe\x9f" => "\xe3\x83\x9a", "\xef\xbe\x8e\xef\xbe\x9e" => "\xe3\x83\x9c", "\xef\xbe\x8e\xef\xbe\x9f" => "\xe3\x83\x9d", ); %_z2hKanaD = ( "\xe3\x82\xac" => "\xef\xbd\xb6\xef\xbe\x9e", "\xe3\x82\xae" => "\xef\xbd\xb7\xef\xbe\x9e", "\xe3\x82\xb0" => "\xef\xbd\xb8\xef\xbe\x9e", "\xe3\x82\xb2" => "\xef\xbd\xb9\xef\xbe\x9e", "\xe3\x82\xb4" => "\xef\xbd\xba\xef\xbe\x9e", "\xe3\x82\xb6" => "\xef\xbd\xbb\xef\xbe\x9e", "\xe3\x82\xb8" => "\xef\xbd\xbc\xef\xbe\x9e", "\xe3\x82\xba" => "\xef\xbd\xbd\xef\xbe\x9e", "\xe3\x82\xbc" => "\xef\xbd\xbe\xef\xbe\x9e", "\xe3\x82\xbe" => "\xef\xbd\xbf\xef\xbe\x9e", "\xe3\x83\x80" => "\xef\xbe\x80\xef\xbe\x9e", "\xe3\x83\x82" => "\xef\xbe\x81\xef\xbe\x9e", "\xe3\x83\x85" => "\xef\xbe\x82\xef\xbe\x9e", "\xe3\x83\x87" => "\xef\xbe\x83\xef\xbe\x9e", "\xe3\x83\x89" => "\xef\xbe\x84\xef\xbe\x9e", "\xe3\x83\x90" => "\xef\xbe\x8a\xef\xbe\x9e", "\xe3\x83\x91" => "\xef\xbe\x8a\xef\xbe\x9f", "\xe3\x83\x93" => "\xef\xbe\x8b\xef\xbe\x9e", "\xe3\x83\x94" => "\xef\xbe\x8b\xef\xbe\x9f", "\xe3\x83\x96" => "\xef\xbe\x8c\xef\xbe\x9e", "\xe3\x83\x97" => "\xef\xbe\x8c\xef\xbe\x9f", "\xe3\x83\x99" => "\xef\xbe\x8d\xef\xbe\x9e", "\xe3\x83\x9a" => "\xef\xbe\x8d\xef\xbe\x9f", "\xe3\x83\x9c" => "\xef\xbe\x8e\xef\xbe\x9e", "\xe3\x83\x9d" => "\xef\xbe\x8e\xef\xbe\x9f", "\xe3\x83\xb4" => "\xef\xbd\xb3\xef\xbe\x9e", ); %_hira2kata = ( "\xe3\x81\x81" => "\xe3\x82\xa1", "\xe3\x81\x82" => "\xe3\x82\xa2", "\xe3\x81\x83" => "\xe3\x82\xa3", "\xe3\x81\x84" => "\xe3\x82\xa4", "\xe3\x81\x85" => "\xe3\x82\xa5", "\xe3\x81\x86" => "\xe3\x82\xa6", "\xe3\x81\x87" => "\xe3\x82\xa7", "\xe3\x81\x88" => "\xe3\x82\xa8", "\xe3\x81\x89" => "\xe3\x82\xa9", "\xe3\x81\x8a" => "\xe3\x82\xaa", "\xe3\x81\x8b" => "\xe3\x82\xab", "\xe3\x81\x8c" => "\xe3\x82\xac", "\xe3\x81\x8d" => "\xe3\x82\xad", "\xe3\x81\x8e" => "\xe3\x82\xae", "\xe3\x81\x8f" => "\xe3\x82\xaf", "\xe3\x81\x90" => "\xe3\x82\xb0", "\xe3\x81\x91" => "\xe3\x82\xb1", "\xe3\x81\x92" => "\xe3\x82\xb2", "\xe3\x81\x93" => "\xe3\x82\xb3", "\xe3\x81\x94" => "\xe3\x82\xb4", "\xe3\x81\x95" => "\xe3\x82\xb5", "\xe3\x81\x96" => "\xe3\x82\xb6", "\xe3\x81\x97" => "\xe3\x82\xb7", "\xe3\x81\x98" => "\xe3\x82\xb8", "\xe3\x81\x99" => "\xe3\x82\xb9", "\xe3\x81\x9a" => "\xe3\x82\xba", "\xe3\x81\x9b" => "\xe3\x82\xbb", "\xe3\x81\x9c" => "\xe3\x82\xbc", "\xe3\x81\x9d" => "\xe3\x82\xbd", "\xe3\x81\x9e" => "\xe3\x82\xbe", "\xe3\x81\x9f" => "\xe3\x82\xbf", "\xe3\x81\xa0" => "\xe3\x83\x80", "\xe3\x81\xa1" => "\xe3\x83\x81", "\xe3\x81\xa2" => "\xe3\x83\x82", "\xe3\x81\xa3" => "\xe3\x83\x83", "\xe3\x81\xa4" => "\xe3\x83\x84", "\xe3\x81\xa5" => "\xe3\x83\x85", "\xe3\x81\xa6" => "\xe3\x83\x86", "\xe3\x81\xa7" => "\xe3\x83\x87", "\xe3\x81\xa8" => "\xe3\x83\x88", "\xe3\x81\xa9" => "\xe3\x83\x89", "\xe3\x81\xaa" => "\xe3\x83\x8a", "\xe3\x81\xab" => "\xe3\x83\x8b", "\xe3\x81\xac" => "\xe3\x83\x8c", "\xe3\x81\xad" => "\xe3\x83\x8d", "\xe3\x81\xae" => "\xe3\x83\x8e", "\xe3\x81\xaf" => "\xe3\x83\x8f", "\xe3\x81\xb0" => "\xe3\x83\x90", "\xe3\x81\xb1" => "\xe3\x83\x91", "\xe3\x81\xb2" => "\xe3\x83\x92", "\xe3\x81\xb3" => "\xe3\x83\x93", "\xe3\x81\xb4" => "\xe3\x83\x94", "\xe3\x81\xb5" => "\xe3\x83\x95", "\xe3\x81\xb6" => "\xe3\x83\x96", "\xe3\x81\xb7" => "\xe3\x83\x97", "\xe3\x81\xb8" => "\xe3\x83\x98", "\xe3\x81\xb9" => "\xe3\x83\x99", "\xe3\x81\xba" => "\xe3\x83\x9a", "\xe3\x81\xbb" => "\xe3\x83\x9b", "\xe3\x81\xbc" => "\xe3\x83\x9c", "\xe3\x81\xbd" => "\xe3\x83\x9d", "\xe3\x81\xbe" => "\xe3\x83\x9e", "\xe3\x81\xbf" => "\xe3\x83\x9f", "\xe3\x82\x80" => "\xe3\x83\xa0", "\xe3\x82\x81" => "\xe3\x83\xa1", "\xe3\x82\x82" => "\xe3\x83\xa2", "\xe3\x82\x83" => "\xe3\x83\xa3", "\xe3\x82\x84" => "\xe3\x83\xa4", "\xe3\x82\x85" => "\xe3\x83\xa5", "\xe3\x82\x86" => "\xe3\x83\xa6", "\xe3\x82\x87" => "\xe3\x83\xa7", "\xe3\x82\x88" => "\xe3\x83\xa8", "\xe3\x82\x89" => "\xe3\x83\xa9", "\xe3\x82\x8a" => "\xe3\x83\xaa", "\xe3\x82\x8b" => "\xe3\x83\xab", "\xe3\x82\x8c" => "\xe3\x83\xac", "\xe3\x82\x8d" => "\xe3\x83\xad", "\xe3\x82\x8e" => "\xe3\x83\xae", "\xe3\x82\x8f" => "\xe3\x83\xaf", "\xe3\x82\x90" => "\xe3\x83\xb0", "\xe3\x82\x91" => "\xe3\x83\xb1", "\xe3\x82\x92" => "\xe3\x83\xb2", "\xe3\x82\x93" => "\xe3\x83\xb3", ); %_kata2hira = ( "\xe3\x82\xa1" => "\xe3\x81\x81", "\xe3\x82\xa2" => "\xe3\x81\x82", "\xe3\x82\xa3" => "\xe3\x81\x83", "\xe3\x82\xa4" => "\xe3\x81\x84", "\xe3\x82\xa5" => "\xe3\x81\x85", "\xe3\x82\xa6" => "\xe3\x81\x86", "\xe3\x82\xa7" => "\xe3\x81\x87", "\xe3\x82\xa8" => "\xe3\x81\x88", "\xe3\x82\xa9" => "\xe3\x81\x89", "\xe3\x82\xaa" => "\xe3\x81\x8a", "\xe3\x82\xab" => "\xe3\x81\x8b", "\xe3\x82\xac" => "\xe3\x81\x8c", "\xe3\x82\xad" => "\xe3\x81\x8d", "\xe3\x82\xae" => "\xe3\x81\x8e", "\xe3\x82\xaf" => "\xe3\x81\x8f", "\xe3\x82\xb0" => "\xe3\x81\x90", "\xe3\x82\xb1" => "\xe3\x81\x91", "\xe3\x82\xb2" => "\xe3\x81\x92", "\xe3\x82\xb3" => "\xe3\x81\x93", "\xe3\x82\xb4" => "\xe3\x81\x94", "\xe3\x82\xb5" => "\xe3\x81\x95", "\xe3\x82\xb6" => "\xe3\x81\x96", "\xe3\x82\xb7" => "\xe3\x81\x97", "\xe3\x82\xb8" => "\xe3\x81\x98", "\xe3\x82\xb9" => "\xe3\x81\x99", "\xe3\x82\xba" => "\xe3\x81\x9a", "\xe3\x82\xbb" => "\xe3\x81\x9b", "\xe3\x82\xbc" => "\xe3\x81\x9c", "\xe3\x82\xbd" => "\xe3\x81\x9d", "\xe3\x82\xbe" => "\xe3\x81\x9e", "\xe3\x82\xbf" => "\xe3\x81\x9f", "\xe3\x83\x80" => "\xe3\x81\xa0", "\xe3\x83\x81" => "\xe3\x81\xa1", "\xe3\x83\x82" => "\xe3\x81\xa2", "\xe3\x83\x83" => "\xe3\x81\xa3", "\xe3\x83\x84" => "\xe3\x81\xa4", "\xe3\x83\x85" => "\xe3\x81\xa5", "\xe3\x83\x86" => "\xe3\x81\xa6", "\xe3\x83\x87" => "\xe3\x81\xa7", "\xe3\x83\x88" => "\xe3\x81\xa8", "\xe3\x83\x89" => "\xe3\x81\xa9", "\xe3\x83\x8a" => "\xe3\x81\xaa", "\xe3\x83\x8b" => "\xe3\x81\xab", "\xe3\x83\x8c" => "\xe3\x81\xac", "\xe3\x83\x8d" => "\xe3\x81\xad", "\xe3\x83\x8e" => "\xe3\x81\xae", "\xe3\x83\x8f" => "\xe3\x81\xaf", "\xe3\x83\x90" => "\xe3\x81\xb0", "\xe3\x83\x91" => "\xe3\x81\xb1", "\xe3\x83\x92" => "\xe3\x81\xb2", "\xe3\x83\x93" => "\xe3\x81\xb3", "\xe3\x83\x94" => "\xe3\x81\xb4", "\xe3\x83\x95" => "\xe3\x81\xb5", "\xe3\x83\x96" => "\xe3\x81\xb6", "\xe3\x83\x97" => "\xe3\x81\xb7", "\xe3\x83\x98" => "\xe3\x81\xb8", "\xe3\x83\x99" => "\xe3\x81\xb9", "\xe3\x83\x9a" => "\xe3\x81\xba", "\xe3\x83\x9b" => "\xe3\x81\xbb", "\xe3\x83\x9c" => "\xe3\x81\xbc", "\xe3\x83\x9d" => "\xe3\x81\xbd", "\xe3\x83\x9e" => "\xe3\x81\xbe", "\xe3\x83\x9f" => "\xe3\x81\xbf", "\xe3\x83\xa0" => "\xe3\x82\x80", "\xe3\x83\xa1" => "\xe3\x82\x81", "\xe3\x83\xa2" => "\xe3\x82\x82", "\xe3\x83\xa3" => "\xe3\x82\x83", "\xe3\x83\xa4" => "\xe3\x82\x84", "\xe3\x83\xa5" => "\xe3\x82\x85", "\xe3\x83\xa6" => "\xe3\x82\x86", "\xe3\x83\xa7" => "\xe3\x82\x87", "\xe3\x83\xa8" => "\xe3\x82\x88", "\xe3\x83\xa9" => "\xe3\x82\x89", "\xe3\x83\xaa" => "\xe3\x82\x8a", "\xe3\x83\xab" => "\xe3\x82\x8b", "\xe3\x83\xac" => "\xe3\x82\x8c", "\xe3\x83\xad" => "\xe3\x82\x8d", "\xe3\x83\xae" => "\xe3\x82\x8e", "\xe3\x83\xaf" => "\xe3\x82\x8f", "\xe3\x83\xb0" => "\xe3\x82\x90", "\xe3\x83\xb1" => "\xe3\x82\x91", "\xe3\x83\xb2" => "\xe3\x82\x92", "\xe3\x83\xb3" => "\xe3\x82\x93", ); } # ----------------------------------------------------------------------------- # unijp(); # sub unijp { Unicode::Japanese->new(@_); } sub utf8_imode2 { my $this = shift; $this->_u2ui2($this->{str}); } # utf8 => utf8-jsky2 sub _u2uj1 { my $this = shift; if(!defined($eu2j1)) { $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat'); } my $str = $this->_validate_utf8($this->{str}); $str =~ s{([\xf0-\xf7][\x80-\xbf]{3})}{ my ($c1,$c2,$c3,$c4) = unpack("C4", $1); my $ch = (($c1 & 0x07)<<18) | (($c2 & 0x3F)<<12) | (($c3 & 0x3f)<< 6) | ($c4 & 0x3F); if( 0x0fe000 <= $ch && $ch <= 0x0fffff ) { my $c = substr($eu2j1, ($ch - 0x0fe000) * 5, 5); $c =~ tr,\0,,d; $c eq '' and $c = '?'; if( $c =~ /^\e\$([GEFOPQ])(.)\x0f/ ) { my ($j1,$j2) = ($1,$2); $j1 =~ tr/GEF/\xe0-\xe5/; $j2 =~ tr/!-z/\x01-\x5a/; $c = $this->_ucs2_utf8($j1.$j2); } $c; }else { '?'; } }ge; $str; } # utf8 -> jis-au1 sub _u2ja1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2a1s)) { $eu2a1s = $this->_getFile('jcode/emoji2/eu2as.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a1s, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub _j2s { my $this = shift; my $str = shift; $str =~ s/($RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA})([^\e]*)/ $this->_j2s2($1, $2) /geo; $str; } # ----------------------------------------------------------------------------- # $bytes_utf16 = $unijp->utf16(); # sub utf16 { my $this = shift; $this->_utf8_utf16($this->{str}); } sub utf8_jsky2 { my $this = shift; $this->_u2uj2($this->{str}); } # ----------------------------------------------------------------------------- # AU³¨Ê¸»ú¥¿¥°ÊÑ´¹ # # utf8Ãæ¤ÎAU³¨Ê¸»ú¤ò<IMG ICON="">¤ØÊÑ´¹ sub _u2ai1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($eu2a1)) { $eu2a1 = $this->_getFile('jcode/emoji2/eu2a.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $d; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? $1 : (length($1) == 3) ? $1 : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a1, ($ch - 0x0fe000) * 2, 2), $d = unpack('n', $c), $c =~ tr,\0,,d, ($d <= 0x0336) ? $RE{E_ICON_AU_START} . $d . $RE{E_ICON_AU_END} : ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub sjis_icon_au2 { my $this = shift; $this->_u2s($this->_u2ai2($this->{str})); } sub _u2si2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2i2)) { $eu2i2 = $this->_getFile('jcode/emoji2/eu2i2.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2i2, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub splitCsv { my $this = shift; my $text = $this->{str}; my @field; chomp($text); while ($text =~ m/"([^"\\]*(?:(?:\\.|\"\")[^"\\]*)*)",?|([^,]+),?|,/g) { my $field = defined($1) ? $1 : (defined($2) ? $2 : ''); $field =~ s/["\\]"/"/g; push(@field, $field); } push(@field, '') if($text =~ m/,$/); \@field; } sub sjis_jsky1 { my $this = shift; $this->_u2sj1($this->{str}); } sub _s2j3 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if (0x9f <= $c2) { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60); $c2 += 2; } else { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61); $c2 += 0x60 + ($c2 < 0x7f); } $S2J[unpack('n', $c)] = pack('CC', $c1 - 0x80, $c2 - 0x80); } # sjis-au1 => utf8 sub _sa2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ea2u1s)) { $ea2u1s = $this->_getFile('jcode/emoji2/ea2us.dat'); } my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/ $SA2U1{$1} or ($SA2U1{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xeb00 and $l <= 0xeeff) ? ( $uc = substr($ea2u1s, ($l - 0xeb00) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xfcff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } # ----------------------------------------------------------------------------- # utf8 ==> sjis/³¨Ê¸»ú # sub _u2s { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ( $U2S{$1} or ($U2S{$1} = ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), # UTF-3¥Ð¥¤¥È(U+0x80-U+07FF)¤«¤ésjis-1¥Ð¥¤¥È¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¤Ê¤¤¤Î¤Ç\0¤òºï½ü¤ÏɬÍפϤʤ¤ $ch<0x80 ? '?' : ($c eq "\0\0") ? '&#' . $ch . ';' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '&#' . $ch . ';' ) ), $ch<0x0800 ? '?' : ($c eq "\0\0") ? '&#' . $ch . ';' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( $ch <0x01_0000 ? '?' : ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? '?' : '&#' . $ch . ';' ) ) : (length($1) == 5) ? (($c1,$c2,$c3,$c4,$c5) = unpack("C5", $1), $ch = (($c1 & 0x03) << 24)|(($c2 & 0x3F) << 18)| (($c3 & 0x3f) << 12)|(($c4 & 0x3f) << 6)| ($c5 & 0x3F), $ch<0x20_0000 ? '?' : '&#' . $ch . ';' ) : ( ($c1,$c2,$c3,$c4,$c5,$c6) = unpack("C6", $1), $ch = (($c1 & 0x03) << 30)|(($c2 & 0x3F) << 24)| (($c3 & 0x3f) << 18)|(($c4 & 0x3f) << 12)| (($c5 & 0x3f) << 6)|($c6 & 0x3F), $ch<0x0400_0000 ? '?' : '&#' . $ch . ';' ) ) ) ) /eg; $str; } sub _sa2j3 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); $c1 = 0xeb if($c1 == 0xf6); $c1 = 0xec if($c1 == 0xf7); $c1 = 0xed if($c1 == 0xf3); $c1 = 0xee if($c1 == 0xf4); if (0x9f <= $c2) { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60); $c2 += 2; } else { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61); $c2 += 0x60 + ($c2 < 0x7f); } pack('CC', $c1 - 0x80, $c2 - 0x80); } sub _utf16_utf8 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $result = ''; my $sa; foreach my $uc (unpack("n*", $str)) { ($uc >= 0xd800 and $uc <= 0xdbff and $sa = $uc and next); ($uc >= 0xdc00 and $uc <= 0xdfff and ($uc = ((($sa - 0xd800) << 10)|($uc - 0xdc00))+0x10000)); $result .= $U2T[$uc] ? $U2T[$uc] : ($U2T[$uc] = ($uc < 0x80) ? chr($uc) : ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x10000) ? chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : chr(0xF0 | ($uc >> 18)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F))); } $result; } sub h2zNum { my $this = shift; if(!defined(%_h2zNum)) { $this->_loadConvTable; } $this->{str} =~ s/(0|1|2|3|4|5|6|7|8|9)/$_h2zNum{$1}/eg; $this; } sub h2zKanaK { my $this = shift; if(!defined(%_h2zKanaK)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbd\xa1|\xef\xbd\xa2|\xef\xbd\xa3|\xef\xbd\xa4|\xef\xbd\xa5|\xef\xbd\xa6|\xef\xbd\xa7|\xef\xbd\xa8|\xef\xbd\xa9|\xef\xbd\xaa|\xef\xbd\xab|\xef\xbd\xac|\xef\xbd\xad|\xef\xbd\xae|\xef\xbd\xaf|\xef\xbd\xb0|\xef\xbd\xb1|\xef\xbd\xb2|\xef\xbd\xb3|\xef\xbd\xb4|\xef\xbd\xb5|\xef\xbd\xb6|\xef\xbd\xb7|\xef\xbd\xb8|\xef\xbd\xb9|\xef\xbd\xba|\xef\xbd\xbb|\xef\xbd\xbc|\xef\xbd\xbd|\xef\xbd\xbe|\xef\xbd\xbf|\xef\xbe\x80|\xef\xbe\x81|\xef\xbe\x82|\xef\xbe\x83|\xef\xbe\x84|\xef\xbe\x85|\xef\xbe\x86|\xef\xbe\x87|\xef\xbe\x88|\xef\xbe\x89|\xef\xbe\x8a|\xef\xbe\x8b|\xef\xbe\x8c|\xef\xbe\x8d|\xef\xbe\x8e|\xef\xbe\x8f|\xef\xbe\x90|\xef\xbe\x91|\xef\xbe\x92|\xef\xbe\x93|\xef\xbe\x94|\xef\xbe\x95|\xef\xbe\x96|\xef\xbe\x97|\xef\xbe\x98|\xef\xbe\x99|\xef\xbe\x9a|\xef\xbe\x9b|\xef\xbe\x9c|\xef\xbe\x9d|\xef\xbe\x9e|\xef\xbe\x9f)/$_h2zKanaK{$1}/eg; $this; } sub strlen { my $this = shift; my $ch_re = '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}'; my $length = 0; foreach my $c(split(/($ch_re)/,$this->{str})) { next if(length($c) == 0); $length += ((length($c) >= 3) ? 2 : 1); } return $length; } sub strcutu { my $this = shift; my $result = &strcut; if( $]>=5.008 && $this->{icode} ne 'binary' ) { foreach(@$result) { Encode::_utf8_on($_); } } $result; } sub sjis_imode2 { my $this = shift; $this->_u2si2($this->{str}); } sub _validate_utf8 { my $pkg = shift; my $str = shift; # ŬÀڤǤʤ¤Ä¹¤µ¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë # ʸ»ú¤ò ? ¤ËÃÖ¤´¹¤¨. defined($str) and $str =~ s{ # 2 bytes char # [\xc0-\xc1] [\x80-\xbf] | # 3 bytes char # \xe0 [\x80-\x9f] [\x80-\xbf] | # 4 bytes char # \xf0 [\x80-\x8f] [\x80-\xbf] [\x80-\xbf] | # > U+10FFFF (4byte) # \xf4 [\x90-\xbf] [\x80-\xbf] [\x80-\xbf] |[\xf5-\xf7] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] | # > U+10FFFF (5byte) # [\xf8-\xfb] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] | # > U+10FFFF (6byte) # [\xfc-\xfd] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] }{?}xg; $str; } sub z2hKanaK { my $this = shift; if(!defined(%_z2hKanaK)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x80\x81|\xe3\x80\x82|\xe3\x83\xbb|\xe3\x82\x9b|\xe3\x82\x9c|\xe3\x83\xbc|\xe3\x80\x8c|\xe3\x80\x8d|\xe3\x82\xa1|\xe3\x82\xa2|\xe3\x82\xa3|\xe3\x82\xa4|\xe3\x82\xa5|\xe3\x82\xa6|\xe3\x82\xa7|\xe3\x82\xa8|\xe3\x82\xa9|\xe3\x82\xaa|\xe3\x82\xab|\xe3\x82\xad|\xe3\x82\xaf|\xe3\x82\xb1|\xe3\x82\xb3|\xe3\x82\xb5|\xe3\x82\xb7|\xe3\x82\xb9|\xe3\x82\xbb|\xe3\x82\xbd|\xe3\x82\xbf|\xe3\x83\x81|\xe3\x83\x83|\xe3\x83\x84|\xe3\x83\x86|\xe3\x83\x88|\xe3\x83\x8a|\xe3\x83\x8b|\xe3\x83\x8c|\xe3\x83\x8d|\xe3\x83\x8e|\xe3\x83\x8f|\xe3\x83\x92|\xe3\x83\x95|\xe3\x83\x98|\xe3\x83\x9b|\xe3\x83\x9e|\xe3\x83\x9f|\xe3\x83\xa0|\xe3\x83\xa1|\xe3\x83\xa2|\xe3\x83\xa3|\xe3\x83\xa4|\xe3\x83\xa5|\xe3\x83\xa6|\xe3\x83\xa7|\xe3\x83\xa8|\xe3\x83\xa9|\xe3\x83\xaa|\xe3\x83\xab|\xe3\x83\xac|\xe3\x83\xad|\xe3\x83\xaf|\xe3\x83\xb2|\xe3\x83\xb3)/$_z2hKanaK{$1}/eg; $this; } sub h2zAlpha { my $this = shift; if(!defined(%_h2zAlpha)) { $this->_loadConvTable; } $this->{str} =~ s/(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)/$_h2zAlpha{$1}/eg; $this; } # ----------------------------------------------------------------------------- # $unijp->set($str,[$icode,[$encode]]); # sub set { my $this = shift; my $str = shift; my $icode = shift; my $encode = shift; if(ref($str)) { die "String#set: param[1] is a Ref.\n"; } if(ref($icode)) { die "String#set: param[2] is a Ref.\n"; } if(ref($encode)) { die "String#set, Param[3] is a Ref.\n"; } if( $]>=5.008 ) { Encode::_utf8_off($str); } if(defined($encode)) { if($encode eq 'base64') { $str = $this->_decodeBase64($str); } else { die "String#set: param[3]: invalid encoding [$encode]\n"; } } if(!defined($icode)) { # defaults to 'utf8' $this->{str} = $this->_validate_utf8($str); $this->{icode} = 'utf8'; } else { $icode = lc($icode); if($icode eq 'auto') { $icode = $this->getcode($str); if($icode eq 'unknown') { $icode = 'binary'; } } if($icode eq 'utf8') { $this->{str} = $this->_validate_utf8($str); } elsif($icode eq 'ucs2') { $this->{str} = $this->_ucs2_utf8($str); } elsif($icode eq 'ucs4') { $this->{str} = $this->_ucs4_utf8($str); } elsif($icode eq 'utf16-be') { $this->{str} = $this->_utf16_utf8($this->_utf16be_utf16($str)); } elsif($icode eq 'utf16-le') { $this->{str} = $this->_utf16_utf8($this->_utf16le_utf16($str)); } elsif($icode eq 'utf16') { $this->{str} = $this->_utf16_utf8($this->_utf16_utf16($str)); } elsif($icode eq 'utf32-be') { $this->{str} = $this->_ucs4_utf8($this->_utf32be_ucs4($str)); } elsif($icode eq 'utf32-le') { $this->{str} = $this->_ucs4_utf8($this->_utf32le_ucs4($str)); } elsif($icode eq 'utf32') { $this->{str} = $this->_ucs4_utf8($this->_utf32_ucs4($str)); } elsif($icode eq 'jis') { $this->{str} = $this->_s2u($this->_j2s($str)); } elsif($icode eq 'euc' || $icode eq 'euc-jp') { $this->{str} = $this->_s2u($this->_e2s($str)); } elsif($icode eq 'sjis' || $icode eq 'cp932') { $this->{str} = $this->_s2u($str); } elsif($icode eq 'sjis-imode') { $this->{str} = $this->_si2u2($str); } elsif($icode eq 'sjis-imode1') { $this->{str} = $this->_si2u1($str); } elsif($icode eq 'sjis-imode2') { $this->{str} = $this->_si2u2($str); } elsif($icode eq 'utf8-imode') { $this->{str} = $this->_ui2u2($str); } elsif($icode eq 'utf8-imode1') { $this->{str} = $this->_ui2u1($str); } elsif($icode eq 'utf8-imode2') { $this->{str} = $this->_ui2u2($str); } elsif($icode eq 'sjis-doti') { $this->{str} = $this->_sd2u($str); } elsif($icode eq 'sjis-doti1') { $this->{str} = $this->_sd2u($str); } elsif($icode eq 'sjis-jsky') { $this->{str} = $this->_sj2u2($str); } elsif($icode eq 'sjis-jsky1') { $this->{str} = $this->_sj2u1($str); } elsif($icode eq 'sjis-jsky2') { $this->{str} = $this->_sj2u2($str); } elsif($icode eq 'jis-jsky') { $this->{str} = $this->_sj2u2($this->_j2s($str)); } elsif($icode eq 'jis-jsky1') { $this->{str} = $this->_sj2u1($this->_j2s($str)); } elsif($icode eq 'jis-jsky2') { $this->{str} = $this->_sj2u2($this->_j2s($str)); } elsif($icode eq 'utf8-jsky') { $this->{str} = $this->_uj2u2($str); } elsif($icode eq 'utf8-jsky1') { $this->{str} = $this->_uj2u1($str); } elsif($icode eq 'utf8-jsky2') { $this->{str} = $this->_uj2u2($str); } elsif($icode eq 'jis-au') { $this->{str} = $this->_sa2u2($this->_j2s($str)); } elsif($icode eq 'jis-au1') { $this->{str} = $this->_sa2u1($this->_j2s($str)); } elsif($icode eq 'jis-au2') { $this->{str} = $this->_sa2u2($this->_j2s($str)); } elsif($icode eq 'sjis-au') { $this->{str} = $this->_sa2u2($this->_j2s($this->_sa2j($str))); } elsif($icode eq 'sjis-au1') { $this->{str} = $this->_sa2u1($this->_j2s($this->_sa2j($str))); } elsif($icode eq 'sjis-au2') { $this->{str} = $this->_sa2u2($this->_j2s($this->_sa2j($str))); } elsif($icode eq 'sjis-icon-au') { $this->{str} = $this->_ai2u2($this->_s2u($str)); } elsif($icode eq 'sjis-icon-au1') { $this->{str} = $this->_ai2u1($this->_s2u($str)); } elsif($icode eq 'sjis-icon-au2') { $this->{str} = $this->_ai2u2($this->_s2u($str)); } elsif($icode eq 'euc-icon-au') { $this->{str} = $this->_ai2u2($this->_s2u($this->_e2s($str))); } elsif($icode eq 'euc-icon-au1') { $this->{str} = $this->_ai2u1($this->_s2u($this->_e2s($str))); } elsif($icode eq 'euc-icon-au2') { $this->{str} = $this->_ai2u2($this->_s2u($this->_e2s($str))); } elsif($icode eq 'jis-icon-au') { $this->{str} = $this->_ai2u2($this->_s2u($this->_j2s($str))); } elsif($icode eq 'jis-icon-au1') { $this->{str} = $this->_ai2u1($this->_s2u($this->_j2s($str))); } elsif($icode eq 'jis-icon-au2') { $this->{str} = $this->_ai2u2($this->_s2u($this->_j2s($str))); } elsif($icode eq 'utf8-icon-au') { $this->{str} = $this->_ai2u2($str); } elsif($icode eq 'utf8-icon-au1') { $this->{str} = $this->_ai2u1($str); } elsif($icode eq 'utf8-icon-au2') { $this->{str} = $this->_ai2u2($str); } elsif($icode eq 'ascii') { $this->{str} = $str; } elsif($icode eq 'binary') { $this->{str} = $str; } else { use Carp; croak "invalid icode [$icode]"; } $this->{icode} = $icode; } $this; } # ----------------------------------------------------------------------------- # Unicode Æâ Áê¸ßÊÑ´¹ # sub _ucs2_utf8 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $result = ''; for my $uc (unpack("n*", $str)) { $result .= $U2T[$uc] ? $U2T[$uc] : ($U2T[$uc] = ($uc < 0x80) ? chr($uc) : ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) : chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F))); } $result; } sub _utf16_utf16 { my $this = shift; my $str = shift; if($str =~ s/^\xfe\xff//) { $str = $this->_utf16be_utf16($str); } elsif($str =~ s/^\xff\xfe//) { $str = $this->_utf16le_utf16($str); } else { $str = $this->_utf16be_utf16($str); } $str; } # ----------------------------------------------------------------------------- # @codelist = Unicode::Japanese->getcodelist($str); # sub getcodelist { my $this = shift; my $str = shift; my @codelist; if( $]>=5.008 ) { Encode::_utf8_off($str); } my $l = length($str); if((($l % 4) == 0) and ($str =~ m/^(?:$RE{BOM4_BE}|$RE{BOM4_LE})/o)) { push(@codelist, 'utf32'); } if((($l % 2) == 0) and ($str =~ m/^(?:$RE{BOM2_BE}|$RE{BOM2_LE})/o)) { push(@codelist, 'utf16'); } my $str2; if(($l % 4) == 0) { $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_BE})//o); if($str2 eq '') { push(@codelist, 'utf32-be'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_LE})//o); if($str2 eq '') { push(@codelist, 'utf32-le'); } } if($str !~ m/[\e\x80-\xff]/) { push(@codelist, 'ascii'); } if($str =~ m/$RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA}/o) { if($str =~ m/(?:$RE{JIS_0208})(?:[^\e]{2})*$RE{E_JIS_AU}/o) { push(@codelist, 'jis-au'); } elsif($str =~ m/(?:$RE{E_JSKY})/o) { push(@codelist, 'jis-jsky'); } else { push(@codelist, 'jis'); } } if($str =~ m/(?:$RE{E_JSKY})/o) { push(@codelist, 'sjis-jsky'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C})//o); if($str2 eq '') { push(@codelist, 'euc'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA})//o); if($str2 eq '') { push(@codelist, 'sjis'); } if($str =~ m/^(?:$RE{E_SJIS_AU})/o) { push(@codelist, 'sjis-au'); } my $str3; $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_IMODE})//o); if($str3 eq '') { push(@codelist, 'sjis-imode'); } $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_DOTI})//o); if($str3 eq '') { push(@codelist, 'sjis-doti'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF8})//o); if($str2 eq '') { push(@codelist, 'utf8'); } @codelist or push(@codelist, 'unknown'); @codelist; } sub _sj2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ej2u1)) { $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat'); } if(!defined($ej2u2)) { $ej2u2 = $this->_getFile('jcode/emoji2/ej2u2.dat'); } my $l; my $j1; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_JSKY}|[\x80-\xff])/ (length($1) <= 2) ? ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) : ( $l = $1, ( $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v1}),,o ? ( $j1 = $1, $uc = '', $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u1, (unpack('n', $j1 . $1) - 0x4500) * 4, 4), ''!ego, $uc =~ tr,\0,,d, $uc ) : ( $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v2}),,o, $j1 = $1, $uc = '', $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u2, (unpack('n', $j1 . $1) - 0x4f00) * 4, 4), ''!ego, $uc =~ tr,\0,,d, $uc ) ) ) /eg; $str; } sub jis_icon_au { my $this = shift; $this->_s2j($this->_u2s($this->_u2ai2($this->{str}))); } sub _utf32_ucs4 { my $this = shift; my $str = shift; if($str =~ s/^\x00\x00\xfe\xff//) { $str = $this->_utf32be_ucs4($str); } elsif($str =~ s/^\xff\xfe\x00\x00//) { $str = $this->_utf32le_ucs4($str); } else { $str = $this->_utf32be_ucs4($str); } $str; } sub _ai2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($ea2u2)) { $ea2u2 = $this->_getFile('jcode/emoji2/ea2u2.dat'); } my $c; $str =~ s/$RE{E_ICON_AU_START}(\d+)$RE{E_ICON_AU_END}/ ($1 > 0 and $1 <= 0x0336) ? ($c = substr($ea2u2, ($1-1) * 4, 4), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c) : '?' /ige; $str; } sub utf8_icon_au2 { my $this = shift; $this->_u2ai2($this->{str}); } # utf8-jsky1 => utf8. sub _uj2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ej2u1)) { $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat'); } $str = $this->_validate_utf8($str); my @umap = (0x200, 0x000, 0x100); $str =~ s{($RE{E_JSKYv1_UTF8}+)}{ join('', map{ my $l = $_ - 0xe000 + 0x20; substr($ej2u1, ($umap[$l/256]+($l&255)) * 4, 4); } unpack("n*", $this->_utf8_ucs2($1)) ) }geo; $str; } sub _sa2j { my $this = shift; my $str = shift; $str =~ s/((?:$RE{SJIS_DBCS}|$RE{E_SJIS_AU}|$RE{SJIS_KANA})+)/ $this->_sa2j2($1) . $ESC{ASC} /geo; $str; } # ----------------------------------------------------------------------------- # h2z/z2h Kana # sub h2zKana { my $this = shift; $this->h2zKanaD; $this->h2zKanaK; $this; } sub z2hKana { my $this = shift; $this->z2hKanaD; $this->z2hKanaK; $this; } # ----------------------------------------------------------------------------- # $bytes_imode = $unijp->utf8_imode(); # sub utf8_imode { my $this = shift; $this->_u2ui2($this->{str}); } sub _si2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ei2u2)) { $ei2u2 = $this->_getFile('jcode/emoji2/ei2u2.dat'); } $str =~ s/(\&\#(\d+);)/ ($2 >= 0xf800 and $2 <= 0xf9ff) ? pack('n', $2) : $1 /eg; my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_IMODE}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xf800 and $l <= 0xf9ff) ? ( $uc = substr($ei2u2, ($l - 0xf800) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub _u2sj1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2j1)) { $eu2j1 = $this->_getFile('jcode/emoji2/eu2j.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2j1, ($ch - 0x0fe000) * 5, 5), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; 1 while($str =~ s/($RE{E_JSKY_START})($RE{E_JSKY1})($RE{E_JSKY2}+)$RE{E_JSKY_END}$RE{E_JSKY_START}\2($RE{E_JSKY2})($RE{E_JSKY_END})/$1$2$3$4$5/o); $str; } # utf8 => utf8-jsky1 sub _u2sj2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2j2)) { $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2j2, ($ch - 0x0fe000) * 5, 5), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; 1 while($str =~ s/($RE{E_JSKY_START})($RE{E_JSKY1})($RE{E_JSKY2}+)$RE{E_JSKY_END}$RE{E_JSKY_START}\2($RE{E_JSKY2})($RE{E_JSKY_END})/$1$2$3$4$5/o); $str; } sub utf8_icon_au { my $this = shift; $this->_u2ai2($this->{str}); } sub jis_jsky2 { my $this = shift; $this->_s2j($this->_u2sj2($this->{str})); } # ----------------------------------------------------------------------------- # $bytes_doti = $unijp->sjis_doti(); # sub sjis_doti { my $this = shift; $this->_u2sd($this->{str}); } sub _e2s { my $this = shift; my $str = shift; $str =~ s/($RE{EUC_KANA}|$RE{EUC_0212}|$RE{EUC_C})/ $E2S[unpack('n', $1) or unpack('N', "\0" . $1)] or $this->_e2s2($1) /geo; $str; } # ----------------------------------------------------------------------------- # $bytes_eucjp = $unijp->euc(); # sub euc { my $this = shift; $this->_s2e($this->sjis); } sub _j2s3 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if ($c1 % 2) { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71); $c2 -= 0x60 + ($c2 < 0xe0); } else { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70); $c2 -= 2; } $J2S[unpack('n', $c)] = pack('CC', $c1, $c2); } # ----------------------------------------------------------------------------- # $bytes_ucs4 = $unijp->ucs4(); # sub ucs4 { my $this = shift; $this->_utf8_ucs4($this->{str}); } sub _j2sa2 { my $this = shift; my $esc = shift; my $str = shift; if($esc eq $ESC{JIS_0212}) { $str =~ s/../$CHARCODE{UNDEF_SJIS}/g; } elsif($esc !~ m/^$RE{JIS_ASC}/) { $str =~ s{([\x21-\x7e]+)}{ my $str = $1; $str =~ tr/\x21-\x7e/\xa1-\xfe/; if($esc =~ m/^$RE{JIS_0208}/) { $str =~ s/($RE{EUC_C})/ $this->_j2sa3($1) /geo; } $str; }e; } $str; } sub _ui2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($ei2u2)) { $ei2u1 = $this->_getFile('jcode/emoji2/ei2u.dat'); } $str = $this->_validate_utf8($str); # imode : F800-F9FF => U+0FF800 - U+0FF9FF # E63E - E70B = ee 98 be - ee 9c 8b # E70C - E757 = ee 9c 8c - ee 9d 97 $str =~ s{\xee([\x98-\x9e][\x80-\xbf])}{ my ($in1, $in2) = unpack("CC", $1); my $in = (($in1 - 0x98) << 6) + ($in2 - 0x80); my $diff = $in <= 0x9b ? ( 0xfc - 0x9b) : $in <= 0xda ? (0x17e - 0xda) : (0x1b0 - 0x10b); my $sjisoffset = $diff + $in; my $sjisbin = pack("n", $sjisoffset); $in<=0x10b ? $S2U{$sjisbin} ||= substr($ei2u1, $sjisoffset * 4, 4) || '?' : '?'; }xeg; $str; } sub _sd2u { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ed2u)) { $ed2u = $this->_getFile('jcode/emoji2/ed2u.dat'); } $str =~ s/(\&\#(\d+);)/ ($2 >= 0xf000 and $2 <= 0xf4ff) ? pack('n', $2) : $1 /eg; my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_DOTI}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xf000 and $l <= 0xf4ff) ? ( $uc = substr($ed2u, ($l - 0xf000) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } # utf8 -> jis-au2 sub _u2ja2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2a2s)) { $eu2a2s = $this->_getFile('jcode/emoji2/eu2a2s.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a2s, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub _s2e2 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if (0xa1 <= $c1 && $c1 <= 0xdf) { $c2 = $c1; $c1 = 0x8e; } elsif (0x9f <= $c2) { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60); $c2 += 2; } else { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61); $c2 += 0x60 + ($c2 < 0x7f); } $S2E[unpack('n', $c) or unpack('C', $1)] = pack('CC', $c1, $c2); } sub z2hKanaD { my $this = shift; if(!defined(%_z2hKanaD)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x82\xac|\xe3\x82\xae|\xe3\x82\xb0|\xe3\x82\xb2|\xe3\x82\xb4|\xe3\x82\xb6|\xe3\x82\xb8|\xe3\x82\xba|\xe3\x82\xbc|\xe3\x82\xbe|\xe3\x83\x80|\xe3\x83\x82|\xe3\x83\x85|\xe3\x83\x87|\xe3\x83\x89|\xe3\x83\x90|\xe3\x83\x91|\xe3\x83\x93|\xe3\x83\x94|\xe3\x83\x96|\xe3\x83\x97|\xe3\x83\x99|\xe3\x83\x9a|\xe3\x83\x9c|\xe3\x83\x9d|\xe3\x83\xb4)/$_z2hKanaD{$1}/eg; $this; } sub _u2sd { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2d)) { $eu2d = $this->_getFile('jcode/emoji2/eu2d.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2d, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub sjis_au { my $this = shift; $this->_j2sa($this->_s2j($this->_u2ja2($this->{str}))); } sub _utf8_ucs2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $c1; my $c2; my $c3; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}|.)/ defined($2)?"\0?": $T2U{$1} or ($T2U{$1} = ((length($1) == 1) ? pack("n", unpack("C", $1)) : (length($1) == 2) ? (($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $ch<0x80 ? "\0?" : pack("n", $ch) ) : (length($1) == 3) ? (($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), $ch<0x0800 ? "\0?" : pack("n", $ch) ) : "\0?")) /eg; $str; } sub euc_icon_au1 { my $this = shift; $this->_s2e($this->_u2s($this->_u2ai1($this->{str}))); } # ----------------------------------------------------------------------------- # $bytes_au = $unijp->jis_au1(); # sub jis_au { my $this = shift; $this->_s2j($this->_u2ja2($this->{str})); } sub _utf32le_ucs4 { my $this = shift; my $str = shift; my $result = ''; foreach my $ch (unpack('V*', $str)) { $result .= pack('N', $ch); } $result; } # ----------------------------------------------------------------------------- # $bytes_imode = $unijp->sjis_imode(); # sub sjis_imode { my $this = shift; $this->_u2si2($this->{str}); } sub _e2s2 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if ($c1 == 0x8e) { # SS2 $E2S[unpack('n', $c)] = chr($c2); } elsif ($c1 == 0x8f) { # SS3 $E2S[unpack('N', "\0" . $c)] = $CHARCODE{UNDEF_SJIS}; } else { #SS1 or X0208 if ($c1 % 2) { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71); $c2 -= 0x60 + ($c2 < 0xe0); } else { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70); $c2 -= 2; } $E2S[unpack('n', $c)] = pack('CC', $c1, $c2); } } sub _s2j2 { my $this = shift; my $str = shift; $str =~ s/((?:$RE{SJIS_DBCS})+|(?:$RE{SJIS_KANA})+)/ my $s = $1; if($s =~ m,^$RE{SJIS_KANA},o) { $s =~ tr,\xa1-\xdf,\x21-\x5f,; $ESC{KANA} . $s } else { $s =~ s!($RE{SJIS_DBCS})! $S2J[unpack('n', $1)] or $this->_s2j3($1) !geo; $ESC{JIS_0208} . $s; } /geo; $str; } # ----------------------------------------------------------------------------- # encode/decode sub _encodeBase64 { my $this = shift; my $str = shift; my $eol = shift; my $res = ""; $eol = "\n" unless defined $eol; pos($str) = 0; # ensure we start matching from the beginning while ($str =~ /(.{1,45})/gs) { $res .= substr(pack('u', $1), 1); chop($res); } $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs # fix padding at the end my $padding = (3 - length($str) % 3) % 3; $res =~ s/.{$padding}$/'=' x $padding/e if $padding; # break encoded string into lines so that each lines have no more than 76 # characters if (length $eol) { $res =~ s/(.{1,76})/$1$eol/g; } $res; } sub validate_utf8 { # my $safer_utf8 = Unicode::Japanese->validate_utf8($utf8_str); # $_[0]->_validate_utf8(@_[1..$#_]); } sub sjis_icon_au { my $this = shift; $this->_u2s($this->_u2ai2($this->{str})); } # ----------------------------------------------------------------------------- # split/join Csv # sub split_csv { &splitCsv; } # sjis-au2 => utf8 sub _sa2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ea2u2s)) { $ea2u2s = $this->_getFile('jcode/emoji2/ea2u2s.dat'); } my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/ $SA2U2{$1} or ($SA2U2{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xeb00 and $l <= 0xeeff) ? ( $uc = substr($ea2u2s, ($l - 0xeb00) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xfcff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } # ----------------------------------------------------------------------------- # $bytes_jsky = $unijp->jis_jsky(); # sub jis_jsky { my $this = shift; $this->_s2j($this->_u2sj2($this->{str})); } # ----------------------------------------------------------------------------- # strcut, strlen # sub strcut { my $this = shift; my $cutlen = shift; if(ref($cutlen)) { die "String#strcut: param[1] is a Ref.\n"; } if($cutlen !~ m/^\d+$/) { die "String#strcut: param[1] must be an integer.\n"; } my $ch_re = '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}'; my $result; my $line = ''; my $linelength = 0; foreach my $c (split(/($ch_re)/, $this->{str})) { next if(length($c) == 0); if($linelength + (length($c) >= 3 ? 2 : 1) > $cutlen) { $line ne '' and push(@$result, $line); $line = ''; $linelength = 0; } $linelength += (length($c) >= 3 ? 2 : 1); $line .= $c; } push(@$result, $line); $result; } sub cp932 { shift->sjis(@_); } sub _utf32be_ucs4 { my $this = shift; my $str = shift; $str; } !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\NÊ}L÷~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖF@ABCDEGHIJKLMNOPQRSTUVWXYZ[\]^_`pqrstuwxyz{|}~ v]\aefghõödcñ¦~ðTUVWXYZ[\]îïîðîñîòîóîôîõîöî÷îø©ª¨«ËÌÍÝÎÞ¸¹|ãåÚaÈÉ¿¾çèæäàß áâ¼½º»ÛÜ@ABCDEFGHIJKLMNOPQRSª «¡¬¢¤¯£®¥ºµ°§¼·²¦¶»±¨¸½³©¹¾´¡ £¢¥¤üôóò@ABVXYZqrstuvwxyz§¬kl` ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñJKTU@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ E[RS ei`cakjdlfn_mbgh~rsopqutêµäOãºs^ N¡¢Àu¸å¼ÀíL¢£ø¤ÛO奦§TvVáÁRåh¨æ©³ãîç¤û£Tª«¹\ñ°]ÝÜäji±±²³S´ðåີ¶·lYm¼º»w¡î¹¸§ed¼½tåW¾ÀíMãßÈ¿¼ÂÁCíNíOéíPÂÉÞê°xïå`ĺàLíQf¾ÏAÈÊáZ²C̽íRÇ]ÃÅìÆCÎÑÏÀ¹ÉÍñg¤ÒÊíTáËÐíSíVÓÌíUË ¿DòNµÖW£âíEríW×ÜÚÕØÛÙÛÖMÝÞCëoUæî´êíZäíqÂ{àÅì|áôóßí[ØçíYílãàèâÏé`äíXí^îí\ïóÌÎòñõôâöí]äãô÷UøúTí_PõùÃbüBûÂXCÍ@A¡lDía»EHFmGIí`KJÆVMNLòQPOÔRSD×UTWVXYò³Z[¢æõíb[ÆeZ\}]ícüS_`ªöZa¤º´ïTbcà~fûeÄgãìh`ijkçÊíd¥nl»myopq~ustrávèâwíe¦xyy½Ãzê£Ã{}ú}âíf~M¥ÊonªØ §Y ígñ»Ê§ühä¥íOUÜènc«Ííh÷Áòíiw ¡î[ãJ£ø¢Níj¤uºE×¥èÓ®¦¨±ík§å«¨¨Î©©M¬®¯ÙùÜílæõï°ím±³µ´¶»kú·x §¸ínÙ¹º»¼Cæã½½\翾¡ßÁ¼ÂÚ²ì¦ìPmÄèTÅÆKóëío¦pɵȨÊïípËÐú´ÌÎÍ~X}ÏÐíqµÑQÒ³yFo½ûfæó¾írÕbpûÃåÙ@ü©¢ÚØÂä¶jEiÛÜhegÝD¯¼@füNåáiÛäÜßàâãz«áÝáÞCðæàæÛêüôíë¡èñìïĽðòôíuîaéçóîítöBøüív@ù]çP÷DôC£iAúõûÆEõNFG£LKNMJíwS´OHI SB¥YXOÁPíU¤Râ[VWTZQ`ea\fPíxhA^b[«ì c_igriªdòcmk¥pjnlkorwutQÃqs¦RvÜú}{|~\Xxyí¬Ó¶ dXdúlñöc¢Í}ÅÞ ¡¢¤£¦y§³Ý\n¨©«¬âÏVª¿Bíy±£ízR®Ø²°³^´µC_·¸í{¹¶¯º»í}í|é½¾¼ÀWæuÁû·|îéx°Í¿ÂÂÃÄÆç¬êñêgäÌ»ÛòÈYËh·ËÇÇUÉÅoÍm«ÎæÄíÐnÑÖíÕÏÒÔ¤Ç×dóëÙØÚÜÛÞÓàßÝmpsáºëÙãâäåæçÏèíÄé[OÇg½êé²ìåV¾víî¸ïÎðñïÞòõtô_ízó ÷öí íùøíú§üDû±z@DA@ÜÏDJWdªBEíÃWiF íȨGon·Æ©ÏKLIWHÃP¦÷pСQOºRPNPMØâVW©SKkU¥XwYT¹}ZQ[_\Å^¹]kda`bcefðhgiìlÚdjmnqopqrEsí¶tuyFÐGÇvww·x¡yz{}~îFçÀv®³G@¯è¶XóÀqéºG{ÉQªÆehíâñЧ x¦õí°Q@ÇJËRí¾¡Îõê˫Ѹq±¬ë®íÞÄAÚKòsöAÇüÍ®r ûW®jÆw¢£ÔR¥¦§ò¨©ªíZ⫦Ðx¯Ýí¬®±°²³»¬ã´¹·õôí¶sµºèÀÁ»R¼ÅÄÿ¾ÂíöíÉÆÈÇí½ÊíµËÌÏÎ͸ÕÑÐÒÓÖííä×ÔØÞÙíÛÚÜÝìBH¶IÞ·ÈߤbàJªFÐsz¿áóäãâåétÈÑA æçíXêéèñyëíìî¦ï¼ð±½NòóK²ô¶cHôö¡L¯Ý°ê÷XM{÷xÀÉëÁNføùpúõLüûf@CDB_±FEAGHILJKMìNôUOùÙPMQ¾T¯®óU|¢øV¤Ooííí·ÊWX^ãí£YJeZíK[®\]_`abSRc`FíÊV¤jd²eefðÞiªhgaÒmkj¥ãlk]¾ponqärzs÷¿¥íOtJSKõEuuYZzíwõ«yOxv|{| åvÓ}}« ö¯ö°Pí ~øp¦¶±§bí¡»í¢¥î£÷¡¢ åI³x¤Y«ß{ª®ã§¬îÕf©í¤¯Éí£Ò¨¦ySÄ»í¦z¶³´ä·ºµD¸²úù¼½Óí§±ð¤´í¥¹ÁÀÅí©Æí¨ÄÇ¿ÃÈɾÂÔQ°TÖçÌÍÎÕÔµÒdS϶ÑÔÓÊÐ×cË|JÚÞ÷ßÜÙíªØÝ®²eàÛá¯é¶çè§æäãêâìùîí¦ñïåðôóõòö÷øèúù^¬äúí«û½ÊüæÁ@AíBCYDEFÕËß[Gîç»àèËHÅ¥ïKILJM¯µ}áNQ³ZOV´Pc}RSWTRÜe²ðí¬â«øïZcS]d_fba[ûYñUXSÙµ`qg@hminAE\kwlÂg§²j¥ÁUðÒp}¨Jqsoß»{ùÌ~x·æPv|ö{¶uzrt@||©ÌTyÚT[wdfÍ}~µ`ñKg·¬ öíh¹rÀgïÛEí®Ì TQí¯³PdBïoh£i¥¡¢í° ^¤©ªF¬C§[¦±°¯²´ï³·µ¶¹¸º®x»¼¾½¿üUúÌÁÄí±q~ÃÂsÅ³ÇÆ¸UÖhÈ®G~ÉÊ˶|ÄkÖãÁl¿ÍÎδÒËÏafzVÐû{ÓÑÔ·ÒùÕ°ÖøØ×ÙÚùúU|{®Û ßí²VÞ©¸íµÝ¹¾¨ÕÌí³äí·¯fí¸tðºí¶¥íGãáâí´EèWæçWåNíºí»êéîïëí¹AìíÓiðí½°»qÅñõÉòôógÃöí¾÷í¿¨ïbéíÀ\AùüûíÁø@ÜúBCjDFGHÈgXIJíÂíJÖ]\ÖÅðLüíÃKñ½LN]©MúNOØ¢{DQépSVU÷RTWÇÞºÛñZmX©YðÛ[\íÅaYt^Üànf`¼Âfø]cbÍÑÊ}ged_ÍkiËgmsíÆíÈÆ¿uAt^¹õ_ÑMpoqnvljrhöÄò¸`íÉÌÈhð²IxZz}ñjªiÍ{ jíÊyÄ|~ËKíǺj÷VO± À~²[½ëæòB«ü°íHÇûíË_¡¥I©¦ Xª±¨»o¤Ö¸AÅ£¯®§«¬½Ì¢¹»Ök¶È¼^³À¿í¾èí͵Ƹ|ºÉ²´±Oy·ÁTå|ÒPÕíÏYÔÓÐÄáÃÖÎÉÆÇÏê Ì\ÆÊÅÈlÍ×íÐߨåãÞÝÎ ÛÙàæóìçêäWÚâ¾Íöé ¡~ÑíÑ¿îõ÷MëíÓðô´kò@ÉñóíÒííÔïíÕhúøç÷@wùûüKGFEBèDCIELùHJíÖí×¥MQNOÜRSTUÓ¢~WVY\Ô¼\[]ÌV^½`_abc~³àcÎðdefgihw}êcjlBkmnopqsrt£iuEkvaÊBwxêÅyäíØùÑz|{~}¯C XiÃíÙó`Ĭ¾íÚð]ríÜ¿DíÛ¾×B«¹vòͦû¡Àµòå@¢íÝ AgD£¡×jíÞm®ôª´¤Ãk^§F¬«¦©¨h¬òó´²l¯±Y_Q\íàCZ³¸íßÁOµ°¶íáÜÀíâUt¼¿ÁÆÀ½ÒÃíãiÅÊÈÂWɾÄËúÁÌ[íå~£¬íä¹ÇYíæ´Ï»akºÐ¸ßÙnÔÝQíé·ÖªÍÏ`àíçÛíêÓÚ©ØÜÎÃXíèÒNÕÎÑ×p¼á¬í¹ãaðìîâèênåMçíëïéÅä üæëìêØôúøHàBõöÞY½RòàA¿øÐùûQà@÷ñÁàNàIöàRàKªàH×àkàEàDàMàGàFàLàCíìàOàPÀàUàTàVàYbàSííàW÷àQZàXà]à[à^àaàZG·à\à`óà_àJíîèàdàhàfíïíðàbàcàgàemàmàjàiàlÒànëíñ£àoàqàpóàråàsÎDÜÐíòFàuàtíóàxYà{àvàzày_×íFóà}Gàà~à|àwBàíõàíôà°à³ÅRÄí÷íøùà÷ààíöàà àÆÏàÏøààFàoàê¤nààMààíúRààÓàààzàWààC×ààààíûà à¡à¢à£à¤Üà¦à¥à§à¨Ýêà©àªu¢à«à¬àÐÅà®v«à¯åÄ´²Sq¨µà°Á¡à±Òà³à²à´àµà¶]à·à¸¢Æíüàºóà¹î@¶à»à½à¼à¾Ïà¿ç_àÁàÂàÀëÆ·àÄKàÃTàÇàÉàÆÒàÈàÊÂîAàÎàÍL£àÌàËPQàÏàÐàÑàÓbàÕàÔàÖlàØîCà×àÚàÙº¦Ê¤èßæàÜàÞîDàßÏàÛîEX¿àÝîHîFàâìîGàà]ÇàáàüîJàç» àäîI®ôàæîKîMîLîNàèÔÕúiàéàëàîàêàíèlàïàìÚîOàòê¢àðàóàåàñºàôàõîPàöà÷îQàãàøÂ£àùàúàûZá@ZáA¢áBáCáDáFáGáEráIáHîRáKáJáLáMáOáNáQáPÃr[áR¶YáSpááTícRb\j²¬æáUáVá[áYáXÀEáWبȯá\áZ{¤©Lá^ªlá_á]Ôá`áaîSÙôáfácëábEáiádáeáhágDa`^ájákálánámuávæápárát]áuás¾áoáqaÇáxáwáy¤ázÉá|á{ááá sááá}á~áááááááááááááÃáááàüÈáááááááááááá á¡oá¢Sá£îTá¤IFcá¥á¦á§Há©á¨áªá«îWîUîVîXçá¬áêá®á¯á°Má±u~mvá²á´á³·Xᵿá¶ÄÕá·á¸á¹ÚÓ¼á»Èá¾á½á¼ûŧáÄáÁ^°áÀáÂáÃá¿áÅáÆá îZáÇáÈáËÂáÌráÉáÊáÏáÎáÍáÑáÐáÒáÔáÓËuÄáÕµáÖá×áÛáÙáÚáØáÜáÝáÞáßµáàîááméZáâ¸Îáã»áäáå¤Óáçî\uÔmCjv{áéî]Éî^°d¥¡áëî_áíéáìôáïVáêèOêqáîáðÉ×áòáóáñmáùáø¥áúáõáûáöÖáôá÷âAâ@áüéâCâBÊâDbâFâEâGáæáèâIâHî`¦çÐâJV_FSâPâOcâLâNj_âMâKIË[ÕâQâRâhÖ\TâSÐõîdîfâTâUâWâXHâYâZâ[×ÑÃGâ\HÈbâ]édâ`âa`â^â_ÌÚHâböâcÅ«BâdâetÅâgâfíâiîâlâjÒmâkeäâmsâoÏn¸ªânâpâqõârnâtâuóâvúËÞóâwâyâ{âxâzAâ|Eqâ~âMââââ â}â§ââîgòââââ³âèíÍââv¶âîhGîjâ[â£^|±Æââ âââ¢âÎââJâ}yâæâââùâ¤M¤Øâ£â¡³â}ôâ¶â¦â¨â«â¬â©âªâ§â¥âÍÓâ³â°âµâ´¥Zâ®â·â²â±âîkâ¯Ç\û â¼¢ßâ¹Íâ½Ñzâ¸âºâ»â¾ÂÄâÃâÂâ¿UâÈâÌâÉâÅâÆâËâÀÓâÇâÁâÊâÐÈâÍâÎâÏâÒâÑôâÓúëâØâÕâÔÐâ×âÙâÖâÝâÚâÛâÄâÜâÞâßÄâààÌHâá²®ââ±eSl¾âçâåâãÏâèâæâäâìâëâêâéâíâî¸âïâñâðÐWâóâòâô³fâõÆâ÷âøâùâú âûnIã@ñgâüãCä[RãBÑh´ãAfaõÛãFÝ×ãGaãIЮãHI¼gãDãJîmãEoãMãQãLãUîniºãRãOãPãNãKGâ¦ãWãTãVãSp±ãXãeîpãaã[ã_øÛãZãbãfjÔÔã\îoãdãY]ã^»Èã]ÙêÎãîqãgüãcãhãj÷ãmãiÒÉÉÜãlûãkêãnãuãoãvãrÈãtãqãwãpcDkãsãã{ã~ã|ããzã`ÑÉã}ãx@qJîrDUããããã ãyãããJããããã[ãããí@ããZãããããããÊãããîsã ã¡ã¢ã£ã¤ã¦ã¥ã§ã¨ã©ã¬ãªã«ßru±lëãëã®ã° ã¯ã²ã±rã³üã´ã·ã¶ãµîtã¸QA`ã¼ã¹ãºã½ã¾ã»H¥ãÀãÁãÂKãÄãÃãÅãÆãÇãËãÈãÉ|sVlãÌÒãËãͧÏãÎkÕãÏãÐãÑãÒãÓ¨ëãÕ^ãÔã×ãÖãØ¹ãÙãÚ·ãÛãÜãÝüãàãßãÞ®ãáEãâããWãäãåãçãæ£÷]§ãéÑIãêãèÌÒì¨bãíãëmnçæxÝãò_wÙãôãðãóãîãñEÓûãïãöã÷·¹äE\ºÆe¬ãõÒrãøãúãùãûE]¯äBäAãüt äDäCoräTäHäIîäGäFäJ° BÚäNäOäKäLäMpäUäQGäPäSäRcäVäWVäXäZä^ä[äY^ä\ä]°ädä_ä`äaäcäbäeäfägbçähÕ©LväiäjPäkälämänäo»¨äpãäqÉär®äsÜÚCwMätqäuÊääwǽävDäxøäzäyä|ä{ä}ää~Íäää¯Çä FäääðääÅäH°äämcÔF|Úäè¡äèÛcäÕäääääáêÏpäääääîvÎäÖääsä¡äªä«©ä²ïä©ä¨ä£ä¢ä äùä¥ä¤ä§t`ä¦rîwä¸ä¹×¬ä¶îxä¬ä´ä»äµä³ää±äÎä¯äºä°ä¼ä®ä·äÍäÅîyeÛäÀÙÒäÃØpäÈìä¿ØÔHäÉä½îzäÆäÐäÁä¸äÇäÄGäÊÞä¾äÌäËäÒäÝäàäÎäÓäÜî{t¨äâ¯äÛä×äÑäÙäÞK¨äÖäßäÚäÕÓNªÖfäåäîäØî|öäãäèäääë~äìuäáWäçäêªäíäæäéíDH@äñäøäðÁäÏÌ ä÷äöäòäóUäõäïÓäôü Áäùå@×äüÔÇåB¼î}åCäûî~äÔäún îåJåPåQåDåNåFåHåRåGåKãåLåOåEEåIFdOò÷îåVåTmåSåUåWåXå[åY¡åZËåMå\åaå`åAåbhå]å_å^PAådåcáºåeåfågÕsåi|¸ñåjåkålø¸áåqåråm\ånaåoåpåzåtåwåsåuåvÖåx`uaå{^åå|å¸å}å~gØåûååéåIååå åååååwå¨ååååååäXåååIååååå Úåå¡åå±åå¥Zå¤å£å¬å¦å®å±å¨å©åå°å¯å§åªå»å´å²å³å¸å¹Iaå·å¢î å¶åºåµå¼å¾å½åÀå¿åyåÄåÁåÂåÃåÅåÇåÆOs¥åÈpXåÉqÕåÊtåËß\åÌåÓåÐåÑåÎÜåÍåÔUÜåÚåÖ³åÕåØåÏåÙåÛíå×åÜåÞÑåÒ¿åÝÙôåßåà åáTåâåãâå価åéåêÖåèîåååç»åæåë¡åíåìJåîíAåúåðåñåòåóå÷åøåöåôåïåõåù赦åüÝåûæAæ@æCæBæDPæEæFæG¼væH¢eæIæJ©KæK`æLoæMæOæNeæPæQæRÏæSæTæUæVpæWæXæYðGæZæ[æ\¾ùæ]vuæ`¢æ_îPæ^õLæaæb׿cKÝóiædîfØæeæhæi¼ÀægÙ]æfræmwlælækFlbYÚîæjæoæpænÖ_Fæs¾aUævê½æræwëætæuîæqàÇNÛîbî²æzæxk¿ÐæyzÈ_æ{æ³æîææææúæ~æ|@ææ}îæ ¿ødyà£ææäææææªæuÓæwæææTæÞææææææîæ¯æææxææ æ¡cã¿÷æ¢ìæ£îæ¤]Ìæ¥æ¦Qæ§æ¨æ©æªæ«Jæ¬æ®æ¤æ¯Læ°æ±æ²æ³ØÛæ´¬æµæ¶^æ·æ¿æ¸æºæ¹æ»eæ¼æ½æ¾æÀLåàvnÝÌæÃÑÓæÂæÇáæÅæÆMæÈÝï\æÄfêæÊGÀdæÉ¯æÚGöoæÍ^Ü «æÌæË¿qîîæÏæÐwæÎæÑæÒæÔ¡æÓäæÖæÕæ×îæÙæÛæÜÔÍæÝqæÞæßæàîNæá´zæâï«æåæäæãæëæéæææèæçæêæîÕæï׿ìæíHµHæðæóæñæòx¥æöæôæõæ÷çHæúæûæùæøûç@çDçAæüçBçCçJçEÖçGçIçFçLRçKçMçNçQçPçOçSçRôçUçTçVçWçYçXgçZëç[ç]ç^ç_ç\ç`ÔçaORî¬çbî]çcçf²çeçdyçgrçiÚçhçqçkçmãçjçlçpçnPçoçryÖSçsAçuçtçx`çwçvç{çzçyQç|ç}ç~Dçççhç«çç çãçCJ_çÓÒHIv}ßÔçççÞôçRçqçÀçççÇÞ¦çtçç磧çürççÊÀ笢ç§AçßTiççíçNç¥Ùxöç¤V^Õßçç ç¡ç¢¹Báç¦ç§ê¡»ç¨kyîç©KÕçªç ç«JIâÉç¯ðç±ç°ç®âÒçç³ç²ç´WßMçµ×ç¶ç·ç¸@èxYç¼îSç¹çºsX½sç½ç¾îç¿îAçÁçÀÑçÂUÞzðçÃçÄ|çÅçÆçÇVçÉçÈy_çÌçËçÊçíÁ®XçÍÝçÐçÎçÏçÒçÑøçÓçÔçÕÎÑßçÖç×¢dìÊçØàçÙîBîçÜjî çÚçÛÞî£î¤túî¡î¢çÞçßçÝçáî¥î§Ýbî¦çåçâçäçàènçãéØî®î¨îªçíî©Sçèçëçéçîî«çïîççî¬çôçæ«çêÞî¯zî±î²gâeºíCLçòçìçñÁ¶çóçðî°Kç÷çöçõî¶Nîºî¸î´îµî¹î³çøÝseíIçúî½|îÀîÂKçùè@èBîÁî¿ùî¼èAèCî»ÑdàBçüö^èEèDèFçûíBçtÕèKîÄbèGèHLèJîîèIßèO½ÈîÅZèMèNÁèLèPèVîÆèYèXLèQèRèUèWîǾèZèTèSîÈè^è_è`è]è\à¨è[èdèbîÉècèaöèeèfèhîÊîËÓègøèsèièlèjèkèmèoèpèqètèrèuèwèv·åèxMèyÂèzJ[ÕîÌÔè{è|è}è~èÖt}´èèè{èè èèèÅèèèèèè¬èèèèèèãèèhj¢Éèèè~èÀÃèèèè @w×è¡è£Aè¢Â˩褯z÷²Gàä@è¤Kuè¦è§è¥ÛáîÏB×è©ç¬è¨îÐè¬èªè«èè®êè¯è°Ç¹åYëWÙè³è²è´è±Gè¸å«Ôè¶£ïJá´µ_ëè¹dùèºè»kè¼ìè·è¾èÀè¿è½èÁèÂàèöèÄèÅIîÑPèÆîÒèÇèÈèÌîÓèÉèÊèËèÍîÔîÕîÖÂî×õÃèÎñèÏêrÊèÐèÑèÒvèÔxèÕCèÖèÚèØèÙè×èÛèÜÆèÝèÞâèßfèâèáèàæÚèãèäèåèæèçèèØèéèêBèì¹èïèîC¿Å¸ {èñèðaæÐÚÌzèôèójªoèõèòpèöè÷èùèz{èøç°îØè^ÞîÙÚèúèûèüé@éBéAéCéDéEéFéHéGéIòãÊHQéJéKªZÑù¹OüéLÝéM{a`éNìéOéPéRéSéUéQéTîÜÙéVéWéXéYéZé\é[é^éaé]é_é`ébÀñécédîÞée]néfégyééhÊwìíémîíéléjékéiéwénéoépéqésérxétévRéu±éxËéy«ézéé}é|é~é{éîßééÁéé éééééééé[ééééééîàîáééééé¯éEééééééé é¡é¢é£é¤é¥é¦é§é¨é©éªé«é¬TéâöS@°é¯é®£é±é²é°é³é´Dîãéµîâé·¼îä鸩é¶é¹éºé»é¼é½LøNîåé¾éÁîæé¿éÂïéÀéÃéÄéÅéÉIâéÊéÇéÆéÈ~éÎéÍé̱îçéØéÔéÕéÑé×éÓkéÖéÒéÐéÏéÚéÝéÜéÛhéÙñéÞéàéËVéâéáéßLØéãéäéåéæéç¹éèµéíéééêPÂÎéîéï¼éìéë¨é÷éöéôéóéñéð°§éúéùéøéõéûéüêDêCêELê@êA·êBîéQêJîèêFêKêHêG{êLêMêNêIéòêOßêSêTêRêQêWêPêUêVêYêXê[ê\ê]hêZéëê^îëê_ê`êaêb²êcêdêeêfêgêhêkêi[êjíêlÙêmênêpêqêoËõ©êsoêtêuêvîìêwàÒÙáêxêzêyê{ê|ê}ê~êêêêêê êêêCÛêlêê@êêâVæØèëêêêêêîêêêêêêêê´êêâsêíÄîÍísí~ííí¼íÌíÎíùîBîYîaîbîcîeîiîlîuîîîîîîîîî·î¾îÎîÚîÛîÝîêIîüîûij{C|D^OPQRSTUVWXFGH`abcdefghijklmnopqrstuvwxym_nOQM obp`¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßÊPîú。「」、・ヲァィゥェォャï½ï½®ï½¯ï½°ï½±ï½²ï½³ï½´ï½µï½¶ï½·ï½¸ï½¹ï½ºï½»ï½¼ï½½ï½¾ï½¿ï¾ï¾ï¾ï¾ï¾ï¾ ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾????????????????????????????????????????????????????????????????ãããï¼ï¼ã»ï¼ï¼ï¼ï¼ãã´ï½Â¨ï¼¾ï¿£ï¼¿ã½ã¾ãããä»ã ããã¼ââï¼ï¼¼ï½â¥ï½â¦â¥ââââï¼ï¼ãã[]ï½ï½ããããããããããï¼ï¼Â±Ã?÷ï¼â ï¼ï¼â¦â§ââ´ââ°â²â³âï¿¥ï¼ï¿ ï¿¡ï¼ ï¼ï¼ï¼ï¼ §ââ ââââââ¡â â³â²â½â¼â»ãââââã???????????âââââââªâ©????????â§â¨ï¿¢ââââ???????????â â¥ââââ¡ââªâ«ââ½ââµâ«â¬???????â«â°â¯ââªâ â¡Â¶????â¯??????????????????????????????????????????????????????????????????????????????????ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼???????ABCDEFGHIJKLï¼ï¼®ï¼¯ï¼°ï¼±ï¼²ï¼³ï¼´ï¼µï¼¶ï¼·ï¼¸ï¼¹ï¼º???????ï½ï½ï½ï½ï½ ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½ï½????ããããã ããããããããããããããããããããããããããã ã¡ã¢ã£ã¤ã¥ã¦ã§ã¨ã©ãªã«ã¬ãã®ã¯ã°ã±ã²ã³ã´ãµã¶ã·ã¸ã¹ãºã»ã¼ã½ã¾ã¿ãããããã ãããããããããããããã??????????????????????????????????????????????????????????????????????????????ã¡ã¢ã£ã¤ã¥ã¦ã§ã¨ã©ãªã«ã¬ãã®ã¯ã°ã±ã²ã³ã´ãµã¶ã·ã¸ã¹ãºã»ã¼ã½ã¾ã¿ãããããã ãããããããããããããããããããããããããã?ã ã¡ã¢ã£ã¤ã¥ã¦ã§ã¨ã©ãªã«ã¬ãã®ã¯ã°ã±ã²ã³ã´ãµã¶????????ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎΠΡΣΤΥΦΧΨΩ????????αβγδεζηθικλμνξοÏÏÏÏÏ ÏÏÏÏ?????????????????????????????????????????????????????????????????????????????????????????????????????????ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐРСТУФХЦЧШЩЪЫЬÐЮЯ???????????????абвгдеÑжзийклмн?опÑÑÑÑÑÑ ÑÑÑÑÑÑÑÑÑÑ?????????????ââââââââ¬â¤â´â¼âââââââ£â³â«â»ââ â¯â¨â·â¿ââ°â¥â¸â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????â â¡â¢â£â¤â¥â¦â§â¨â©âªâ«â¬ââ®â¯â°â±â²â³â ⠡⠢⠣⠤⠥⠦⠧⠨⠩?ããã¢ããã§ãã¶ãããã¦ã£ã«ãã»ããããããã¡????????ã»?ããâãâ¡ã¤ã¥ã¦ã§ã¨ã±ã²ã¹ã¾ã½ã¼ââ¡â«â®âââ¥â ââ¿âµâ©âª??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????äºåå¨é¿åææ¨å§¶é¢èµèç©æªæ¡æ¸¥æè¦è¦é¯µæ¢å§æ¡æ±å®å§è»é£´çµ¢ç¶¾é®æç²è¢·å®åºµæææ¡ééæä»¥ä¼ä½ä¾åå²å¤·å§å¨å°æææ °ææ¤ çºçç°ç§»ç¶ç·¯èèè¡£è¬ééºå»äºäº¥åè²é磯ä¸å£±æº¢é¸ç¨²è¨èé°¯å å°å½å¡å å§»å¼é£²æ·«è¤è???????????????????????????????????????????????????????????????????é¢é°é é»åå³å®çç¾½è¿é¨å¯éµçªºä¸ç¢è¼æ¸¦å忬è鰻姥婿µ¦çéåäºéé²èé¤å¡å¶å¬°å½±æ æ³æ 永泳洩ççç©é ´è±è¡è© éæ¶²ç«çé§ æ¦è¬è¶é²æ¦åå?åå °å¥å®´å»¶æ¨æ©æ´æ²¿æ¼ççç çç¿ç¸è¶èèé éé´å¡©æ¼æ±ç¥å¹å¤®å¥¥å¾å¿æ¼æºæ¨ªæ¬§æ®´çç¿è¥é´¬é´é»å²¡æ²è»å屿¶èæ¡¶ç¡ä¹ä¿ºå¸æ©æ¸©ç©é³ä¸åä»®ä½ä¼½ä¾¡ä½³å å¯åå¤å«å®¶å¯¡ç§æææ¶ææ²³ç«çç¦ç¦¾ç¨¼ç®è±èèè·è¯èè¦èª²å©è²¨è¿¦ééèä¿å³¨æçç»è¥è½è¾è³é é¤é§ä»ä¼è§£åå¡å£å»»å¿«æªææ¢ææææ¹???????????????????????????????????????????????????????????????????éæ¦æ¢°æµ·ç°çççµµè¥è¹ééè²å±å¾å¤å³å®³å´æ ¨æ¦æ¶¯ç¢èè¡è©²é§éª¸æµ¬é¦¨è壿¿èéååå廿¡æ¹æ ¼æ ¸æ®»ç²ç¢ºç©«è¦è§èµ«è¼éé£éé©å¦å²³æ¥½é¡é¡æç¬ 樫?æ©¿æ¢¶é°æ½å²åæ°æ¬æ´»æ¸æ»èè¤è½ä¸é°¹å¶æ¤æ¨ºéæ ªå ç«è²ééåé´¨æ ¢è è±ç²¥åè ç¦ä¹¾ä¾å å¯ååå§å·»åå ªå§¦å®å®å¯å¹²å¹¹æ£ææ £æ¾ææ¢ææ¡æ£ºæ¬¾ææ±æ¼¢æ¾æ½ ç°çç£ç竿管簡緩缶翰èè¦è観è«è²«ééééé¢é¥é館è丸å«å²¸å·ç©çç¼å²©ç¿«è´éé é¡é¡ä¼ä¼å±åå¨åºå¥å¬å¯å²å¸å¹¾å¿æ®æºææ¢ææ£æ£???????????????????????????????????????????????????????????????????æ©å¸°æ¯ æ°æ±½ç¿ç¥å£ç¨ç´å¾½è¦è¨è²´èµ·è»è¼é£¢é¨é¬¼äºå½åå¦å®æ¯ææ¬æ¬ºç çç¥ç¾©è»èª¼è°æ¬èé åå嫿¡æ©è©°ç §æµé»å´å®¢èèéä¸ä¹ ä»ä¼åå¸å®®å¼æ¥æ?æ½æ±æ±²æ³£ç¸ç究窮ç¬ç´ç³¾çµ¦æ§çå»å± å·¨ææ ææ¸ è許è·é¸æ¼ç¦¦é亨享京ä¾ä¾ åå ç«¶å ±å¶åå¡å¿å«å¬å¢å³¡å¼·å½æ¯æææææ©æ³ççç¯è¸è èèé·é¡é¿é¥é©ä»°åå°ææ¥å±æ²æ¥µçæ¡ç²å å¤å巾馿¤æ¬£æ¬½ç´ç¦ç¦½çç·è¹èè¡¿è¥è¬¹è¿éåéä¹å¶å¥åºççç©è¦èº¯é§é§é§å ·æèå°ç©ºå¶å¯éé 串æ«é§å±å±???????????????????????????????????????????????????????????????????æçªæ²é´è½¡çªªçéç²æ ç¹°æ¡é¬å²åè«è¨ç¾¤è»é¡å¦è¢ç¥ä¿å¾åå ååçªåå¥å½¢å¾æµæ ¶æ §æ©æ²æºæ¬æ¯æ¡æ¸ç¦ç¨½ç³»çµç¶ç¹ç½«èèèè¨è©£è¦è»½é é¶è¸è¿é¯¨?åæææ¿éæ¡åæ¬ æ±ºæ½ç©´çµè¡è¨£æä»¶å¹å¦å¥å ¼å¸å£å§åå å«å»ºæ²æ¸æ³æ²æ¤æ¨©ç½ç¬ç®ç 硯絹çè©è¦è¬è³¢è»é£éµéºé¡é¨é¹¸å åå³å¹»å¼¦æ¸æºçç¾çµè·è¨è«ºéä¹åå¤å¼åºå§å¤å·±åº«å¼§æ¸æ æ¯æ¹çç³è¢´è¡è¡è°èèªè·¨é·éé¡§é¼äºäºä¼ååå¾å¨¯å¾å¾¡ææ¢§æªçç¢èªèª¤è·éä¹é¯äº¤ä½¼ä¾¯ååå å ¬åå¹å¾åå£å???????????????????????????????????????????????????????????????????åååå¢å¥½ååå®å·¥å·§å··å¹¸åºåºåº·å¼ææ æææ§æ»æææ´ææ ¡æ¢æ§æ±æ´ªæµ©æ¸¯æºç²çç¡¬ç¨¿ç³ ç´ ç´çµç¶±èèè¯è±è èèªèè¡è¡¡è¬è²¢è³¼éé µé±ç ¿é¼é¤é?é é¦é«é´»åå«å·å壿·æ¿ 豪è½éº¹å å»åå½ç©é ·éµ é»çæ¼è °ç忽æéª¨çè¾¼æ¤é ä»å°å¤å¢¾å©æ¨ææææ ¹æ¢±æ··çç´ºè®éäºä½åååµ¯å·¦å·®æ»æ²ç³ç è©éè£å座æ«åµå¬åæåå¡å¦»å®°å½©ææ¡æ ½æ³æ¸ç½éçç ç ¦ç¥æç´°èè£è¼éå¤å¨æç½ªè²¡å´åéªå ºæ¦è´å²å´å¼ç¢é·ºä½ååæ¾æ¨ææµçªçç´¢é¯æ¡é®ç¬¹ååå·???????????????????????????????????????????????????????????????????坿¶æ®æ¦ææ®ºè©éç靿éé®«ç¿æä¸ååå±±æ¨ææ£æ¡ç¦çç£ç®çºèè®è³é ¸é¤æ¬æ«æ®ä»ä»ä¼ºä½¿åºå¸å²å£å士å§å§å§¿åå±å¸å¸«å¿æææ¯åæ¯æ½æ¨ææ¢?æ»æ°ç ç¥ç§ç³¸ç´ç´«è¢èè³è¦è©è©©è©¦èªè«®è³è³é飼æ¯äºä¼¼ä¾å åå¯ºæ æææ¬¡æ»æ²»ç¾ç½çç£ç¤ºèè³èªèè¾æ±é¹¿å¼è鴫竺軸å®é«ä¸å±å·å¤±å«å®¤ææ¹¿æ¼ç¾è³ªå®èç¯ å²æ´è屡èç¸èåå°æ¨èµ¦æç ®ç¤¾ç´è è¬è»é®èéªååºå°ºæç¼çµé éé«è¥å¯å¼±æ¹ä¸»åå®ææ±æ®ç©ç ç¨®è «è¶£é é¦åååªå¯¿ææ¨¹ç¶¬éååå¨???????????????????????????????????????????????????????????????????å®å°±å·ä¿®ææ¾æ´²ç§ç§çµç¹ç¿èèèè¡è¥²è®è¹´è¼¯é±é é ¬ééä»ä½å åå¾æææ±æ¸ç£ç¸¦ééåå¤å®¿æ·ç¥ç¸®ç²å¡¾çåºè¡è¿°ä¿å³»æ¥ç¬ç«£èé§¿åå¾ªæ¬æ¥¯æ®æ·³?æºæ½¤ç¾ç´å·¡éµéé å¦åææææ¸åº¶ç·ç½²æ¸è¯è·è«¸å©å女åºå¾æé¤é¤å·ååå åå¬å¨åå±å奨妾娼宵å°å°å°å°åºåºå» å½°æ¿ææææ·ææææ¶æ¾æ¢¢æ¨æ¨µæ²¼æ¶æ¸æ¹ç¼ç¦ç §ççç¡ç¤ç¥¥ç§°ç« ç¬ç²§ç´¹èèèèè¡è£³è¨è¨¼è©è©³è±¡è³é¤é¦é¾éééä¸ä¸ä¸ä¹åå°åå ´å£å¬¢å¸¸æ æ¾æ¡ææµç¶ç³ç©£è¸è²é¸é å±å´é£¾???????????????????????????????????????????????????????????????????ææ¤æ®çç¹è·è²è§¦é£è辱尻伸信侵åå¨ å¯å¯©å¿æ æ¯æ°ææ£®æ¦æµ¸æ·±ç³ç¹çç¥ç§¦ç´³è£è¯èªè¦ªè¨ºèº«è¾é²éé人ä»å塵壬å°çå°½è è¨è¿ é£é笥è«é é ¢å³å¨?éå¹åå¸¥æ¨æ°´çç¡ç²ç¿ è¡°éé éééçé«å´åµ©æ°æ¢è¶¨éæ®ææ¤è é éè£¾æ¾æºå¯¸ä¸ç¬çæ¯åå¶å¢å§å¾æ§ææ¿æ´ææ´æ£²æ æ£æ¸ ç²ççç²¾èå£°è£½è¥¿èª èªè«ééééæç¨èé»å¸æææ¥ææç³ç©ç±ç¸¾è責赤跡è¹ç¢©åææ¥ææè¨çªç¯èª¬éªçµ¶èèä»å åå 宣å°å°å·æ¦ææ°æ æ ´æ³æµ æ´ææ½ç ç ½æç©¿ç®ç·???????????????????????????????????????????????????????????????????ç¹ç¾¨è ºèè¹è¦è©®è³è·µé¸é·éééé®®ååæ¼¸ç¶å ¨ç¦ ç¹è³ç³åå¡å²¨æªæ¾æ½æ¥çççç¤ç¥ç§ç²ç´ çµè訴é»é¡é¼ å§åµåå¢ååªå£®å¥ç½å®å±¤åæ£æ³æææ¿æ»?ææ©æ¹å·£æ§æ§½æ¼ç¥äºç©ç¸çªç³ç·ç¶è¡èèè¬è¼è»è£ èµ°ééééé¨å墿èèµè´é ä¿å´å峿¯æææ¸¬è¶³éä¿å±è³æç¶åè¢å ¶æåå«å°ææéä»å¤å¤ªæ±°è©å¾å å¦¥æ°ææèµæ¥éé§é¨¨ä½å 対èå²±å¸¯å¾ æ æ æ´æ¿æ³°æ»èè ¿èè¢è²¸éé®éé»é¯ä»£å°å¤§ç¬¬éé¡é·¹æ»ç§ååå® ææææ²¢æ¿¯ç¢è¨é¸æ¿è«¾è¸å§è¸åª???????????????????????????????????????????????????????????????????å©ä½é辰奪è±å·½ç«ªè¾¿æ£è°·ç¸é±æ¨½èª°ä¸¹åå妿 æ¢æ¦ææ·¡æ¹çç端箪綻è½èèèªéå£å£å¼¾æææªæ®µç·è«å¤ç¥å°å¼æ¥æºæ± ç´ç¨ç½®è´èé 馳ç¯ç竹çè?éç§©çªè¶å«¡çä¸ä»²å®å¿ æ½æ¼æ±æ³¨è«è¡·è¨»é é³é§æ¨ç¦çªè§è貯ä¸å åå寵å¸å¸³åºå¼å¼µå½«å¾´æ²ææ¢ææ½®ççºçºè´è¹è ¸è¶èª¿è«è¶ è·³éé·é é³¥å æç´ææ²çè³é®é³æ´¥å¢æ¤æ§è¿½éçé塿 æ´æ§»ä½æ¼¬æè¾»è¦ç¶´é椿潰åªå£·å¬¬ç´¬çªåé£é¶´äºä½ååµåè²åå ¤å®å¸åºåºå»·å¼ææµæºææ¢¯æ±ç¢ç¦ç¨ç· èè¨è«¦è¹é???????????????????????????????????????????????????????????????????é¸éé鼿³¥ææ¢æµæ»´çç¬é©é溺å²å¾¹æ¤è½è¿éå ¸å¡«å¤©å±åºæ·»çºç貼転é¡ç¹ä¼æ®¿æ¾±ç°é»å åå µå¡å¦¬å± å¾æææ¸¡ç»èè³éé½éç ¥ç ºåªåº¦å奴æåå å¬?åååå¡å¡å¥å®å³¶å¶æ¼æææ±æ¡æ¢¼æ£çæ·æ¹¯æ¶ç¯çå½ç祷çççç³çµ±å°è£è©è¤è¨è¬è±è¸éééé¶é 騰éåååå å°æ§ææ´ç³ç«¥è´èéé å³ é´å¿å¾å¾³æ¶ç¹ç£ç¦¿ç¯¤æ¯ç¬èªæ æ©¡å¸çªæ¤´å±é³¶è«å¯ é çå¸å±¯ææ¦æ²è±éé åæéå¥é£å ä¹åªèè¬çæºé楢馴ç¸ç·åæ¥ è»é£æ±äºå°¼å¼è¿©åè³èè¹å»¿æ¥ä¹³å ¥???????????????????????????????????????????????????????????????????å¦å°¿é®ä»»å¦å¿èªæ¿¡ç¦°ç¥¢å¯§è±ç«ç±å¹´å¿µæ»æçç²ä¹å»¼ä¹å墿©æ¿ç´è½è³è¿è¾²è¦è¤å·´ææè¦æ·æ³¢æ´¾ç¶ç ´å©ç½µèé¦¬ä¿³å»ææææ¯ççèèºè¼©é åå¹åªæ¢ ?æ¥³ç ¤ç½è²·å£²è³ éªéè¿ç§¤ç§è©ä¼¯å¥åæææ³ç½ç®ç²è¶èè¿«ææ¼ çç¸è«é§éº¦å½ç®±ç¡²ç®¸èçæ«¨å¹¡èçç å «é¢æºçºé髪ä¼ç½°æçé¥é³©åºå¡è¤é¼ä¼´å¤ååå叿¬ææ¿æ°¾æ±çç¯ççç¹è¬è©è²©ç¯éç ©é é£¯æ½æ©çªç¤ç£èè®åªåå¦å¦åºå½¼æ²ææ¹æ«ææ¯æ³ç²ç®ç¢ç§ç·ç½·è¥è¢«èª¹è²»é¿é飿¨ç°¸åå°¾å¾®ææ¯çµçç¾???????????????????????????????????????????????????????????????????é¼»æç¨å¹çé«å½¦èè±èå¼¼å¿ ç¢ç鼿¡§å§«åªç´ç¾è¬¬ä¿µå½ªæ¨æ°·æ¼ç¢ç¥¨è¡¨è©è±¹å»æç ç§èé¨é²èèé°åå½¬ææµçè²§è³é »æç¶ä¸ä»å 夫婦å¯å¨å¸åºææ¶æ·?æ§æ®æµ®ç¶ç¬¦è èèèè² è³¦èµ´ééä¾®æ«æ¦èè¡èªé¨å°æ¥é¢¨èºèä¼å¯å¾©å¹ æç¦è ¹è¤è¦æ·µå¼ææ²¸ä»ç©é®åå»å´å¢³æ¤æ®ç奮ç²ç³ç´é°æèä¸ä½µå µå¡å¹£å¹³å¼æä¸¦è½ééç±³é å»å£ç碧å¥ç¥èç®åå¤çç¯ç·¨è¾ºè¿é便å娩å¼éä¿èéªåææ©ç«è£è¼ç©å墿 ææ®æ¯ç°¿è©å£ä¿¸å åå ±å¥å®å³°å³¯å´©åºæ±æ§æ¾æ¹æ???????????????????????????????????????????????????????????????????æ³æ³¡ç¹ç ²ç¸«èè³èè¬èè¤è¨ªè±é¦é飽鳳鵬ä¹äº¡ååå妨帽å¿å¿æ¿æ´æææ£åç´¡èªè¨è¬è²è²¿é¾é²å é ¬åååå¢¨æ²æ´ç§ç¦ç©é¦å没æ®å å¹å¥æ¬ç¿»å¡ç?æ©ç£¨é麻åå¦¹æ§ææ¯å©æ§å¹èæé®ªæ¾é±æ¡äº¦ä¿£åæ¹æ«æ²«è¿ä¾ç¹éº¿ä¸æ ¢æºæ¼«è峿ªé å·³ç®å²¬å¯èæ¹èç¨èå¦ç²æ°ç å夢ç¡ççé§éµ¡æ¤å©¿å¨å¥å彿çè¿·éé³´å§ªçæ» å æ£ç¶¿ç·¬é¢éººæ¸æ¨¡èå¦åæ¯çç²ç¶²èè岿¨é»ç®æ¢å¿é¤ å°¤æ»ç±¾è²°åæ¶ç´éåä¹å¶å¤çºè¶éå¼¥ç¢åå½¹ç´è¬è¨³èºéæ³è®éæææ²¹ç???????????????????????????????????????????????????????????????????è«è¼¸å¯ä½åªååå®¥å¹½æ æææææ¹§æ¶ç¶ç·ç±ç¥è£èªéééµéèå¤äºä½ä¸èªè¼¿é åå¹¼å¦å®¹åº¸ææºæææ¥æ§æ´æº¶çç¨çª¯ç¾èèèè¦è¬¡è¸é¥é½é¤æ ¾ææ¬²?æ²æµ´ç¿ç¿¼æ·ç¾ èºè£¸æ¥è±é ¼é·æ´çµ¡è½é ªä¹±åµåµæ¬æ¿«èè覧å©åå±¥ææ¢¨ççç¢è£è£¡éé¢é¸å¾çç«èæ ç¥åæµæºççç¡«ç²éç«é¾ä¾¶æ ®æ èäºäº®å両åå¯®ææ¢æ¶¼çççç¨ç³§è¯è«é¼ééµé åç·å«åææ·çç³è¨è¼ªé£é±éºç 塿¶ç´¯é¡ä»¤ä¼¶ä¾å·å±å¶ºæç²ç¤¼èé´é·é¶ééºé½¢æ¦æ´åå£çè£å»æææ¼£ç 簾練è¯???????????????????????????????????????????????????????????????????è®é£é¬å靿«çè³è·¯é²å´å©å»å¼ææ¥¼æ¦æµªæ¼ç¢ç¼ç¯èè¾èéå éºç¦èé²è«åå話æªè³èææ é·²äºäºé°è©«èè¨æ¤æ¹¾ç¢è ????????????????????????????????????????????å¼ä¸ä¸ä¸ªä¸±ä¸¶ä¸¼ä¸¿ä¹ä¹ä¹äºäº 豫äºèå¼äºäºäºäº 亢亰亳亶ä»ä»ä»ä»ä»ä»ä»ä»ä»ä»·ä¼ä½ä¼°ä½ä½ä½ä½ä½¶ä¾ä¾ä¾ä½»ä½©ä½°ä¾ä½¯ä¾ä¾åä¿ä¿ä¿ä¿ä¿ä¿ä¿ä¿ä¿¤ä¿¥åå¨ååªå¥å ä¼ä¿¶å¡å©å¬ä¿¾ä¿¯ååååæåååååå¬å¸ååå å´å²???????????????????????????????????????????????????????????????????ååå³åååå¥åå£å®å¹åµåååååååå¡åºå·å¼å»å¿å å å å å ¢ç«¸å ©å ªå ®ååååååååååå¤å¦å¢å©åªå«å³å±å²å°åµå½å ååå èå©å?å°åµå¾ååååå§åªå®å³å¹åååååååªå´å©å³å¿å½åååå±åå辨辧å¬åå¼åµååååå£å¦é£å å³åµå¸å¹ååç¸åååååå£å¯å±å³å¸ååå ä¸ååååå©å®å¤å»å·ååå å¦å¥å®å°å¶åç°éåæ¼ç®å®å¨ååºåå½åå¬åå¼å®å¶å©ååååµååå±å·å°åå»åå¶ååååå¢å¸å¥å¬ååå¨???????????????????????????????????????????????????????????????????å«åå¤å¾å¼åå¥å¦ååå½å®ååºå¢å¹åå£åå®åå ååå¸å³åååå¯ååå»å¾ååå®å¼åå©åå¨åå åååå¤ååå·åå¾å½åå¹ååçå´å¶å²å¸?å«å¤å¯å¬åªåååå ååå¥å®å¶å´åå¼ååååååååå®å¹åå¿ååååååååååå¦å·å¸åå»ååå©ååå¡å¿ååå å³å¤åªå°åååååå åå£å å å å¡²å ¡å¡¢å¡å¡°æ¯å¡å ½å¡¹å¢ 墹å¢å¢«å¢ºå£å¢»å¢¸å¢®å£ å£å£å£å£å£å£¥å£å£¤å£å£¯å£ºå£¹å£»å£¼å£½å¤å¤å¤å¤æ¢¦å¤¥å¤¬å¤å¤²å¤¸å¤¾ç«å¥å¥å¥å¥å¥å¥¢å¥ 奧奬奩???????????????????????????????????????????????????????????????????奸å¦å¦ä½ä¾«å¦£å¦²å§å§¨å§å¦å§å§å¨¥å¨å¨å¨å¨å¨å©å©¬å©å¨µå¨¶å©¢å©ªåªåª¼åª¾å«å«åª½å«£å«å«¦å«©å«å«ºå«»å¬å¬å¬å¬²å«å¬ªå¬¶å¬¾åå åååååå¥å©å°å³åµå¸æåºå®?å®å®¦å®¸å¯å¯å¯å¯å¯å¯¤å¯¦å¯¢å¯å¯¥å¯«å¯°å¯¶å¯³å° å°å°å°å°å° 尢尨尸尹å±å±å±å±å±å±å±å±¬å±®ä¹¢å±¶å±¹å²å²å²å¦å²«å²»å²¶å²¼å²·å³ å²¾å³å³å³©å³½å³ºå³å¶å³ªå´å´å´åµå´å´å´å´å´¢å´å´å´åµåµåµåµåµ¬åµ³åµ¶å¶å¶å¶å¶¢å¶å¶¬å¶®å¶½å¶å¶·å¶¼å·å·å·å·å·å·å·«å·²å·µå¸å¸å¸å¸å¸å¸¶å¸·å¹å¹å¹å¹å¹å¹å¹å¹¢å¹¤å¹å¹µå¹¶å¹ºéº¼å¹¿åº å»å»å»å»å»???????????????????????????????????????????????????????????????????å»å»£å»å»å»å»¢å»¡å»¨å»©å»¬å»±å»³å»°å»´å»¸å»¾å¼å¼å½å½å¼å¼å¼å¼©å¼å¼¸å½å½å½å½å¼¯å½å½å½å½å½¡å½å½³å½·å¾å¾å½¿å¾å¾å¾å¾å¾å¾å¾å¾ 徨å¾å¾¼å¿å¿»å¿¤å¿¸å¿±å¿æ³å¿¿æ¡æ ?æææ©ææ±æææ«æ¦ææºæææªæ·æææææ£ææ¤ææ¬æ«ææææ§ææææææææ§ææ¡æ¸æ ææ´å¿°æ½ææµææ æææ¶æ·ææ´æºææ¡æ»æ±æææ æ¾æ¨æ§æ æ¿æ¼æ¬æ´æ½æ æ æ ³æ ·æ æ æ æ «æ ´æ ¯æ ¥æ ±æ æ æ æ µææææ¬æææææ«æ®ææææ·ææææºæç½¹ææ¦æ£æ¶æºæ´æ¿æ½æ¼æ¾æææææææ???????????????????????????????????????????????????????????????????ææ¡æªæ®æ°æ²æ³ææææ£ææ æ¨æ¼æææ¾æææææææææ»ææ¿ææææææææææææ®æ±æ§æææ¯æµææ¾æææææææ«æ¶æ£ææææµæ«?æ©æ¾æ©æææ£æææ¶æææ´æææ¦æ¶æææ¨ææ§æ¯æ¶ææªæææ¥æ©ææ¼æææ ææ»æææ±æ§èæ æ¡æ¬æ£æ¯æ¬æ¶æ´æ²æºææ½æææ æ¤æ£æ«æ´æµæ·æ¶æ¸çææææææææ²æ¸ææè®æææ«æ·æææææææææ æ¡æ±æ²æææ»æ³æµæ¶æ´ææææææææ¤æ§æ¨ææ¢æ°æææææææææ¹ææ¾æ¼???????????????????????????????????????????????????????????????????ææ¸æææ æ¿æ¦æ©æ°æµæ·ææææ¦æ§é¸æ®æ¿æ¶ææ¸æ·æææ ææ£æ¤ææ°æ©æ¼æªæææ¦æ¡æ æ·æ¯æ´æ¬æ³æ©æ¸æ¤æææ¢æ®æ¹æææ§æªæ æ¡æ ©æ¡æ¡æ ²æ¡?æ¢³æ «æ¡æ¡£æ¡·æ¡¿æ¢æ¢æ¢æ¢æ¢æ¢æ¢æª®æ¢¹æ¡´æ¢µæ¢ æ¢ºæ¤æ¢æ¡¾æ¤æ£æ¤æ£æ¤¢æ¤¦æ£¡æ¤æ£æ£æ£§æ£æ¤¶æ¤æ¤æ£æ££æ¤¥æ£¹æ£ æ£¯æ¤¨æ¤ªæ¤æ¤£æ¤¡æ£æ¥¹æ¥·æ¥æ¥¸æ¥«æ¥æ¥¾æ¥®æ¤¹æ¥´æ¤½æ¥æ¤°æ¥¡æ¥æ¥æ¦æ¥ªæ¦²æ¦®æ§æ¦¿æ§æ§æ¦¾æ§å¯¨æ§æ§æ¦»æ§æ¦§æ¨®æ¦æ¦ æ¦æ¦æ¦´æ§æ§¨æ¨æ¨æ§¿æ¬æ§¹æ§²æ§§æ¨ æ¦±æ¨æ§æ¨æ§«æ¨æ¨æ«æ¨£æ¨æ©æ¨æ©²æ¨¶æ©¸æ©æ©¢æ©æ©¦æ©æ¨¸æ¨¢æªæªæª æªæª¢æª£???????????????????????????????????????????????????????????????????æªèæª»æ«æ«æª¸æª³æª¬æ«æ«æ«æªªæ«æ«ªæ«»æ¬ èæ«ºæ¬æ¬é¬±æ¬æ¬¸æ¬·çæ¬¹é£®æææææææææ¡æ¸æ¹æ¿æ®æ®æ®æ®æ®æ®æ®æ®¤æ®ªæ®«æ®¯æ®²æ®±æ®³æ®·æ®¼æ¯æ¯æ¯æ¯æ¯¬æ¯«æ¯³æ¯¯?éº¾æ°æ°æ°æ°æ°¤æ°£æ±æ±æ±¢æ±ªæ²æ²æ²æ²æ²æ±¾æ±¨æ±³æ²æ²æ³æ³±æ³æ²½æ³æ³ æ³æ²®æ²±æ²¾æ²ºæ³æ³¯æ³æ³ªæ´è¡æ´¶æ´«æ´½æ´¸æ´æ´µæ´³æ´æ´æµ£æ¶æµ¤æµæµ¹æµæ¶æ¶æ¿¤æ¶ æ·¹æ¸æ¸æ¶µæ·æ·¦æ¶¸æ·æ·¬æ·æ·æ·¨æ·æ· æ·ºæ·æ·¤æ·æ·ªæ·®æ¸æ¹®æ¸®æ¸æ¹²æ¹æ¸¾æ¸£æ¹«æ¸«æ¹¶æ¹æ¸æ¹æ¸ºæ¹æ¸¤æ»¿æ¸æ¸¸æºæºªæºæ»æº·æ»æº½æº¯æ»æº²æ»æ»æºæº¥æ»æºæ½æ¼ç滬滸滾漿滲漱滯漲æ»???????????????????????????????????????????????????????????????????æ¼¾æ¼æ»·æ¾æ½ºæ½¸æ¾æ¾æ½¯æ½æ¿³æ½æ¾æ½¼æ½æ¾æ¾æ¿æ½¦æ¾³æ¾£æ¾¡æ¾¤æ¾¹æ¿æ¾ªæ¿æ¿æ¿¬æ¿æ¿æ¿±æ¿®æ¿ççæ¿ºçççæ¿¾ççæ½´çççç°ç¾ç²çç£ççç¯ç±ç¬ç¸ç³ç®ççç?ççç½ççç ¥ç çç ¦ç ¢ç ç ç ¬çç»ççç¨ç¬çç¹ç¾ççççç ç¬ç§çµç¼ç¹ç¿çççç¨çç¬ç°ç²ç»ç¼ç¿ççççç´ç¾çççççç¢ç§ç¹ç²çççççç¢ç ç¡ç¹ç·åçççççç´ç¯ç©ç¥ç¾ççé»ççªç¨ç°ç¸çµç»çºçç³çç»çç¥ç®çç¢ç ç¯ç¥ç¸ç²çºçç¿ççççç©ç°ç£çªç¶ç¾ççç§çççç±???????????????????????????????????????????????????????????????????ç ç£ç§ç©ç®ç²ç°ç±ç¸ç·ççç ççççççç¦ç¬ç¼çççççççç©ç¤ç§ç«çç¸ç¶ççç´ççççççç¥ç£çç³ççµç½ç¸ç¼ç±ççççç£çç¾ç¿?ç¼çç°çºç²ç³ççççç§ç ç¡ç¢ç¤ç´ç°ç»çççççç¡ç¢ç¨ç©çªç§ç¬ç°ç²ç¶ç¸ç¼çççççççççç°ç´ç¸ç¹çºçççççç¡ç¥ç§çªè¯ç»çççç©ç¤çç¥ç¦çç·ç¸ççç¨ç«çç¥ç¿ç¾ç¹çççç çç°ç¶ç¹ç¿ç¼ç½ç»çççççç£ç®ç¼ç ç 礦ç ç¤ªç¡ ç¢ç¡´ç¢ç¡¼ç¢ç¢ç¢£ç¢µç¢ªç¢¯ç£ç£ç£ç£ç¢¾ç¢¼ç£ ç£ç£¬???????????????????????????????????????????????????????????????????磧ç£ç£½ç£´ç¤ç¤ç¤ç¤ç¤¬ç¤«ç¥ç¥ ç¥ç¥ç¥ç¥ç¥ç¥ºç¥¿ç¦ç¦ç¦§é½ç¦ªç¦®ç¦³ç¦¹ç¦ºç§ç§ç§§ç§¬ç§¡ç§£ç¨ç¨ç¨ç¨ç¨ ç¨ç¦ç¨±ç¨»ç¨¾ç¨·ç©ç©ç©ç©¡ç©¢ç©©é¾ç©°ç©¹ç©½çªçªçªçªçªçª©ç«çª°?çª¶ç« ç«çª¿éç«ç«ç«ç«ç«ç«ç«ç«ç«ç«¡ç«¢ç«¦ç«ç«°ç¬ç¬ç¬ç¬ç¬³ç¬ç¬ç¬ç¬µç¬¨ç¬¶ççºç¬çç¬çç çµç¥ç´ç§ç°ç±ç¬ç®ç®ç®ç®ç®ç®ç®ç®ç®ç®çç®ç¯ç¯ç¯ç¯ç®´ç¯ç¯ç¯©ç°ç°ç¯¦ç¯¥ç± ç°ç°ç°ç¯³ç¯·ç°ç°ç¯¶ç°£ç°§ç°ªç°ç°·ç°«ç°½ç±ç±ç±ç±ç±ç±ç±ç±ç±¤ç±ç±¥ç±¬ç±µç²ç²ç²¤ç²ç²¢ç²«ç²¡ç²¨ç²³ç²²ç²±ç²®ç²¹ç²½ç³ç³ ç³ç³ç³ç³ç³¢é¬»ç³¯ç³²ç³´ç³¶ç³ºç´???????????????????????????????????????????????????????????????????ç´ç´ç´ç´çµ çµç´®ç´²ç´¿ç´µçµçµ³çµçµçµ²çµ¨çµ®çµçµ£ç¶ç¶çµç¶çµ½ç¶ç¶ºç¶®ç¶£ç¶µç·ç¶½ç¶«ç¸½ç¶¢ç¶¯ç·ç¶¸ç¶ç¶°ç·ç·ç·¤ç·ç·»ç·²ç·¡ç¸ ç¸ç¸£ç¸¡ç¸ç¸±ç¸ç¸ç¸ç¸¢ç¹ç¹¦ç¸»ç¸µç¸¹ç¹ç¸·?縲縺繧ç¹ç¹ç¹ç¹ç¹ç¹¹ç¹ªç¹©ç¹¼ç¹»çºç·ç¹½è¾®ç¹¿çºçºçºçºçºçºçºçºçºçºçºç¼¸ç¼ºç½ ç½ç½ç½ç½ç½ç½ç½ç½ç½ç½ 罨罩罧罸ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾£ç¾¯ç¾²ç¾¹ç¾®ç¾¶ç¾¸è±ç¿ ç¿ç¿ç¿ç¿ç¿¡ç¿¦ç¿©ç¿³ç¿¹é£èèèèèèèè¡è¨è¿è»èèèèèèè¢è¨è³è²è°è¶è¹è½è¿èèè èèèèåè¬èè¥èèèèèèè¯è±èè©è£è¯è ???????????????????????????????????????????????????????????????????éè è¾è è è¼è ±è ®è ¥è ¦è ´èèèèèè èè¤è£è èè©è°èµè¾è¸è½èèèºèèèèèèèèè è§èºè»è¾èèè èèèèèè©è«è¸è³èèèèèèè¤?è¢è¨èªè«è®è±è·è¸è¾èèè«èè»è¬è¡è£èèè´è³èºèèè»è¹èèèèèèµè´èè²è±èè¹èè è¯è«èèè èèªèè¢èè£èèèè¼èµè³èµè èè¨è´èè«èè½èèèèè·èè è²èè¢è è½è¸èè»èèªè¼èèè·è«èè®èè©èè¬è¯è¹èµèè¢è¹è¿èèèè»èèèèèè¡è¡è¿è´èèè¬èèèè¼èè£èè???????????????????????????????????????????????????????????????????èèèèèè¤èèèè¨èèèèªèèè·è¾èèèºèè¹èèèè¥èè¹èèèè¾èºèè¢èè°è¿èä¹èèè§è±èè£è©èªèèè¶è¯èèè°èè £è«èèè©è¬?èèè¯èèèèèè»èèèè¹èè´è¿è·è»è¥è©èè èè¸èèè´èè¨è®èèè£èªè è¢èèè¯èè½èèéè«èè³èèè»è¯è²è è è è¾è¶è·è èè è è è ¢è ¡è ±è ¶è ¹è §è »è¡è¡è¡è¡è¡è¡¢è¡«è¢è¡¾è¢è¡µè¡½è¢µè¡²è¢è¢è¢è¢®è¢è¢¢è¢è¢¤è¢°è¢¿è¢±è£è£è£è£è£è£è£¹è¤è£¼è£´è£¨è£²è¤è¤è¤è¤è¥è¤è¤¥è¤ªè¤«è¥è¥è¤»è¤¶è¤¸è¥è¤è¥ è¥???????????????????????????????????????????????????????????????????襦襤è¥è¥ªè¥¯è¥´è¥·è¥¾è¦è¦è¦è¦è¦è¦¡è¦©è¦¦è¦¬è¦¯è¦²è¦ºè¦½è¦¿è§è§è§è§è§§è§´è§¸è¨è¨è¨è¨è¨è¨è¨¥è¨¶è©è©è©è©è©è©¼è©è©¬è©¢èª èªèªèª¨èª¡èªèª¥èª¦èªèª£è«è«è«è«è««è«³è«§?諤諱è¬è« 諢諷è«è«è¬è¬è¬è«¡è¬è¬è¬è¬ 謳é«è¬¦è¬«è¬¾è¬¨èèèèèèèèè«èè¬è¯è´è½è®è®è®è®è®è®è®è®è°ºè±è°¿è±è±è±è±è±è±¢è±¬è±¸è±ºè²è²è² è²è²è²è²è±¼è²æè²è²ªè²½è²²è²³è²®è²¶è³è³è³¤è³£è³è³½è³ºè³»è´è´ è´è´è´è´è´é½è´è³è´è´èµ§èµèµ±èµ³è¶è¶è·è¶¾è¶ºè·è·è·è·è·è·è·ªè·«è·è·£è·¼è¸è¸è·¿è¸è¸è¸è¸è¹è¸µè¸°è¸´è¹???????????????????????????????????????????????????????????????????è¹è¹è¹è¹è¹è¹è¹¤è¹ 踪蹣è¹è¹¶è¹²è¹¼èºèºèº èºèºèºèºèºèºèºèºªèº¡èº¬èº°è»èº±èº¾è» è»è»è»è»£è»¼è»»è»«è»¾è¼è¼ è¼è¼è¼è¼è¼è¼è¼è¼è¼¦è¼³è¼»è¼¹è½ è½è¼¾è½è½è½è½è½è½?轢轣轤è¾è¾è¾£è¾è¾¯è¾·è¿è¿¥è¿¢è¿ªè¿¯éè¿´é 迹迺ééé¡ééééé§é¶éµé¹è¿¸ééééééé¾éééé¨é¯é¶é¨é²éé½éééééé¨é¯é±éµé¢é¤æééééé²é°é é é é £é ¥é ©é ³é ²éééé¢é«é¯éªéµé´éºéééééééé¡éé¼éµé¶éé¿éé¬ééééé éé¤ééé¿ééééééééé¹é·é©ééºéé®???????????????????????????????????????????????????????????????????éé¢éé£éºéµé»éé é¼é®éé°é¬ééé¹ééé¨é¥éééééé¤ééééééé¶é«éµé¡éºééééé é¢ééªé©é°éµé·é½éé¼é¾éé¿ééééééé?é é¨é§éé¼é»é¹é¾éæ¿¶éééééééé¡é¥é¢é¡é¨é®é¯ééééé·ééééé¦é²é¬éééééªé§é±é²é°é´é¶é¸é¹ééééè¥éééé¹éééééééééé¤éªé°é¹é½é¾ééééééé é¤é¦é¨åé«é±é¹é é¼ééºéééééé¨é¦é£é³é´ééééééé½é²ç«é¶éµé é é ¸é ¤é ¡é ·é ½é¡é¡é¡é¡«é¡¯é¡°???????????????????????????????????????????????????????????????????顱顴顳颪颯颱颶é£é£é£é£©é£«é¤é¤é¤é¤é¤é¤¡é¤é¤é¤¤é¤ 餬餮餽餾é¥é¥é¥ é¥é¥é¥é¥é¥é¥é¦é¦é¦¥é¦é¦®é¦¼é§é§é§é§é§é§é§®é§±é§²é§»é§¸é¨é¨é¨ é§¢é¨é¨«é¨·é© é©é©é©?騾é©é©é©é©é©é©¢é©¥é©¤é©©é©«é©ªéªéª°éª¼é«é«é«é«é«é«é«é«¢é«£é«¦é«¯é««é«®é«´é«±é«·é«»é¬é¬é¬é¬é¬¢é¬£é¬¥é¬§é¬¨é¬©é¬ªé¬®é¬¯é¬²éééééééé´é®é®é®é®é®é®é® 鮨鮴é¯é¯é®¹é¯é¯é¯é¯é¯£é¯¢é¯¤é¯é¯¡é°ºé¯²é¯±é¯°é°é°é°é°é°é°é°é°é°é°é°®é°é°¥é°¤é°¡é°°é±é°²é±é°¾é±é± 鱧鱶鱸鳧鳬鳰é´é´é³«é´é´é´ªé´¦é¶¯é´£é´éµé´é´éµé´¿é´¾éµéµ???????????????????????????????????????????????????????????????????éµéµéµ¤éµéµéµéµ²é¶é¶é¶«éµ¯éµºé¶é¶¤é¶©é¶²é·é·é¶»é¶¸é¶ºé·é·é·é·é·é·¸é·¦é·é·¯é·½é¸é¸é¸é¹µé¹¹é¹½éºéºéºéºéºéºéºéºéº¥éº©éº¸éºªéºé¡é»é»é»é»é»é»é»é»é» 黥黨黯?黴黶黷黹黻黼黽é¼é¼ç·é¼é¼¡é¼¬é¼¾é½é½é½é½£é½é½ 齡齦齧齬齪齷齲齶é¾é¾é¾ å ¯æ§éç¤åç???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????çºè¤ééèä¿ç»æ±æ£é¹æ»å½ 丨仡仼ä¼ä¼ä¼¹ä½ä¾ä¾ä¾ä¾ä¿åå¢ä¿¿ååå°ååå´åå å ¤åå¾å¬ååå¦ååååå¤å²åå²åï¨ååå©å¿ååå¥å¬ååï¨?ï¨å¢å¢²å¤å¥å¥å¥å¥£å¦¤å¦ºåå¯ç¯å¯å¯¬å°å²¦å²ºå³µå´§åµï¨åµåµå¶¸å¶¹å·å¼¡å¼´å½§å¾·å¿ææ ææææ æ²ææ·æ°æææ¦æµæ ææææææ»ææ®ææ¤æ¥ææï¨æ³ææ æ²æ¿æºæï¤©æ¦æ»æ¡ææ æ¡æ£ï¨æ¥¨ï¨æ¦æ§¢æ¨°æ©«æ©æ©³æ©¾æ«¢æ«¤æ¯æ°¿æ±æ²æ±¯æ³æ´æ¶æµ¯æ¶æ¶¬æ·æ·¸æ·²æ·¼æ¸¹æ¹æ¸§æ¸¼æº¿æ¾æ¾µæ¿µç çç¨ç ç«ççç ç ç ï¨çç¾ç±???????????????????????????????????????????????????????????????????ç¾ç¤ï¨ç·ç½ççç£çççµç¦çªç©ç®ç¢çççç¯ççççç¦ï¨çå¯ç ¡ç¡ç¡¤ç¡ºç¤°ï¨ï¨ï¨ç¦ï¨ç¦ç«ç«§ï¨ç««ç®ï¨çµçµç¶·ç¶ ç·ç¹ç½ç¾¡ï¨èè¢è¿èè¶èè´èè?è«ï¨è°ï¨ 﨡è 裵è¨è¨·è©¹èª§èª¾è«ï¨¢è«¶èè¿è³°è³´è´èµ¶ï¨£è»ï¨¤ï¨¥é§é都éé§ééééé®é¤é¥ééééºéé¼éééé¹é§é§é·é¸é§ééé﨧éé éé¥é¡é»ï¨¨éé¿ééé°éé¤ééé¸é±é ééï§ï¨©éé¯é³é»éééééé¡é¡¥ï¨ªï¨«é¤§ï¨¬é¦é©é«é«éµé²é®é®±é®»é°éµ°éµ«ï¨é¸é»??⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹¬¦ï¼ï¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹â ⠡⠢⠣⠤⠥⠦⠧⠨⠩¬¦ï¼ï¼ã±ââ¡âµçºè¤ééèä¿ç»æ±æ£é¹æ»å½ 丨仡仼ä¼ä¼ä¼¹ä½ä¾ä¾ä¾ä¾ä¿åå¢ä¿¿ååå°ååå´åå ?å ¤åå¾å¬ååå¦ååååå¤å²åå²åï¨ååå©å¿ååå¥å¬ååï¨ï¨å¢å¢²å¤å¥å¥å¥å¥£å¦¤å¦ºåå¯ç¯å¯å¯¬å°å²¦å²ºå³µå´§åµï¨åµåµå¶¸å¶¹å·å¼¡å¼´å½§å¾·å¿ææ ææææ æ²ææ·æ°æææ¦æµæ ææææææ»ææ®ææ¤æ¥ææï¨æ³ææ æ²æ¿æºæï¤©æ¦æ»æ¡ææ æ¡æ£ï¨æ¥¨ï¨æ¦æ§¢æ¨°æ©«æ©æ©³æ©¾æ«¢æ«¤æ¯æ°¿æ±æ²æ±¯æ³æ´æ¶æµ¯???????????????????????????????????????????????????????????????????æ¶æ¶¬æ·æ·¸æ·²æ·¼æ¸¹æ¹æ¸§æ¸¼æº¿æ¾æ¾µæ¿µç çç¨ç ç«ççç ç ç ï¨çç¾ç±ç¾ç¤ï¨ç·ç½ççç£çççµç¦çªç©ç®ç¢çççç¯ççççç¦ï¨çå¯ç ¡ç¡ç¡¤ç¡ºç¤°ï¨ï¨?ï¨ç¦ï¨ç¦ç«ç«§ï¨ç««ç®ï¨çµçµç¶·ç¶ ç·ç¹ç½ç¾¡ï¨èè¢è¿èè¶èè´èèè«ï¨è°ï¨ 﨡è 裵è¨è¨·è©¹èª§èª¾è«ï¨¢è«¶èè¿è³°è³´è´èµ¶ï¨£è»ï¨¤ï¨¥é§é都éé§ééééé®é¤é¥ééééºéé¼éééé¹é§é§é·é¸é§ééé﨧éé éé¥é¡é»ï¨¨éé¿ééé°éé¤ééé¸é±é ééï§ï¨©éé¯é³é»éééééé¡é¡¥ï¨ªï¨«é¤§ï¨¬é¦é©é«???????????????????????????????????????????????????????????????????é«éµé²é®é®±é®»é°éµ°éµ«ï¨é¸é»???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¿¢ó¿¢ 󿢡󿢢󿢣󿢤󿢥󿢦󿢧󿢨󿢩󿢪󿢫󿢬ó¿¢ó¿¢®ó¿¢¯ó¿¢°ó¿¢±ó¿¢²ó¿¢³ó¿¢´ó¿¢µó¿¢¶ó¿¢·ó¿¢¸ó¿¢¹ó¿¢ºó¿¢»ó¿¢¼ó¿¢½ó¿¢¾ó¿¢¿ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ 󿣡󿣢󿣣󿣤󿣥󿣦󿣧󿣨󿣩󿣪󿣫󿣬ó¿£ó¿£®ó¿£¯ó¿£°ó¿£±ó¿£²ó¿£³ó¿£´ó¿£µó¿£¶ó¿£·ó¿£¸ó¿£¹ó¿£ºó¿£»ó¿£¼???????????????????????????????????????????????????????????????????ó¿¥ó¿¥ó¿¥ó¿¥ó¿¥ó¿¥ ó¿¥ó¿¥ó¿¥ó¿¥??????ó¿¥ó¿¥ó¿¥??ó¿¥ó¿¥ó¿¥???ó¿¥ó¿¥ó¿¥ó¿¥???????????????????󿥲󿥳󿥴󿥵󿥶󿥷󿥸󿥹󿥺󿥻󿥼󿥽󿥾?ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ 󿦡󿦢󿦣󿦤󿦥󿦦󿦧󿦨󿦩󿦪󿦫󿦬ó¿¦ó¿¦®ó¿¦¯ó¿¦°????????????????????????????????????????????????????????????????????????????????ù§ù§Hù©¨áâ??????ø£?????????{|ùª«?¥£????????øøø÷øø´ù^????ùøÒ??~?????~?¨©øÓ?ùøÙùI??ùE??ù ?????øã?øè??£¥?øêøêøÑøâø¡?øä?øÎøäøäøä?øÖ?øßø ùwùzøØ?øÄ???øû??ùù}øêøê??ø¿????????ùE???????øê?øæ?øÐøä?ùR?ùs???øè?????øé????ùt?øÃùG??ø¼@ ?øàøáøü?ùùùùùùùùù10ø¤ø¢?????????????øÉ?øÏøÍ???øÈøÌ??øÁø¾?ø·ø¶?øº???ùP?????øì?ùH??????????øÔ?????ùF?????ùùù?ù¦ù¡ù¬?ùùùù£???ùù??øù??é?ù¢ù??¾??øëø×?ù??øÛ???Ezù{øí??UP?ø¥øµø¹????øå?øïøðøñøòøóøõøöù@??ùùù°ùù?ù«???ù????????ù?????ù?ù¬???????øã???VS???????????øÆøÇ?øÊøÂ???Tù|ówc????????????j???????????øîùùùùù?ø¸???????????????????ù???????????ùù??????????????????????????ø¦??????????øÊ?????????????Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????`anABøùøú?ùù¥ù¨ù©ù¯???????????????????????ù???????????????????ù????ùw??????????????ùw???ù????Ì??????ùw?øôù ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùùùùùùùùùù101112ùùùùùùùùù10cZðxNEÈwù`Áé´}ÅSn°????????ùE???????????????ùF???????ùHù???????????????????????øÀøÁø¼?ø¾øÃøÂ??øÐøËøÔ??øÓøÒøÑøÐ???ø×øÊøÊ???øØøÝ?????????????ø´ø·ø¹ø¶øµø¸??øÍøÌ?øÐ??øÇ?ùøÈ???øáøàøø ø¡ø¢ø£?©¨?ù~?????øôøõøöù?ùùøîøð???????????????????????????????????????????????????????????????????øñøïù©ù¨?????ù????????????øúøÕ??????øã?øû??øéøéøèøèø»ùt????ù^øâù øìøë?øÛ?øí?ùR?øêøä?øÖ?øÆ??ùwù??øÄøÅ?????????????????????ù£???????ùQù}???????????????øßøæ???ø¡???????ùV???????????tÄH~?ùùù??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ù ù ù ù øøøøùùùù?ùùù?????????????????????????????????????????????????????????ù ù??ùùùùùùùùùù10??-!%./:;?@^_'"{=~ùz?????????ù°NG¾ ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ??????????????????????????????????????????????????????????????????????????øùøù??????????????????????????????????????????????????????????????????ø¿ø¿?ùGøº??øÎ???øÉøÏøü?ø¤ø¦ùCùD????øÙø÷øøùIÌ???ùù§????ùù??????????????ùw?????????????øó??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????øø ø¡ø¢ø£ø¤ø¥ø¦ø§ø¨ø©øªø«ø¬øø®ø¯ø°ø±ø²ø³ø´øµø¶ø·ø¸ø¹øºø»ø¼ø½ø¾ø¿øÀøÁøÂøÃøÄøÅøÆøÇøÈøÉøÊøËøÌøÍøÎøÏøÐøÑøÒøÓøÔøÕøÖø×øØøÙøÚøÛøÜøÝøÞøßøàøáøâøãøäøåøæøçøèøéøêøëøìøíøîøïøðøñøòøóøôøõøöø÷øøøùøúøûøü???????????????????????????????????????????????????????????????????ù@ùAùBùCùDùEùFùGùHùI??????ùPùQùR??ùUùVùW???ù[ù\ù]ù^???????????????????ùrùsùtùuùvùwùxùyùzù{ù|ù}ù~?ùùùùùù ùùùùùùùùùùùùùùùùùùùùùùùùùùù ù¡ù¢ù£ù¤ù¥ù¦ù§ù¨ù©ùªù«ù¬ùù®ù¯ù°?????????ùQ???ùR????????ù¬ù¬ù?ù???ù??ù?NG????é??ù§ÖóÌ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùsùr?ù?ù¬??????ù ??øæ?ù???????????øÔ??ù?øßøíøí??øë???VSùQ??øº?????????ù¦ø£øÕ?øÏ???????øä????øÈøÎøÍ?øÏ?øÆøÉøÇøË?øÊøÁø¿??????????????????????????????????????????????øÏøÛ??jøà??ù£?øÖøåé?????????????øãùP?ùùùùùùùùùùù«~ù¡Hù§??????????????????????????????????????????????????????????????????????????øÂ?????øá?øü?øîøðøïøñù ùùUP?L³\???ùùùùùùùùùù¾Tù|ówc????ª«¨©øÙøøø÷ùI¨©âá?ø§ø¨ø©øªø«ø¬øø®ø¯ø°ø±ø²??ù°????ù§?i????????????????????????????????????????????ù¬?????ù????????????ùùù??øò?øó??????????????ø¹???øÀ??????ø¾??????ø¦??????ø¤???????????????????????????????????????????????????????????????ù????øâøèøéùt?ù¢??øôøõøöø¸øµø¶ø´?ø·??ø¿ùGøÃø¼ø¾Hù§ùù???????????????ùH??øÄ?øÅ?øÌ?ø×øØùù}???øÐ?øÑ?øÓø¢ø øø¡???ùF??ùE???ùùùù?????????????????????????????????????????????øØ??????????????????????????????????ùE???????`aABnøù????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¿¢ó¿¢ 󿢡󿢢󿢣󿢤󿢥󿢦󿢧󿢨󿢩󿢪󿢫󿢬ó¿¢ó¿¢®ó¿¢¯ó¿¢°ó¿¢±ó¿¢²ó¿¢³ó¿¢´ó¿¢µó¿¢¶ó¿¢·ó¿¢¸ó¿¢¹ó¿¢ºó¿¢»ó¿¢¼ó¿¢½ó¿¢¾ó¿¢¿ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ó¿£ 󿣡󿣢󿣣󿣤󿣥󿣦󿣧󿣨󿣩󿣪󿣫󿣬ó¿£ó¿£®ó¿£¯ó¿£°ó¿£±ó¿£²ó¿£³ó¿£´ó¿£µó¿£¶ó¿£·ó¿£¸ó¿£¹ó¿£ºó¿£»ó¿£¼???????????????????????????????????????????????????????????????????ó¿¥ó¿¥ó¿¥ó¿¥ó¿¥ó¿¥ ó¿¥ó¿¥ó¿¥ó¿¥??????ó¿¥ó¿¥ó¿¥??ó¿¥ó¿¥ó¿¥???ó¿¥ó¿¥ó¿¥ó¿¥???????????????????󿥲󿥳󿥴󿥵󿥶󿥷󿥸󿥹󿥺󿥻󿥼󿥽󿥾?ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ó¿¦ 󿦡󿦢󿦣󿦤󿦥󿦦󿦧󿦨󿦩󿦪󿦫󿦬ó¿¦ó¿¦®ó¿¦¯ó¿¦°ó¿¦±ó¿¦²ó¿¦³ó¿¦´ó¿¦µó¿¦¶ó¿¦·ó¿¦¸ó¿¦¹ó¿¦ºó¿¦»ó¿¦¼ó¿¦½ó¿¦¾ó¿¦¿ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ó¿§ 󿧡󿧢󿧣󿧤󿧥󿧦󿧧󿧨󿧩󿧪󿧫󿧬ó¿§ó¿§®ó¿§¯ó¿§°ó¿§±ó¿§²ó¿§³ó¿§´ó¿§µó¿§¶ó¿§·ó¿§¸ó¿§¹ó¿§ºó¿§»ó¿§¼????ùÜù§Hù©¨áâ???ùû??ø£????????ùÄ{|ùª«?¥£????????øøø÷øø´ù^?ù¸??ùøÒùæù×~?ùÁùÁ??~?¨©øÓ?ùÏøÙùIùÀ?ùE??ù ùô??ùÖùÛøã?øè??£¥?øêøêøÑøâø¡?øä?øÎøäøäøä?øÖ?øßø ùwùzøØ?øÄùè??øû??ùù}øêøê??ø¿???????ùìùE???????øêùÕøæ?øÐøä?ù¾?ùsù½??ñf?????øé????ùt?øÃùG??ø¼@ ?øàøáøü?ùùùùùùùùù10ø¤ø¢?????????????øÉ?øÏøÍ???øÈøÌ?ùÂøÁø¾?ø·ø¶ù·øº???ùP?????øì?ùHùí???ùï?ùçùö?ùîøÔùö?ùù??ùFùõ?ùú??ùÏùùÒ?ù¦ù¡ù¬ùÍùùùù£???ùù??øù??ùÙ?ù¢ù??¾?ùÌøëø×?ù??øÛùµ??Ezù{øí??UP?ø¥øµø¹????øå?øïøðøñøòøóøõøöù@??ùùù°ùù?ù«??ùñù??ù»????ùåù?????ùËùüùÇ??ù¿????øã???VS???????????øÆøÇùãøÊøÂ???Tù|ùàùÞwc??????????ùð?j???????????øîùùùùù?ø¸?ùÃùò?????????ùê??????ù???????????ùùÏ??????????????????????????ø¦??????????øÊ?????????????Â??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùö?ùö????????`anABøùøú?ùù¥ù¨ù©ù¯???ùé???????????????????ù???????????????????ùÉ????ùw??????????????ùw???ùùôù¶ù¼ùÚùáùâùäùë??ùøùw?øôù ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùùùùùùùùùù101112ùùùùùùùùù10cZðxNEÈwù`ÁùÙ´}ÅSn°?????ùù??ùE???????????????ùF?ùöùö????ùHùùè?ùí??ùêùé????????????????øÀøÁø¼?ø¾øÃøÂùÂ?øÐøËøÔùñùðøÓøÒøÑøÐ???ø×øÊøÊ???øØøÝ??ùå??????????ø´ø·ø¹ø¶øµø¸ù·?øÍøÌ?øÐ??øÇ?ùøÈ??ùãøáøàøø ø¡ø¢ø£?©¨ùâù~ùÚ????øôøõøöù?ùùøîøð???????????????????????????????????????????????????????????????????øñøïù©ù¨?????ùùæ??????ù³?ù¶??øúøÕ??????øã?øû?ùÀøéøéøèøèø»ùtù»???ù^øâù øìøë?øÛ?øí?ù¾?øêøä?øÖùÕøÆ?ù¼ùwù??øÄøÅ????ù¹????????????????ù£?????ù¿ùÀùºù}???????????????øßøæùµ??ø¡???????ùV???ùï???????tÄH~ùÓùÏùÒù??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùØùØùØùØ????????????????????ùùùùùùùùù ù ù ù øøøøùùùù?ùùù?????????????????????????????????????????????????????????ù ù??ùùùùùùùùùù10??-!%./:;?@^_'"{=~ùz?????????ù°ùÔ¾ ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ??????????????????????????????????????????????????????????????????????????øùøù??????????????????????????????????????????????????????????????????ø¿ø¿?ùGøºùî?øÎ???øÉøÏøü?ø¤ø¦ùCùD????øÙø÷øøùIùá???ùù§????ùù??????????????ùw?????????????øó??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????øø ø¡ø¢ø£ø¤ø¥ø¦ø§ø¨ø©øªø«ø¬øø®ø¯ø°ø±ø²ø³ø´øµø¶ø·ø¸ø¹øºø»ø¼ø½ø¾ø¿øÀøÁøÂøÃøÄøÅøÆøÇøÈøÉøÊøËøÌøÍøÎøÏøÐøÑøÒøÓøÔøÕøÖø×øØøÙøÚøÛøÜøÝøÞøßøàøáøâøãøäøåøæøçøèøéøêøëøìøíøîøïøðøñøòøóøôøõøöø÷øøøùøúøûøü???????????????????????????????????????????????????????????????????ù@ùAùBùCùDùEùFùGùHùI??????ùPùQùR??ùUùVùW???ù[ù\ù]ù^???????????????????ùrùsùtùuùvùwùxùyùzù{ù|ù}ù~?ùùùùùù ùùùùùùùùùùùùùùùùùùùùùùùùùùù ù¡ù¢ù£ù¤ù¥ù¦ù§ù¨ù©ùªù«ù¬ùù®ù¯ù°ù±ù²ù³ù´ùµù¶ù·ù¸ù¹ùºù»ù¼ù½ù¾ù¿ùÀùÁùÂùÃùÄùÅùÆùÇùÈùÉùÊùËùÌùÍùÎùÏùÐùÑùÒùÓùÔùÕùÖù×ùØùÙùÚùÛùÜùÝùÞùßùàùáùâùãùäùåùæùçùèùéùêùëùìùíùîùïùðùñùòùóùôùõùöù÷ùøùùùúùûùü??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùsùrùÍùËùüùÇ??ùú??ù¿ù ùæ?øæ?ùùØ??ùì???????øÔ??ù?øßøíøí??øë???VSùº??øº?????????ù¦ø£øÕ?øÏ???????øä????øÈøÎøÍ?øÏ?øÆøÉøÇøËùãøÊøÁø¿?????????????????????????????????????????ùè????øÏøÛùð?jøà??ù£?øÖøåùÙ??????ùµ??????øãùPù¸ùùùùùùùùùùù«~ù¡Hù§ùÃùò??????ùñ?ùî??ùê????????????????????????????????????????????????????????????øÂ?????øá?øü?øîøðøïøñù ùùUP?L³\???ùùùùùùùùùù¾Tù|ùàùÞwc????ª«¨©øÙøøø÷ùI¨©âá?ø§ø¨ø©øªø«ø¬øø®ø¯ø°ø±ø²??ù°ùÖùÛ??ùÜ?i????????????????????????????????????????????ùÈ???ùÎùÐùùÓ???????????ùÏùÏù??øò?øó??????????????ø¹???øÀ??????ø¾??????ø¦?ùä????ø¤???????????????????????????????????????????????????????????????ù??ù³?øâøèøéùtù»ù¢ùÌ?øôøõøöø¸øµø¶ø´?ø·ùöùùø¿ùGøÃø¼ø¾Hù§ùù????????????ùí??ùHùÀùÀøÄ?øÅ?øÌùåø×øØùù}???øÐ?øÑùïøÓø¢ø øø¡???ùF??ùE?ùöùõùÏùùÒù?????????????????????????????????????????????øØ????????????????????????ùö?ùöùô??????ùE???????`aABnøùù×?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿬡󿬢󿬣󿬤󿬥󿬦󿬧󿬨󿬩󿬪󿬫󿬬ó¿¬ó¿¬®ó¿¬¯ó¿¬°ó¿¬±ó¿¬²ó¿¬³ó¿¬´ó¿¬µó¿¬¶ó¿¬·ó¿¬¸ó¿¬¹ó¿¬ºó¿¬»ó¿¬¼ó¿¬½ó¿¬¾ó¿¬¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿º??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¿°¡ó¿°¢ó¿°£ó¿°¤ó¿°¥ó¿°¦ó¿°§ó¿°¨ó¿°©ó¿°ªó¿°«ó¿°¬ó¿°ó¿°®ó¿°¯ó¿°°ó¿°±ó¿°²ó¿°³ó¿°´ó¿°µó¿°¶ó¿°·ó¿°¸ó¿°¹ó¿°ºó¿°»ó¿°¼ó¿°½ó¿°¾ó¿°¿ó¿±ó¿±ó¿±ó¿±ó¿±ó¿± ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿±ó¿± 󿱡󿱢󿱣󿱤󿱥󿱦󿱧󿱨󿱩󿱪󿱫󿱬ó¿±ó¿±®ó¿±¯ó¿±°ó¿±±ó¿±²ó¿±³ó¿±´ó¿±µó¿±¶ó¿±·ó¿±¸ó¿±¹ó¿±º??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¿´¡ó¿´¢ó¿´£ó¿´¤ó¿´¥ó¿´¦ó¿´§ó¿´¨ó¿´©ó¿´ªó¿´«ó¿´¬ó¿´ó¿´®ó¿´¯ó¿´°ó¿´±ó¿´²ó¿´³ó¿´´ó¿´µó¿´¶ó¿´·ó¿´¸ó¿´¹ó¿´ºó¿´»ó¿´¼ó¿´½ó¿´¾ó¿´¿ó¿µó¿µó¿µó¿µó¿µó¿µ ó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µó¿µ 󿵡󿵢󿵣󿵤󿵥󿵦󿵧󿵨󿵩󿵪󿵫󿵬ó¿µó¿µ®ó¿µ¯ó¿µ°ó¿µ±ó¿µ²ó¿µ³ó¿µ´ó¿µµó¿µ¶ó¿µ·ó¿µ¸ó¿µ¹ó¿µº??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Fr$GA$G@p$F[$FZ$F]$F\???$Eb?$E]?????????{|$FR$FS?¥£????????$FW$FX$Gj??$Gl??$G"$GB?$E0?~?????~?$FT$FU$Gg?$Gv$FV$FY$GU?$Gr??$E/??$G!$Fn$Fo$E>?$G)??£¥?$Eh?$Ge$G($Gk?$Eh?$En$Eh$Eh$Eh???$EE$Gi$E#$G]?$GV??$EI???$E4$G_$Eh$Eh??$Ez???$E!???$E8$Gr?????$FP$FQ$Eh?$E2?$Gc$Eh???$E#???$G)?????$G*????$G+?$G=$G<??$G>@ ??$F($F*$F)$F<$F=$F>$F?$F@$FA$FB$FC$FD10?$Gh?????????????$Et?$Eq$Eo$Ep$Ek?$Em$GZ??$Ey$G???$G5$G3$ER$ED?????$ES?$EP??$GS$GP$E;??$Gf??$G9??$E@$Gt?$G:$E)?$Go$Gu?$E+??$Gw$Gy$Gx?$E\$Gy$E($E%$GC$GB?$E=?$El$GB$G#$E,??$E:?é?$G-???$FF$E<$G.$EJ$G\?$G^$Ga?$G^?$E3?Ez?$EF??$F3$E[?$G4???????$F.$F-$F/??$G1$G2????$FE$Fm?$GB?$E(???$F2??$G,$EH?$GW?$G[$G^$Gn$Gp$Gq$Gs?$E&$E'$E($E*$E-$E.$E1$E6$E7$E9$E>$EA$EB$EM$EN$EQ???$EW$E_?$Ef?$Ej?$Es$Eu$Ew$Ex$F"$F'$F+$F4$FG$FH$FI$FJ$FK$FL$FM$FN$FO?$Fp$Fq???????j???????????$F,$GB$GB$GB$GB$GB?$G3???????????????????$Gx???????????$G^$Gv??????????????$Gb??????????????????????$Ex$Gm????????????Â???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$EZ??$G9?$G9????????`anAB?????!?!!`???????????????$G7???????????????????????????$Gy????$E#??????????????$E#$F!??$GB????Ì??????$E#?$G0$F0?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD101112$F<$F=$F>$F?$F@$FA$FB$FC$FD10$FMZðxNEÈ$FLp`Áé´}ÅSn°$Gs$Gp???$G:$E)?$Gr???????????????$Go?$Gt$G9$E*???$GS???$GP$E9???????$G$$G%??$G!$G"$EZ??$E,$Gn$E:$Ez$Ey$G>$F!$G?$G=$F"??$Gc$Ev$E@??$Gg?$Ge$Gc???$G\$Ex$Ex?$ED?$G]???$G[???$El$ES$EM$ET$EV$EU????$G5$G4$G3$G3?$Eo$GZ$Ep$Gc??$Eu$EA$EC$Em??$Ew$F(?$Gj$Gi$Gk$Gh$E]?$F[$FZ???$FQ$FP$FO$FN$G0$G1$G2$G#$E<$GB$GB$F,$F-???????????????????????????????????????????????????????????????????$F/$F.!!!??????$G^$E0???$G&??$G&?????$E^??????$E>???$GT$G*$G*$G)$G)?$G+$G,????$G($E/?$EJ$EH$G^?$EF$E-??$Eh$Eh???$Es??$E#$E4??$GV$GX$GW???????????????????$E3??????$E.$GU$EO$G_$Ed?$E6?????????$Ga?$Eb$EE$E2???$Gk????????$Gz??$Gf???????tÄH~?$Gw$Gx$Gy??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E5$E5$E5$E5????????????????????$G:$G:$G:$G:$E/$E/$E/$E/$Gj$Gj$Gj$Gj$GC$GC$GC$GC?$Gw$Gw$Gw?????????????????????????????????????????????????????????$F0$FE??$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD10??-!%./:;?@^_'"{=~?????????$FmNG$FF$FG ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$G$$G%???$Ez$Ez?$G<$ER??$En???$Et$Eq$F*?????????$FV$FX$FW$FYÌ???$F2$GA??$F)?$GB$F1??????????????$E#????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Gj$Gi$Gk$Gh$E]???$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj??$G4$G5?$G3?$ER?$G>?$G?$Ez$Ez$Ey$F"$G=$GV$GX$Es$Eu$Em$Et$Ex$Ev$GZ$Eo$En$Eq$Gc$Ge?$Gg$E@$E^?$G\$G]$FV?$G^???$EE?$F($G($E>$Eh?$E2?$G)$G*$Eh$EJ?$EF$F,$F.$F-$F/??$G0$G1$G2$FX$FW???$F*????????????????????????????????????????????????????????????????????????$Gr$Go$G<$GS$FY??????????????????ON?????????????????????$E$$E#$G+$E#???$FI$G_???$E4$F2?$F1$F0p$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$GB$GB$GC$GB$Gw$Gy$Gx$Gx??$G^$EC?$G#?$E/$Gy$G-???$E\$GA!?!!?$E($E(?``$Fm??$G&???$G3??$EO$G,???$E.$GT??????$E($E($Gy?$E&$G.$E%?$Gw??$Gx?NG?$Fn?$E5é?$Fo$FrÖ$FK$FJÌ?$Ew?$G[$E0?????$E8$GP?$Gf?????$Gu$G9??$G:$E+?$E'????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E!$E"$E#$E$$E%$E&$E'$E($E)$E*$E+$E,$E-$E.$E/$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$E:$E;$E<$E=$E>$E?$E@$EA$EB$EC$ED$EE$EF$EG$EH$EI$EJ$EK$EL$EM$EN$EO$EP$EQ$ER$ES$ET$EU$EV$EW$EX$EY$EZ$E[$E\$E]$E^$E_$E`$Ea$Eb$Ec$Ed$Ee$Ef$Eg$Eh$Ei$Ej$Ek$El$Em$En$Eo$Ep$Eq$Er$Es$Et$Eu$Ev$Ew$Ex$Ey$Ez??????????????????????????????????????????????$E`$G^??j???????é?$Eb???????????$E>??$G^$GB$GB$GB$GB$GB$GB$GB??$E(~$Gy$G@$GA?????????????????????????????????????????????????????????????????????????$F!$F"$F#$F$$F%$F&$F'$F($F)$F*$F+$F,$F-$F.$F/$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$F:$F;$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$FF$FG$FH$FI$FJ$FK$FL$FM$FN$FO$FP$FQ$FR$FS$FT$FU$FV$FW$FX$FY$FZ$F[$F\$F]$F^$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj$Fk$Fl$Fm$Fn$Fo$Fp$Fq$Fr$Fs$Ft$Fu$Fv$Fw$Fx$Fy$Fz??????????????????????????????????????$E(?????$Gx????????????$Gv$Gw$Gy???????????????????????$Ez??????$G????????$GW?????????$E9?$Gm???????????????????????????????????????????????????????$G!$G"$G#$G$$G%$G&$G'$G($G)$G*$G+$G,$G-$G.$G/$G0$G1$G2$G3$G4$G5$G6$G7$G8$G9$G:$G;$G<$G=$G>$G?$G@$GA$GB$GC$GD$GE$GF$GG$GH$GI$GJ$GK$GL$GM$GN$GO$GP$GQ$GR$GS$GT$GU$GV$GW$GX$GY$GZ$G[$G\$G]$G^$G_$G`$Ga$Gb$Gc$Gd$Ge$Gf$Gg$Gh$Gi$Gj$Gk$Gl$Gm$Gn$Go$Gp$Gq$Gr$Gs$Gt$Gu$Gv$Gw$Gx$Gy$Gz????????????????????????????????????????????$G]??????????????????$EZ?????$G9?$G9?????$E)?$Gr???????`aABn???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿮡󿮢󿮣󿮤󿮥󿮦󿮧󿮨󿮩󿮪󿮫󿮬ó¿®ó¿®®ó¿®¯ó¿®°ó¿®±ó¿®²ó¿®³ó¿®´ó¿®µó¿®¶ó¿®·ó¿®¸ó¿®¹ó¿®ºó¿®»ó¿®¼ó¿®½ó¿®¾ó¿®¿ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ó¿¯ 󿯡󿯢󿯣󿯤󿯥󿯦󿯧󿯨󿯩󿯪󿯫󿯬ó¿¯???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿲡󿲢󿲣󿲤󿲥󿲦󿲧󿲨󿲩󿲪󿲫󿲬ó¿²ó¿²®ó¿²¯ó¿²°ó¿²±ó¿²²ó¿²³ó¿²´ó¿²µó¿²¶ó¿²·ó¿²¸ó¿²¹ó¿²ºó¿²»ó¿²¼ó¿²½ó¿²¾ó¿²¿ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ó¿³ 󿳡󿳢󿳣󿳤󿳥󿳦󿳧󿳨󿳩󿳪󿳫󿳬????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿶡󿶢󿶣󿶤󿶥󿶦󿶧󿶨󿶩󿶪󿶫󿶬ó¿¶ó¿¶®ó¿¶¯ó¿¶°ó¿¶±ó¿¶²ó¿¶³ó¿¶´ó¿¶µó¿¶¶ó¿¶·ó¿¶¸ó¿¶¹ó¿¶ºó¿¶»ó¿¶¼ó¿¶½ó¿¶¾ó¿¶¿ó¿·ó¿·ó¿·ó¿·ó¿·ó¿· ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·ó¿·???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Fr$GA$G@p$F[$FZ$F]$F\???$O7?$E]?????????{|$OO$FR$FS?¥£????????$FW$FX$Gj??$Gl$OE?$G"$GB?$E0$QW~?????$OS?$FT$FU$Gg?$P4$OO$FV$FY$GU?$Gr$Pk?$E/$QC?$G!$Fn$Fo$OC?$G)??£¥$Q,$Eh$O!$Ge$G($Gk$PK$Eh?$En$Eh$Eh$Eh?$O3?$EE$Gi$E#$G]?$GV$O$?$EI???$E4$G_$Eh$Eh?$O:$Ez???$E!???$E8$QJ?????$FP$FQ$Eh?$E2?$Gc$Eh$PO??$E#???$G)?????$G*????$G+?$G=$G<??$G>@ ?$O.$F($F*$F)$F<$F=$F>$F?$F@$FA$FB$FC$FD10$Pc$Gh?????????????$Et?$Eq$Eo$Ep$Ek?$Em$GZ??$Ey$G???$G5$G3$ER$ED??$OD?$Q)$ES?$EP??$GS$GP$E;$Q+$Oh$Gf??$G9$Og$Ob$E@$Gt$QL$G:$E)$QQ$Go$Gu?$E+$O'$O%$P5$P6$Gx?$E\$OT$E($E%$GC$GB$OO$O1$E=?$El$OI$G#$E,?$QV$E:?$O5?$G-$OP??$FF$E<$G.$EJ$G\?$G^$Ga?$O*$O<$E3$O>Ez?$EF$O9?$F3$E[?$G4$PJ????$O4$Ok$F.$F-$F/$P9$P;$G1$G2????$FE$Fm?$GB?$OQ??$O`$F2??$G,$EH?$GW$PT$G[$G^$Gn$Gp$Gq$Gs?$E&$E'$E($E*$E-$E.$E1$E6$E7$E9$E>$EA$EB$EM$EN$EQ?$Q1$Q2$EW$E_?$Ef?$Ej?$Es$Eu$Ew$Ex$F"$F'$F+$F4$FG$FH$FI$FJ$FK$FL$FM$FN$FO?$Fp$Fq$O!$O"$O#$O&$O($O+$O,$O-?$O0$O2?$O8$O;$O=$O?$O@$OA$OB$F,$OG$OJ$OK$OL$OM?$G3?$OX$OY$OZ$O[$O\$O]$O^$O_$Oa$Oc$Od$Oe$Of$Oi$Oj$Ol?$P"$P'?????$P/??$P.??$OF$Gv?$P8$P:$P<?$P?$P@$PA$P>???$PE$PI$Gb$PL$PM$PP$PQ$PR$PS$PV$PX??$P[$P\?$P_$P`$Pa$Pb?$Pf$Ph$Pk$Pl$Ex$Pi$Q#$Q$$Q%$Q&?$Q-??????Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Q.$Q/$Q0$Q3$Q4$Q5$Q6$Q7??$Q:$Q;$Q<$Q@?$QB$QE$QF$QG$QK?$QA?$QP$QR$QS$QU$QT$QV????!?!!`???????????????$G7????????$OZ??????????????????$Gy????$E#??????????????$E#$F!??$OH$QC???Ì?$P^????$E#?$G0$F0?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD101112$F<$F=$F>$F?$F@$FA$FB$FC$FD10$FMZðxNEÈ$FLp`Á$O5´}ÅSn°$Gs$Gp$QL?$QM$G:$E)$QN$Gr$QO??????????????$Go$QF$Gt$Q@$E*???$GS?$O$$O%$GP$E9$Of$Oe?$Og???$G$$G%??$G!$G"$Q:?$Ph$E,$Gn$E:$PN$Ey$G>$F!$G?$G=$F"??$Gc$Ev$E@$O`$O+$Gg?$Ge$Gc?$Od?$G\$Ex$Ex?$ED?$G]???$G[???$El$ES$EM$ET$EV$EU???$PJ$G5$G4$G3$G3?$Eo$GZ$Ep$Gc??$Eu$EA$EC$Em??$Ew$F($O.$Gj$Gi$Gk$Gh$E]?$F[$FZ???$FQ$FP$FO$FN$G0$G1$G2$G#$E<$GB$GB$F,$F-???????????????????????????????????????????????????????????????????$F/$F.!!!??????$G^$E0$QE$PY?$G&??$G&?????$E^?$O"?$Q#??$OC???$GT$G*$G*$G)$G)?$G+$G,????$G($E/?$EJ$EH$O*?$EF$E-??$Eh$Eh?$O3?$Es??$E#$E4??$GV$GX$GW$Q&??????????????????$E3$O1?????$E.$GU$EO$G_$Ed?$E6???$OZ?????$Ga?$O7$EE$E2$O<??$Gk??$O]?????$Gz??$Gf???$O,?$O2?tÄH~$P($P5$Gx$P6??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E5$E5$E5$E5????????????????????$G:$G:$G:$G:$E/$E/$E/$E/$Gj$Gj$Gj$Gj$GC$GC$GC$GC?$Gw$Gw$Gw?????????????????????????????????????????????????????????$F0$FE??$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD10??-!%./:;?@^_'"{=~$OR?????????$FmNG$FF$FG ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ??????????????????????????????????????????????????????????????????????????$QV$QV?????????????????????????????????????????????????????????$QQ???$G$$G%???$Ez$Ez?$G<$ER$Ob?$En???$Et$Eq$F*?$Pc$P\??$Pk???$FV$FX$FW$FYÌ???$F2$OW??$F)?$GB$F1??????????????$E#?????????????$P;??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Gj$Gi$Gk$Gh$E]$Pc?$P\$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj??$G4$G5?$G3$PJ$ER?$G>?$G?$Ez$PN$Ey$F"$G=$GV$GX$Es$Eu$Em$Et$Ex$Ev$GZ$Eo$En$Eq$Gc$Ge?$Gg$E@$E^$O3$G\$G]$FV?$O*???$EE$O.$F($G($OC$Eh$O4$E2?$G)$G*$Eh$EJ?$EF$F,$F.$F-$F/$P9$P;$G0$G1$G2$FX$FW$QV??$F*????????????????????????????????????????????????????????????????????????$Gr$Go$G<$GS$FY??????$OD???????????ON?????????????????????$E$$E#$G+$E#???$FI$G_???$E4$F2?$F1$F0p$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$GB$GB$GC$GB$Gw$P6$Gx$P'??$G^$EC?$G#$ON$E/$OT$G-$O1??$E\$OW!?!!?$OQ$E($OP``$Fm??$G&?$O<?$G3$OE?$EO$G,???$E.$GT??$OX???$E($P!$Gy?$E&$G.$E%$P%$P5$P&?$Gx$P(NG?$Fn$QW$E5$O5?$Fo$FrÖ$FK$FJÌ?$Ew$P^$G[$E0?$O$?$Oe?$E8$GP$Ob$Gf$O+$O`$OY?$QC$Gu$G9??$G:$E+?$E'????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E!$E"$E#$E$$E%$E&$E'$E($E)$E*$E+$E,$E-$E.$E/$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$E:$E;$E<$E=$E>$E?$E@$EA$EB$EC$ED$EE$EF$EG$EH$EI$EJ$EK$EL$EM$EN$EO$EP$EQ$ER$ES$ET$EU$EV$EW$EX$EY$EZ$E[$E\$E]$E^$E_$E`$Ea$Eb$Ec$Ed$Ee$Ef$Eg$Eh$Ei$Ej$Ek$El$Em$En$Eo$Ep$Eq$Er$Es$Et$Eu$Ev$Ew$Ex$Ey$Ez??????????????????????????????????????$O!$O"$O#$O$$O%$O&$O'$O($O)$O*$O+$O,$O-$O.$O/$O0$O1$O2$O3$O4$O5$O6$O7$O8$O9$O:$O;$O<$O=$O>$O?$O@$OA$OB$OC$OD$OE$OF$OG$OH$OI$OJ$OK$OL$OM$ON$OO$OP$OQ$OR$OS$OT$OU$OV$OW$OX$OY$OZ$O[$O\$O]$O^$O_$O`$Oa$Ob$Oc$Od$Oe$Of$Og$Oh$Oi$Oj$Ok$Ol$Om???????????????????????????????????????????????????$F!$F"$F#$F$$F%$F&$F'$F($F)$F*$F+$F,$F-$F.$F/$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$F:$F;$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$FF$FG$FH$FI$FJ$FK$FL$FM$FN$FO$FP$FQ$FR$FS$FT$FU$FV$FW$FX$FY$FZ$F[$F\$F]$F^$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj$Fk$Fl$Fm$Fn$Fo$Fp$Fq$Fr$Fs$Ft$Fu$Fv$Fw$Fx$Fy$Fz??????????????????????????????????????$P!$P"$P#$P$$P%$P&$P'$P($P)$P*$P+$P,$P-$P.$P/$P0$P1$P2$P3$P4$P5$P6$P7$P8$P9$P:$P;$P<$P=$P>$P?$P@$PA$PB$PC$PD$PE$PF$PG$PH$PI$PJ$PK$PL$PM$PN$PO$PP$PQ$PR$PS$PT$PU$PV$PW$PX$PY$PZ$P[$P\$P]$P^$P_$P`$Pa$Pb$Pc$Pd$Pe$Pf$Pg$Ph$Pi$Pj$Pk$Pl????????????????????????????????????????????????????$G!$G"$G#$G$$G%$G&$G'$G($G)$G*$G+$G,$G-$G.$G/$G0$G1$G2$G3$G4$G5$G6$G7$G8$G9$G:$G;$G<$G=$G>$G?$G@$GA$GB$GC$GD$GE$GF$GG$GH$GI$GJ$GK$GL$GM$GN$GO$GP$GQ$GR$GS$GT$GU$GV$GW$GX$GY$GZ$G[$G\$G]$G^$G_$G`$Ga$Gb$Gc$Gd$Ge$Gf$Gg$Gh$Gi$Gj$Gk$Gl$Gm$Gn$Go$Gp$Gq$Gr$Gs$Gt$Gu$Gv$Gw$Gx$Gy$Gz??????????????????????????????????????$Q!$Q"$Q#$Q$$Q%$Q&$Q'$Q($Q)$Q*$Q+$Q,$Q-$Q.$Q/$Q0$Q1$Q2$Q3$Q4$Q5$Q6$Q7$Q8$Q9$Q:$Q;$Q<$Q=$Q>$Q?$Q@$QA$QB$QC$QD$QE$QF$QG$QH$QI$QJ$QK$QL$QM$QN$QO$QP$QQ$QR$QS$QT$QU$QV$QW$QX$QY??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾?ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾ó¿¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼???????????????????????????????????????????????????????????????????ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ó¿ ¡ó¿ ¢ó¿ £ó¿ ¤ó¿ ¥ó¿ ¦ó¿ §ó¿ ¨ó¿ ©ó¿ ªó¿ «ó¿ ¬ó¿ ó¿ ®ó¿ ¯ó¿ °ó¿ ±ó¿ ²ó¿ ³ó¿ ´ó¿ µó¿ ¶ó¿ ·ó¿ ¸ó¿ ¹ó¿ ºó¿ »ó¿ ¼ó¿ ½ó¿ ¾?ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾ó¿¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿?????????????????????????????????????????????????????????????????????????????????????????????????????????ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾?ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«????ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾ó¿¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿?????????ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼???????????????????????????????????????????????????????????????????ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾?ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿ºó¿»ó¿¼ó¿½ó¿¾ó¿¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ ó¿¡ó¿¢ó¿£ó¿¤ó¿¥ó¿¦ó¿§ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯ó¿°ó¿±ó¿²ó¿³ó¿´ó¿µó¿¶ó¿·ó¿¸ó¿¹ó¿º?????????????????????????????????????????????????????????????????????ó¿ó¿ó¿ó¿ó¿ó¿ ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿ó¿????????????????????????????????????????????????ó¿???ó¿ó¿ ó¿ó¿ó¿ó¿ó¿?ó¿ó¿ó¿?ó¿???ó¿ó¿ó¿?ó¿ó¿ó¿ó¿ó¿???ó¿ ó¿¡ó¿¢ó¿£ó¿¤???ó¿¨ó¿©ó¿ªó¿«ó¿¬ó¿ó¿®ó¿¯????ó¿´ó¿µ??????ó¿¼ó¿½ó¿¾?????ó¿ó¿ ??ó¿???ó¿????????????????????????????????????????????????????ô©ô©Hð_ðëðìáâ???ñ´òÄ?ðé?????????òÐ|ª«?¥£????????ô¢ô¡ðåðÎñm??ñððùð³ñJ?òÒô¼????~ô½¨©ð²òÓññÓô ô£ñ£?ðsô?ño??ð??ñ^?ñe?ñ³£¥?ñyñyð´ñnñº?ñz?ôñzñzñzô¼ñ|ññµðæñòÕð¿?ñ ð??ñ`??ññ¥ñyñyñ©?ô?ôªô«?????ðsñk?ñ??ðñððñyñ}ñ¶?ðµñz?ñw?ñ???ñe?ñ{ñ{?ñ°ñdôµ???ñh?ð©ô??ð¦@ ?ðäðãôô¬ðMðNðOðPðQðRðSðTðUðVôðèðuðvðwðxðyðzð{ð|ð~ðððð}ô?ôðÖðØ?ðÚðßð×?ð«ð¥ð¨?ðÏðÑðÔôð½???ðÅ?ðÈ??ñp?ðð???ñÆ??ððôð¯ð ðmðpðqôð????ðñÓñÕñÔ??ñÕ???ðúñ?ñDðÇðùð÷ð¡?ôEð£?ðb?ðô???òáðø?ñqð¹?ñIñ²?ñsñ·ñ?Ez?ñu??UP??ðÒðÐ??????ñAðüñ@?ôÌðõðö????ò²òß?ô®????ð°ô¨??ñiñr?ñ?ðÃñIð¢ðl?ðk?ðú??ðñvñ¢ð÷ñ¨?ðñ^ðÝ?ðÉVS??????????ðàñ~ðÜðâðºðª???òâTIDóð^ðWðóðò????ñY???ð±ñÊjñ¸?ñÌ????????ðûðùðùðùðùðù?ðÓ??????ñ½????ð·ðð?????????????????ñIñÓ??????????????????????????ô???????ð ô?ð»?ñ[??ñ????????Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ððð??ððÂðñKð??????`anABôEñV???ñCñB`??ðð?????????ðn?????????ðñ¬??ññ¯??????????????ñÕ????ñ??????????ðÕ???ñð§??ðù?ñSñðïô¤ðí?????ñ?ðôò±?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ð@ðAðBðCðDðEðFðGðHðIðJðKðLðMðNðOðPðQðRðSðTðUðVðWðXðYðZð[ð\ð]ð^ð_ð`ðaðbðcðdðeðfðgðhðiðjðkðlðmðnðoðpðqðrðsðtðuðvðwðxðyðzð{ð|ð}ð~?ðððððð ððððððððððððððððððððððððððð ð¡ð¢ð£ð¤ð¥ð¦ð§ð¨ð©ðªð«ð¬ðð®ð¯ð°ð±ð²ð³ð´ðµð¶ð·ð¸ð¹ðºð»ð¼ð½ð¾ð¿ðÀðÁðÂðÃðÄðÅðÆðÇðÈðÉðÊðËðÌðÍðÎðÏðÐðÑðÒðÓðÔðÕðÖð×ðØðÙðÚðÛðÜðÝðÞðßðàðáðâðãðäðåðæðçðèðéðêðëðìðíðîðïðððñðòðóðôðõðöð÷ðøðùðúðûðü???????????????????????????????????????????????????????????????????ñ@ñAñBñCñDñEñFñGñHñIñJñKñLñMñNñOñPñQñRñSñTñUñVñWñXñYñZñ[ñ\ñ]ñ^ñ_ñ`ñañbñcñdñeñfñgñhñiñjñkñlñmñnñoñpñqñrñsñtñuñvñwñxñyñzñ{ñ|ñ}ñ~?ññññññ ñññññññññññññññññññññññññññ ñ¡ñ¢ñ£ñ¤ñ¥ñ¦ñ§ñ¨ñ©ñªñ«ñ¬ññ®ñ¯ñ°ñ±ñ²ñ³ñ´ñµñ¶ñ·ñ¸ñ¹ñºñ»ñ¼ñ½ñ¾ñ¿ñÀñÁñÂñÃñÄñÅñÆñÇñÈñÉñÊñËñÌñÍñÎñÏñÐñÑñÒñÓñÔñÕñÖ?????????????????????????????????????????????????????????????????????????????????????????????????????????ò@òAòBòCòDòEòFòGòHòIòJòKòLòMòNòOòPòQòRòSòTòUòVòWòXòYòZò[ò\ò]ò^ò_ò`òaòbòcòdòeòfògòhòiòjòkòlòmònòoòpòqòròsòtòuòvòwòxòyòzò{ò|ò}ò~?òòòòòò òòòòòòòòòòòòòòòòòòòòòòòòòòò ò¡ò¢ò£ò¤ò¥ò¦ò§ò¨ò©òªò«????ò°ò±ò²ò³ò´òµò¶ò·ò¸ò¹òºò»ò¼ò½ò¾ò¿òÀòÁòÂòÃòÄòÅòÆòÇòÈòÉòÊòËòÌòÍòÎòÏòÐòÑòÒòÓòÔòÕ?????????òßòàòáòâòãòäòåòæòçòèòéòêòëòìòíòîòïòðòñòòòóòôòõòöò÷òøòùòúòûòü???????????????????????????????????????????????????????????????????ó@óAóBóCóDóEóFóGóHóIóJóKóLóMóNóOóPóQóRóSóTóUóVóWóXóYóZó[ó\ó]ó^ó_ó`óaóbócódóeófógóhóiójókólómónóoópóqórósótóuóvówóxóyózó{ó|ó}ó~?óóóóóó óóóóóóóóóóóóóóóóóóóóóóóóóóó ó¡ó¢ó£ó¤ó¥ó¦ó§ó¨ó©óªó«ó¬óó®ó¯ó°ó±ó²ó³ó´óµó¶ó·ó¸ó¹óºó»ó¼ó½ó¾ó¿óÀóÁóÂóÃóÄóÅóÆóÇóÈóÉóÊóËóÌóÍóÎóÏóÐóÑóÒóÓóÔóÕóÖó×óØóÙóÚóÛóÜóÝóÞóßóàóáóâóãóäóåóæóçóèóéóêóëóìóíóîóïóðóñóòóóóôóõóöó÷óøóùóú?????????????????????????????????????????????????????????????????????ô@ôAôBôCôDôEôFôGôHôIôJôKôLôMôNôO????????????????????????????????????????????????ô???ôô ôôôôô?ôôô?ô???ôôô?ôôôôô???ô ô¡ô¢ô£ô¤???ô¨ô©ôªô«ô¬ôô®ô¯????ô´ôµ??????ô¼ô½ô¾?????ôÄôÅ??ôÈ???ôÌ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ðåðæñºðèðéô?ôðuðvðwðxðyðzð{ð|ð~ððð?ðÎðÒðÑðÏðÓðÐôñgð¦?ð¨ôð¤ð¥ðªð©ñ ññ~ðÜðßôðºð®ð×ðÖôôðµð´ð³ð²ð¯ñWñ|ð¹ð¿ô ?ñs?ðÀ?ñµðäðãñnñ^ñz?ñ¶?ñeñdñyñqñpñuðûñAðüñ@?ôÌðôðõðöô¡ô¢ôEñVñ`ô??????????????????????????????????????????????????????????????????????ôôðsðôðô£????????ñw???ñÂ?????ON?ñm???????????????????ñcññhñ??òÕ?IDñ¥ðî??ñô¨?ô¯ò±ð_ò¶ò·ò¸ò¹òºò»ò¼ò½ò¾òµðùô®?ðúñÓñÕñÔ???ñIðÞðð÷?ñoñÕðôñ???ô©ñCñB????``òß??ñO?ñ·ñSðÔ?ññ¤ñiñ?ñwñ¢ñb?ð«??????ñÕ?ðú???ñÓ??ñÔñÒòàñ}??òLðbðï?ô©Öóô¤ðíðâ?ðÃñJ?ððð??ðôñÆð±ð°????ð??ðp?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ññc?ðú??ðqð?ð¡ñvñ¢ñoñJð÷ñ¶ññòLñ¨??ðð£?ðø???ð¯ðÝ?ðÞð½ñµñuñuñr?ñq??ðÉVSñ¤??ôðÈðÊðÌðË??????ðéñW?ôñ´ñ´?ñ¦???ñz???ðÇðßôðÖðØô?ñ~ôðÜð®ðâðºð¥ô???????????????????????????????????????ñY?ðð???ôñsð±ñÊjðä??ññÌñ|?ðb?ñ´????ñ·??????ñ^??ñIðùðùðùðùðùðùðù???òÔ~ñÕHô©?????ñ½??ð°?ô?ð·ððð?????????????????????????????????????????????????????????ð§ðª?????ðãô¬ô?ðûðüñAñ@ò±ô¯ô¨UP?L?\???ðMðNðOðPðQðRðSðTðUò²òáòâTIDóð^ðWðóðòðñð𪫨©ô ô¢ô¡ô£ðìðëâá?ðuðvðwðxðyðzð{ð|ð~ðððð}?òß????ô©?i???????????????????????????????????????????????????ñÒ???????????ñÓñÓñÕ????ôÌ??????????????ðÐ???ð¤??????ð¨???ñL??ôñ?????ô????ð ??ô?????????????????????????????????????????????????????ððð÷ððñO?ñnñeñdñhñiðô??ðôðõðöðÓðÒðÑðÎ?ðÏððpð¤ôð©ð¦ð¨Hô©ðù?????????????ð??ðñbñ£ñ ññ?ð×ðÃð¹ð¿ñIñ¥?ñ²?ðµ?ð´ñÆð²ðèðæðåñº??ð¢ððl?ðsðkð ?ñÓñÓñÔñÕñÃ????????????????????????????????????????ñ[??ñð¿??????????????????ð?????ð?ð??ñKð?ðq?ðs?ðmðoðrðt?ô`aABnôE?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ????????????#????? ??????L?S???VS???????????????©???TIDówc????????????j???????????333333?????????????????????????????????#D???????????????????????????????????K??????????????Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ö?ö????????`anAB????!?!!`??????????????????????????????????????????????l??????????????l???3N???Ì??????l???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????E´µ¶·¸¹º»¼½1112´µ¶·¸¹º»¼½cZðxNEÈw`Á´}ÅSn°??÷??øù?J?ÀÁÂÃÄÅÆÇÌÈ?ÉÊËû?öö????êqë????ó???????P2????}ج?Ù¨©×?Îõ??A4]???!???ß?n?????ã?å?????-Û3Ü2?Ý?ÐÕÑÓ????Ô???±°,k_¿???????@3 3;???????????????????????????????????????????????????????????????????<:!!!?????#5????????????|??????S?t?H¡¡U?¦???.^Mè ?&?,??[ah???lwC1p?????????????????????(??????Hx??{?????? ?$Wj'??_?????????m?ï???????tÄH~???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????øøøøMMMM,,,, ???????????????????????????????????????????????????????????E??E´µ¶·¸¹º»¼½??-!%./:;?@^_'"=7Bm?????????FNG ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ú????????}}?©Þô?c???Íϲ?¾???K???F+*GÌ????³?H??????¢??????g>l?????????????>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,k_¿¾1?ÀÁÂÃÄÅÆÇÈÉÊË?-2ÜÛ?3Þ?¬?Ù}}Ø©¨p???ÔÍ?ÎÕÐcÏ]4Aõ|h!nF?&???j°±^Sa8?U¡[ è,3:;<=>?@+*?t²???????????????????????????????????????????????????????????????????A????Jû©êG??????â??????????ON?.???????????????????¡¦?l??m+IDx??Dw????´µ¶·¸¹º»¼E3H ?G?#??M??!?!!?J``F????'?Ý0????H9×???? ????NGQ6??RÖóÌ????5ñq??? ëôï????Nüö??øþ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¡ ?ù?þ??M5?(w??L ?ì??õ???ßj,,?s ???VSç?Þå???????0|?Ï????a??ÒÔcÐÑÏ??Í?Î??Ø}?????????????????????????????????????????q?ÿ?Ï&??j°???h8??-|?'?)????Sâ0#333333?EJ=E??????????ô????óî??9??????????????????????????????????????????????????????©?????±³²?3;:<???/?L³\???´µ¶·¸¹º»¼ETIDówc???@F*+G?ÀÁÂÃÄÅÆÇÈÉÊËÌ?FQR???i??????????????????????????????????????????????????????????????D??=?>??????????????3`??}?????Ù?????????????¾???????K?????????????????????????????????????????????????????P2????^U¡¦???@?2Ü-?Ûöø}©¨¬Ù3 ????????????ë??êHHp???Õ?!n#x?$??]ïA¿k,_/??û??J?öüD?????????????????????????????????????????????n?ä?íZ???????????????????ö?öN????ù??÷????ú`aABn6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ¡ó¾ ¢ó¾ £ó¾ ¤ó¾ ¥ó¾ ¦ó¾ §ó¾ ¨ó¾ ©ó¾ ªó¾ «ó¾ ¬ó¾ ó¾ ®ó¾ ¯ó¾ °ó¾ ±ó¾ ²ó¾ ³ó¾ ´ó¾ µó¾ ¶ó¾ ·ó¾ ¸ó¾ ¹ó¾ ºó¾ »ó¾ ¼ó¾ ½ó¾ ¾ó¾ ¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ ? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ !"#$%&'()*+,-./0123456?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????E´µ¶·¸¹º»¼½1112´µ¶·¸¹º»¼½ ZðxNEÈ`Á´}ÅSn°[Y÷í?øù?J?ÀÁÂÃÄÅÆÇÌÈ?ÉÊËûÍöÉ`???ê÷qëf³²ãóâ????ÄÅP2Æ?éX}ج Ù¨{×?ÎõMA4]?±?!zì?ß?n??ÊV?ã?åj????-Û3Ü2¥ÝÐÕÑÓ?xh?Ôv?y±°,k_¿?)?'1?@3 3;???????????????????????????????????????????????????????????????????<:ÞÝ????W5Ì???????%??Ù|??î??S?t?H¡¡U?¦Q??.^Mè R&?,a?[ahw?&lwC1p?Tñ??????????????????(?????bHx?d{??øû?ü ?$W j'?_??¬??????m?ï?????tÄH~???????????????????????????????????????????????????????????????????????????????????????????????????????????????????ÊÊÊÊ????????????????????????øøøøMMMM,,,, ??????????????????????????????????????????????????????????2E??E´µ¶·¸¹º»¼½??-!%./:;?@^_'"=7Bm?????????FNG ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ú????????}}?©Þô?c???Íϲ?¾á??K???F+*G(???N³?H??????¢??????g>l?????????????>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,k_¿¾1áÀÁÂÃÄÅÆÇÈÉÊË?-2ÜÛ¥3Þ?¬?Ù}}Ø{¨p?wxÔÍzÎÕÐcÏ]4Aõ|h!nF?&???j°±^Sa8?U¡[ è,3:;<=>1?@+*Ùt²???????????????????????????????????????????????????????????????????A????Jû©êG??????â??????????ON?.???????????????????¡¦?l??m+x??DwN??2´µ¶·¸¹º»¼E3H ¹GÛW?÷?M?ÜÝÞ?J`ßF????'%Ý0?Q&bH9×§??_?]????NGQ6?'RÖ()y*V5ñqã²+ ëôïM¨?Nüö?.øþ^?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¡]^_ù`þabM5c(w?de fì ??õhi?ßj,,Rs ??jkçlÞå???p???0|qÏ ??s?a?uÒÔcÐÑÏ?wÍxÎyzØ}??????????????????????????????????????qÿÏ&°?h8? -|')Sâ0Å# ¡¢£?EJ=E§¨©ª«¬®M¯ô°±²³óî´µ9¶???????????????????????????????????????????????????? {????|±³²}3;:<2?N/~L³\???´µ¶·¸¹º»¼E ?@F*+G?ÀÁÂÃÄÅÆÇÈÉÊËÌ?FQR?i????????????????????????????????????????????¸????¹??????¿????D?È=É>Ê?ÏÌÍÎ???Ó???Ô3`Ö×}ØÙÚÛUÙÜ?Ý??àáT*ãäåæ¾??è?éísKë????????????????????????????????????????????????????P2????^U¡¦Q?1?@¥2Ü-ïÛöø}©¨¬Ù3 ????????????ë??êHHpT??ÕV!nWx?$Õ?]ïA¿k,_/íXûYZJ[öüÆ?????????????????????????????????????????îïðñn?ä?íZó¼½¾no¿ÀÁÂÃ??ÆÇÈ???ÉÑËN?ÌÍÎù?Ï÷???ÓúÔÕ×Ö6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¾ó¾¾ó¾£ó¾ó¾ó¾ó¾¥ó¾¦ó¾¶ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ºó¾°ó¾±ó¾²ó¾³ó¾ó¾ó¾ó¾¢ó¾¿ó¾ó¾ó¾¬ó¾¯ó¾¼ó¾ ó¾ó¾«ó¾§ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ªó¾ºó¾ó¾ó¾ó¾ó¾ó¾ó¾?ó¾ó¾ó¾ó¾ó¾°ó¾ó¾ó¾ó¾ó¾ó¾½ó¾ó¾¨ó¾©ó¾¬ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾ó¾´ó¾ó¾ ó¾§ó¾¨ó¾©ó¾ªó¾ªó¾«ó¾¬ó¾ó¾®ó¾ ó¾ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾ó¾ó¾ó¾¿ó¾ó¾±ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾²ó¾ó¾ó¾ó¾´ó¾ó¾ó¾£ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾ó¾°ó¾µó¾ó¾ó¾¨ó¾®ó¾·ó¾¸ó¾¼ó¾ó¾ó¾ó¾ó¾¥ó¾¦ó¾¬ó¾´ó¾µ???????????????????????????????????????????????????????????????????ó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¶ó¾·ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾µó¾¶ó¾ó¾ó¾±ó¾¸ó¾»?ó¾ó¾ó¾¡ó¾¤ó¾¥ó¾¦ó¾§ó¾©ó¾¹ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾¿ó¾ó¾ó¾ªó¾«ó¾ó¾ó¾¹ó¾ó¾ó¾¯ó¾²ó¾³ó¾»ó¾¾ó¾ó¾ó¾ó¾ó¾ó¾¡ó¾¢ó¾¤ó¾«ó¾ó¾®ó¾¯ó¾ó¾ó¾ó¾ó¾ó¾®ó¾³ó¾ó¾ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëYëZë[ìHìIìJìKìLìMìNìOëëêìë^ë_ìPìQìRìSìTìUìVìWììXìYìZì[ì\ì]ì^ì_ì`ìaìbìcìdìeìfìgìhìië`ëì±ëaëëì|ëÓì²ëëììjìkì}ìëTì~ëbìlìmìnìoëìpìëÔëcìqìrëíìsë¸ë@ëDëNë¹ì¬ëÕìtìuëtìì³ëÖììvìwìëuìì´ëîëdëìë\ëBììì ìëïìëvëeëúìëðìëë½ììë×ìxìyëñëòìëwìëóëìììëôì ììzë§ëºì¡ì{ìëõì¢ëØëÙìëxë¨ëöë ìëëyì£ì®ì¤ì¯ì°ë÷ëìëzìëì¥ì¦ëÚì§ëøëùëfëëë¡ì¨ëì©ìªì«ëUëVëWëXëûëüì@ìAìBìCìDìEìFìGëAë]ëgëhëiëjëkëlëmënëoëpëqërësë{ë|ë}ë~ëëëëììëëëëCëëëëëEëëëëëëFëGëëë ë¢ë£ë¤ë¥ë¦ë©ëªë«ë¬ëë®ë¯ëHë°ë±ë²ë³ë´ëµë¶ë·ë»ë¼ëIëJëKëLëMë¾ë¿ëÀëOëPëQëRëSëÁëÂëÃëÄëÅëÆëÇëÈëÉëÊëËëÌëÍëÎëÏëÐëÑëÒëÛëÜëÝëÞëßëàëáëâëãëäììëåëæëçëèëéìµì¶ì·ì¸ì¹ìºì»ì¼ì½ì¾ì¿ìÀìÁìÂìÃìÄìÅìÆìÇìÈìÉìÊìËìÌìÍìÎ????????????ëÞ?????ëP?ë¿?????ëD?ët???VS???????????????ë???TIDówc????????????j???????????ì²ì²ì²ì²ì²ì²?????????????????????????????????ëÞëÔ???????????????????????????????????ë@???????ë???????Â????????ì°?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëH?ëH????????`anABëÇ????!?!!`???????????????????????ëÉ???????????????????ëJ????ëú??????????????ëú???ì²ë¹???Ì??????ëú?ëÌ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ìÉëûëüì@ìAìBìCìDìEìFìG1112ëûëüì@ìAìBìCìDìEìFìGcZðxNEÈwìH`ÁëÊ´}ÅSn°??ë°??ë±ë²?ë¸?ëgëhëiëjëkëlëmënësëo?ëpëqërë´?ëHëH????ë¢ëÉë½ë¼ë£????ë???????ëÕëÓ???ëÅ?ëÈëëë?ëëëë?ë ë|ë¯??ëëì´ë ???ëÜ???ëE?ëð?????ë?ëÂëF?????ëëì·ëì¶?ë?ë~ìëë ë????ë???ëVëUë`ëeëdë]ë_?ìIìJ???ëÙëØ??ëÌìÃìÄëÄëÑì²ëPì²ì¿???????????????????????????????????????????????????????????????????ìÀì¾!!!?ëÁ????ëÞëì????????????ëó??????ët?ë×?ëíì¥ì¥ì³ë÷?ëù??ì¡?ì±ëîëNëëÛ?ëá?ëå?ëy?ëuìëzëïëx???ëúëñìì|ë?????????????????????ëãëR??????ëíìëòëõ??ì??????ë?ëßìëêëvë¨ëâ??ëd?????????ì?ë©???????tÄH~?ëIëKëJ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ë±ë±ë±ë±ëNëNëNëNë`ë`ë`ë`ëOëOëOëO?ëIëIëI??????????????????????????????????????????????????????????ìÉ??ìÉëûëüì@ìAìBìCìDìEìFìG??-!ì%./:;?@^_'"ìX=ìkìpì?????????ìÊNGëÐ ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ??????????????????????????????????????????????????????????????????????????ëÇëÇ?????????????????????????????????????????????????????????ë³????????ëë?ëëë®?ëB???ë{ë}ëW?ëA???ë@???ìqìiìhìrÌ????ëZììëX?ìÌ??????ì¦??????ììmëú?????????????ìÂ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ë`ëeëdë]ë_ëAìµ?ëgëhëiëjëkëlëmënëoëpëqër?ëì¶ëë?ì·ë?ë?ëëëëëëë???ëë{?ë|ìë~ëBë}ë ì´ëëë¯ëóëïëÜëðìq?ëá???ëvëUëVëîëtìì¼ë¨?ì³ì¥ëuëÛëëåì²ì¾ì¿ìÀìÁìÂëÌìÃìÄìiìhëÇ?ë×ëW???????????????????????????????????????????????????????????????????ìÅ????ë¸ë´ëë¢ìr??????ë?ëy?????????ON?ì±???????????????????ì¥ì®ëù?ëú??ììIDëò??ìÈëñ????ìHëûëüì@ìAìBìCìDìEìFìÉì²ìÌëOëPëIëJëK?ìË?ëÞ?ëÉëÄ?ëNë¾ëÌëR??ëMëZ!?!!?ìÎë¿ëÍ``ìÊ????ëâ?ëëë?ì??ì¤ëy?ëíìë?ì??ë¿ë¿ëJ?ëPëÒëÀ?ëI??ëK?NGëxìtìj?ëÊ?ìuëYÖóÌ????ëìë«ë½???ë§ë£ë®ë©????ë¹ëµëH??ë±ë·ë?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëô?ì®ì¥ëÀëP?ë¿ë²?ë·ëÅ??ëNëì?ë¨ëãëñ??ëDë§?ëÈë¤ëÑëS??ë¯???ëEëvëåëå?ìëÛ???VSìë?ëëF???????ëéëMë_ëó?ë}ëêëê?ëõ???ì??ëëÂëëBë~ëë}??ë{?ë|??ëë?????????????????????????????????????????ë½ë¼?ë»?ë}ëá??jëU??ëR?ëïì¼ëÊ?ëê?ëæëó?ëâ?ëä????ëtëëëëÞì²ì²ëÃì²ì²ì²ì²?ëcëÍìÎìlë¾ëcë[ëZ??????????ë®????ëë¦??ì½??????????????????????????????????????????????????????ë?????ëVëXëW?ì²ì¿ì¾ìÀ???ëè?L³\???ëûëüì@ìAìBìCìDìEìFìÉëÐTIDówc??ëØëÙì[ì\ìnìoìqìhìiìrìJìIìLìK?ëgëhëiëjëkëlëmënëoëpëqërës?ìÊìtìu??ëY?i????????????????????????????????????????????ë¿??????????????????ëÔëIëJ??ìÁ?ìÂ??????????????ì·ë??ëë?????ë?????????????ëA???????ë@?????????????????????????????????????????????????????ëÕëÓëÄ????ëîì³ì¥ëù?ëÌëÒ?ëÌìÃìÄ?ì¶ëë?ëëHë±ëëëëëë[ëZì²ëO????????????ë£??ë¢ëíëíë???ì?ëÜëðëÞëò?ëß?ë ?ì´ë©ëë]ëeë`ëdëa??ë´??ë¸?ëHëµëÔëIëKëJ?????????????????????????????????????????????ëð?ë?ë¥ì???????????????????ëH?ëHë¹????ë²?ëº?ë°????ë³`aABnëÇìj????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ó¾ó¾¾ó¾£ó¾ó¾ó¾ó¾¥ó¾¦ó¾¶ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ºó¾°ó¾±ó¾²ó¾³ó¾ó¾ó¾ó¾¢ó¾¿ó¾ó¾ó¾¬ó¾¯ó¾¼ó¾ ó¾ó¾«ó¾§ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ªó¾ºó¾ó¾ó¾ó¾ó¾ó¾ó¾?ó¾ó¾ó¾ó¾ó¾°ó¾ó¾ó¾ó¾ó¾ó¾½ó¾ó¾¨ó¾©ó¾¬ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾ó¾´ó¾ó¾ ó¾§ó¾¨ó¾©ó¾ªó¾ªó¾«ó¾¬ó¾ó¾®ó¾ ó¾ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾ó¾ó¾ó¾¿ó¾ó¾±ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾²ó¾ó¾ó¾ó¾´ó¾ó¾ó¾£ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾ó¾°ó¾µó¾ó¾ó¾¨ó¾®ó¾·ó¾¸ó¾¼ó¾ó¾ó¾ó¾ó¾¥ó¾¦ó¾¬ó¾´ó¾µ???????????????????????????????????????????????????????????????????ó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¶ó¾·ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾µó¾¶ó¾ó¾ó¾±ó¾¸ó¾»?ó¾ó¾ó¾¡ó¾¤ó¾¥ó¾¦ó¾§ó¾©ó¾¹ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾¿ó¾ó¾ó¾ªó¾«ó¾ó¾ó¾¹ó¾ó¾ó¾¯ó¾²ó¾³ó¾»ó¾¾ó¾ó¾ó¾ó¾ó¾ó¾¡ó¾¢ó¾¤ó¾«ó¾ó¾®ó¾¯ó¾ó¾ó¾ó¾ó¾ó¾®ó¾³ó¾ó¾ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ó¾ ¡ó¾ ¢ó¾ £ó¾ ¤ó¾ ¥???????????????????????????????????????????????????????????????????ó¾ ¦ó¾ §ó¾ ¨ó¾ ©ó¾ ªó¾ «ó¾ ¬ó¾ ó¾ ®ó¾ ¯ó¾ °ó¾ ±ó¾ ²ó¾ ³ó¾ ´ó¾ µó¾ ¶ó¾ ·ó¾ ¸ó¾ ¹ó¾ ºó¾ »ó¾ ¼ó¾ ½ó¾ ¾ó¾ ¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤?ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨ó¾©???????????????????????????????????????????????????????????????????ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶ó¾·ó¾¸ó¾¹ó¾ºó¾»ó¾¼ó¾½ó¾¾ó¾¿ó¾ó¾ó¾ó¾ó¾ó¾ ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ó¾ ó¾¡ó¾¢ó¾£ó¾¤ó¾¥ó¾¦ó¾§ó¾¨?ó¾©ó¾ªó¾«ó¾¬ó¾ó¾®ó¾¯ó¾°ó¾±ó¾²ó¾³ó¾´ó¾µó¾¶???????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëYëZë[ìHìIìJìKìLìMìNìOëëêìë^ë_ìPìQìRìSìTìUìVìWììXìYìZì[ì\ì]ì^ì_ì`ìaìbìcìdìeìfìgìhìië`ëì±ëaëëì|ëÓì²ëëììjìkì}ìëTì~ëbìlìmìnìoëìpìëÔëcìqìrëíìsë¸ë@ëDëNë¹ì¬ëÕìtìuëtìì³ëÖììvìwìëuìì´ëîëdëìë\ëBììì ìëïìëvëeëúìëðìëë½ììë×ìxìyëñëòìëwìëóëìììëôì ììzë§ëºì¡ì{ìëõì¢ëØëÙìëxë¨ëöë ìëëyì£ì®ì¤ì¯ì°ë÷ëìëzìëì¥ì¦ëÚì§ëøëùëfëëë¡ì¨ëì©ìªì«ëUëVëWëXëûëüì@ìAìBìCìDìEìFìGëAë]ëgëhëiëjëkëlëmënëoëpëqërësë{ë|ë}ë~ëëëëììëëëëCëëëëëEëëëëëëFëGëëë ë¢ë£ë¤ë¥ë¦ë©ëªë«ë¬ëë®ë¯ëHë°ë±ë²ë³ë´ëµë¶ë·ë»ë¼ëIëJëKëLëMë¾ë¿ëÀëOëPëQëRëSëÁëÂëÃëÄëÅëÆëÇëÈëÉëÊëËëÌëÍëÎëÏëÐëÑëÒëÛëÜëÝëÞëßëàëáëâëãëäììëåëæëçëèëéìµì¶ì·ì¸ì¹ìºì»ì¼ì½ì¾ì¿ìÀìÁìÂìÃìÄìÅìÆìÇìÈìÉìÊìËìÌìÍìÎìÏìÐìÑìåìæìçìèìéìêìëìììíìîìïìðìñìòìóìôìõìöì÷ìøìùìúìûìüí@íAíBíCíDíEíFíGíHíIíJíKíLíMíNíOíPíQíRíSíTíUíVíWíXíYíZí[í\í]í^í_í`íaíbícídíeífígíhíiíjíkílímíníoípíqírísítíuívíwíxíyízí{í|í}í~íííííí ííííííííííííííííííííííííííí í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬íí®í¯í°í±í²í³í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇíÈíÉíÊíËíÌíÍíÎìÒìÓìÔìÕìÖì×ìØìÙìÚìÛìÜìÝìÞìßìàìáìâìãìä?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????íÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛíÜíÝíÞíßíàíáíâíãíäíåíæíçíèíéíêíëíìíííîíïíðíñíòíóíôíõíöí÷íøíùíúíûíüî@îAîBîCîDîEîFîGîHîIîJîKîLîMîNîOîPîQîRîSîTîUîVîWîXîYîZî[î\î]î^î_î`îaîbîcîdîeîfîgîhîiîjîkîlîmînîoîpîqîrîsîtîuîvîwîxîyîzî{î|î}î~îîîîîî îîîîîîîî?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ìÉëûëüì@ìAìBìCìDìEìFìG1112ëûëüì@ìAìBìCìDìEìFìGí_ZðxNEÈí^ìH`ÁëÊ´}ÅSn°ìòìðë°îC?ë±ë²?ë¸?ëgëhëiëjëkëlëmënësëo?ëpëqërë´íàëHíÜì÷???ë¢îMë½ë¼ë£í@íííöëíõ????í×íØëÕëÓíÙ?íÄëÅìïëÈëëëîvëëíUë?ë ë|ë¯ìÑíjëëì´ë ?í?ëÜíTíÇ?ëE?ëð??íÝìí?ë?ëÂëFíD????ëëì·ëì¶íëîqë~ìëë ë?íRíB?ëíP?íSëVëUë`ëeëdë]ë_?ìIìJî?î}ëÙëØíaí`îìÃìÄëÄëÑì²ëPì²ì¿???????????????????????????????????????????????????????????????????ìÀì¾íñíðëÁ????ìîëìíß???????î{??íìëó?íf?íÉ??ët?ë×?ëíì¥ì¥ì³ë÷?ëùìè?ì¡?ì±ëîëNëëÛìéëá?ëåìøëy?ëuìëzëïëxíQ?î|ëúëñìì|ë?ìëíÌ??????????????????ëãëR?????ìùëíìëòëõ?ìûì??îNîQ?îRë?ëßìëêëvë¨ëâím?ëd??í??????ì?ë©???ík?ío?tÄH~?ëIëKëJ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????íÝíÝíÝíÝ????????????????????????ë±ë±ë±ë±ëNëNëNëNë`ë`ë`ë`ëOëOëOëO?ëIëIëI?????????????????????????????????????????????????????????îìÉ??ìÉëûëüì@ìAìBìCìDìEìFìG??-!ì%./:;?@^_'"ìX=ìkìpì?????????ìÊNGëÐíY ???????????????????????????????????????????????????????????????????`abcdefghijklmnopqrstuvwxy ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃ?ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëíðñ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ??????????????????????????????????????????????????????????????????????????ëÇëÇ?????????????????????????????????????????????????????????ë³????????ëë?ëëë®?ëB???ë{ë}ëW?ëAí¼??ë@???ìqìiìhìrî~???ìåëZììëX?ìÌ??????ì¦??????ììmëú?????????????ìÂ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ë`ëeëdë]ë_ëAìµí¼ëgëhëiëjëkëlëmënëoëpëqër?ëì¶ëëíì·ë?ë?ëëëëíUëë?íQíRëë{íTë|ìë~ëBë}ë ì´ëëë¯ëóëïëÜëðìq?ëá???ëvëUëVëîëtìì¼ë¨?ì³ì¥ëuëÛëëåì²ì¾ì¿ìÀìÁìÂîìÃìÄìiìhëÇíìë×ëW???????????????????????????????????????????????????????????????????ìÅ????ë¸ë´ëë¢ìr??????ë?ëy?????????ON?ì±???????????????????ì¥ì®ëù?ëú??ììí[ëò??ìÈëñìå??îìHëûëüì@ìAìBìCìDìEìFìÉì²ìÌëOëPëIëJëKíìËíîìî?îMëÄ?ëNë¾ëÌëR?íïëMëZíðíñ?ìÎë¿ëÍ`íòìÊ????ëâî{ëëë?ììèî|ì¤ëyìùëíìëíì??ìöë¿îa?ìôëÒëÀ?ëI??ëK?NGëxìtìj?ëÊî}ìuëYÖí]í\î~îíSîìíëìë«ë½íöíîë§ë£ë®ë©íjìÑí?ë¹ëµëH?î ë±ë·ëìõ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëô?ì®ì¥ëÀìôìõìöë²ì÷ë·ëÅìøìùëNëììúë¨ëãëñ?ìûìüë§í@ëÈë¤ëÑëS??ë¯íBíC?ëEëvëåëåìéìëÛ??íDíEìëíFëëF???íJ???ëéëMë_ëóíKë}ëêëê?ëõ?íM?ì?íOëëÂëëBë~ëë}?íQë{íRë|íSíTëë??????????????????????????????????????íeífígë½ë¼íhë»íië}ëáíjíkílëU?ínëRíoëïì¼ëÊ?ëêíqëæëóírëâísëäítíuívíwëtëëëí íyîyëÃízí{í|í}?ëcëÍìÎìlë¾ëcë[ëZíííí ííííìÑíë®ííííëë¦ííì½í????????????????????????????????????????????????????îvíU????íVëVëXëWíWì²ì¿ì¾ìÀî?ìåëèíXL³\???ëûëüì@ìAìBìCìDìEìFìÉëÐíYíZí[í\í]í^í_í`íaëØëÙì[ì\ìnìoìqìhìiìrìJìIìLìK?ëgëhëiëjëkëlëmënëoëpëqërës?ìÊìtìuícídëY?i????????????????????????????????????????????ë¿í????í??????íí????ëÔëIëJ?í£ìÁí¤ìÂí¥?íªí§í¨í©???í®???í¯ì·ëí±í²ëëí³í´íµí¶ììëí·?í¸??í»í¼ìëîí¾í¿íÀíÁëA??íÃ?íÄíÈíMë@íÆ????????????????????????????????????????????????????ëÕëÓëÄ????ëîì³ì¥ëùìèëÌëÒ?îìÃìÄíì¶ëëîEëëHë±ëëëëëë[ëZì²ëO????????????ë£??ë¢ëíëíëìë??ììíëÜëðìîëò?ëßí°ë ?ì´ë©ëë]ëeë`ëdëaíÈìïë´ìðìñë¸ìòëHëµí¡ëIëKëJ?????????????????????????????????????????íÉíÊíËíÌëð?ë?ë¥ìíÎíÏíÐíÑíHíIíÒíÓíÔíÕíÖ??íÙíÚíÛ???íÜíäíÞë¹?íßíàíáë²?ëºíâë°???íæë³íçíèíêíéëÇìj????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????