Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

File diff suppressed because it is too large Load Diff

938
mcs/class/I18N/CJK/CP932.cs Normal file

File diff suppressed because it is too large Load Diff

324
mcs/class/I18N/CJK/CP936.cs Normal file
View File

@@ -0,0 +1,324 @@
//
// I18N.CJK.CP936.cs
//
// Author:
// Atsushi Enomoto <atsushi@ximian.com>
//
// (new implementation based on CP950.)
//
using System;
using System.Text;
using I18N.Common;
namespace I18N.CJK
{
[Serializable]
internal class CP936 : DbcsEncoding
{
// Magic number used by Windows for the Gb2312 code page.
private const int GB2312_CODE_PAGE = 936;
// Constructor.
public CP936() : base(GB2312_CODE_PAGE) {
}
internal override DbcsConvert GetConvert ()
{
return DbcsConvert.Gb2312;
}
#if !DISABLE_UNSAFE
// Get the bytes that result from encoding a character buffer.
public unsafe override int GetByteCountImpl (char* chars, int count)
{
return GetBytesImpl(chars, count, null, 0);
}
// Get the bytes that result from encoding a character buffer.
public unsafe override int GetBytesImpl (char* chars, int charCount, byte* bytes, int byteCount)
{
DbcsConvert gb2312 = GetConvert ();
int charIndex = 0;
int byteIndex = 0;
int end = charCount;
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
int origIndex = byteIndex;
for (int i = charIndex; i < end; i++, charCount--) {
char c = chars[i];
if (c <= 0x80 || c == 0xFF) { // ASCII
int offset = byteIndex++;
if (bytes != null) bytes[offset] = (byte)c;
continue;
}
byte b1 = gb2312.u2n[((int)c) * 2 + 1];
byte b2 = gb2312.u2n[((int)c) * 2];
if (b1 == 0 && b2 == 0) {
#if NET_2_0
HandleFallback (ref buffer, chars,
ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, null);
#else
int offset = byteIndex++;
if (bytes != null) bytes[offset] = (byte)'?';
#endif
} else {
if (bytes != null)
{
bytes[byteIndex++] = b1;
bytes[byteIndex++] = b2;
}
else
{
byteIndex += 2;
}
}
}
return byteIndex - origIndex;
}
#else
protected int GetBytesInternal(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
int origIndex = byteIndex;
int end = charIndex + charCount;
int byteCount = bytes != null ? bytes.Length : 0;
DbcsConvert gb2312 = GetConvert();
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
for (int i = charIndex; i < end; i++, charCount--)
{
char c = chars[i];
if (c <= 0x80 || c == 0xFF)
{ // ASCII
int offset = byteIndex++;
if (bytes != null) bytes[offset] = (byte)c;
continue;
}
byte b1 = gb2312.u2n[((int)c) * 2 + 1];
byte b2 = gb2312.u2n[((int)c) * 2];
if (b1 == 0 && b2 == 0)
{
#if NET_2_0
HandleFallback (ref buffer, chars, ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, null);
#else
int offset = byteIndex++;
if (bytes != null) bytes[] = (byte)'?';
#endif
}
else
{
if (bytes != null)
{
bytes[byteIndex++] = b1;
bytes[byteIndex++] = b2;
}
else
{
byteIndex += 2;
}
}
}
return byteIndex - origIndex;
}
// Get the bytes that result from encoding a character buffer.
public override int GetByteCount(char[] chars, int index, int count)
{
return GetBytes(chars, index, count, null, 0);
}
// Get the bytes that result from encoding a character buffer.
public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
return GetBytesInternal(chars, charIndex, charCount, bytes, byteIndex);
}
#endif
// Get the characters that result from decoding a byte buffer.
public override int GetCharCount (byte [] bytes, int index, int count)
{
return GetDecoder ().GetCharCount (bytes, index, count);
}
// Get the characters that result from decoding a byte buffer.
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
return GetDecoder ().GetChars (
bytes, byteIndex, byteCount, chars, charIndex);
}
// Get a decoder that handles a rolling Gb2312 state.
public override Decoder GetDecoder()
{
return new CP936Decoder(GetConvert ());
}
// Get the mail body name for this encoding.
public override String BodyName
{
get { return("gb2312"); }
}
// Get the human-readable name for this encoding.
public override String EncodingName
{
get { return("Chinese Simplified (GB2312)"); }
}
// Get the mail agent header name for this encoding.
public override String HeaderName
{
get { return("gb2312"); }
}
// Determine if this encoding can be displayed in a Web browser.
public override bool IsBrowserDisplay
{
get { return(true); }
}
// Determine if this encoding can be saved from a Web browser.
public override bool IsBrowserSave
{
get { return(true); }
}
// Determine if this encoding can be displayed in a mail/news agent.
public override bool IsMailNewsDisplay
{
get { return(true); }
}
// Determine if this encoding can be saved from a mail/news agent.
public override bool IsMailNewsSave
{
get { return(true); }
}
// Get the IANA-preferred Web name for this encoding.
public override String WebName
{
get { return("gb2312"); }
}
}
// Decoder that handles a rolling Gb2312 state.
sealed class CP936Decoder : DbcsEncoding.DbcsDecoder
{
// Constructor.
public CP936Decoder (DbcsConvert convert)
: base (convert)
{
}
int last_byte_count, last_byte_bytes;
// Get the characters that result from decoding a byte buffer.
public override int GetCharCount (byte [] bytes, int index, int count)
{
return GetCharCount (bytes, index, count, false);
}
#if NET_2_0
public override
#endif
int GetCharCount (byte [] bytes, int index, int count, bool refresh)
{
CheckRange (bytes, index, count);
int lastByte = last_byte_count;
last_byte_count = 0;
int length = 0;
while (count-- > 0) {
int b = bytes [index++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
length++;
continue;
} else {
lastByte = b;
continue;
}
}
length++;
lastByte = 0;
}
if (lastByte != 0) {
if (refresh) {
length++;
last_byte_count = 0;
}
else
last_byte_count = lastByte;
}
return length;
}
public override int GetChars (byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
return GetChars (bytes, byteIndex, byteCount, chars, charIndex, false);
}
#if NET_2_0
public override
#endif
int GetChars (byte [] bytes, int byteIndex, int byteCount,
char [] chars, int charIndex, bool refresh)
{
CheckRange (bytes, byteIndex, byteCount, chars, charIndex);
int origIndex = charIndex;
int lastByte = last_byte_bytes;
last_byte_bytes = 0;
while (byteCount-- > 0) {
int b = bytes[byteIndex++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
chars[charIndex++] = (char)b;
continue;
} else if (b < 0x81 || b >= 0xFF) {
continue;
} else {
lastByte = b;
continue;
}
}
int ord = ((lastByte - 0x81) * 191 + b - 0x40) * 2;
char c1 = ord < 0 || ord >= convert.n2u.Length ?
'\0' : (char) (convert.n2u[ord] + convert.n2u[ord + 1] * 256);
if (c1 == 0)
chars[charIndex++] = '?';
else
chars[charIndex++] = c1;
lastByte = 0;
}
if (lastByte != 0) {
if (refresh) {
// FIXME: handle fallback
chars [charIndex++] = '?';
last_byte_bytes = 0;
}
else
last_byte_bytes = lastByte;
}
return charIndex - origIndex;
}
}
[Serializable]
internal class ENCgb2312 : CP936
{
public ENCgb2312(): base () {}
}
}

489
mcs/class/I18N/CJK/CP949.cs Normal file
View File

@@ -0,0 +1,489 @@
//
// I18N.CJK.CP949
//
// Author:
// Hye-Shik Chang (perky@FreeBSD.org)
// Atsushi Enomoto <atsushi@ximian.com>
//
using System;
using System.Text;
using I18N.Common;
namespace I18N.CJK
{
[Serializable]
internal class CP949 : KoreanEncoding
{
// Magic number used by Windows for the UHC code page.
private const int UHC_CODE_PAGE = 949;
// Constructor.
public CP949 () : base (UHC_CODE_PAGE, true)
{
}
// Get the mail body name for this encoding.
public override String BodyName
{
get { return "ks_c_5601-1987"; }
}
// Get the human-readable name for this encoding.
public override String EncodingName
{
get { return "Korean (UHC)"; }
}
// Get the mail agent header name for this encoding.
public override String HeaderName
{
get { return "ks_c_5601-1987"; }
}
// Get the IANA-preferred Web name for this encoding.
public override String WebName
{
get { return "ks_c_5601-1987"; }
}
/*
// Get the Windows code page represented by this object.
public override int WindowsCodePage
{
get { return UHC_PAGE; }
}
*/
}
[Serializable]
internal class CP51949 : KoreanEncoding
{
// Magic number used by Windows for the euc-kr code page.
private const int EUCKR_CODE_PAGE = 51949;
// Constructor.
public CP51949 () : base (EUCKR_CODE_PAGE, false)
{
}
// Get the mail body name for this encoding.
public override String BodyName
{
get { return "euc-kr"; }
}
// Get the human-readable name for this encoding.
public override String EncodingName
{
get { return "Korean (EUC)"; }
}
// Get the mail agent header name for this encoding.
public override String HeaderName
{
get { return "euc-kr"; }
}
// Get the IANA-preferred Web name for this encoding.
public override String WebName
{
get { return "euc-kr"; }
}
/*
// Get the Windows code page represented by this object.
public override int WindowsCodePage
{
get { return UHC_PAGE; }
}
*/
}
[Serializable]
internal class KoreanEncoding : DbcsEncoding
{
// Constructor.
public KoreanEncoding (int codepage, bool useUHC)
: base (codepage, 949) {
this.useUHC = useUHC;
}
internal override DbcsConvert GetConvert ()
{
return DbcsConvert.KS;
}
bool useUHC;
#if !DISABLE_UNSAFE
// Get the bytes that result from encoding a character buffer.
public unsafe override int GetByteCountImpl (char* chars, int count)
{
int index = 0;
int length = 0;
int end = count;
DbcsConvert convert = GetConvert ();
// 00 00 - FF FF
for (int i = 0; i < end; i++, charCount--) {
char c = chars[i];
if (c <= 0x80 || c == 0xFF) { // ASCII
length++;
continue;
}
byte b1 = convert.u2n[((int)c) * 2];
byte b2 = convert.u2n[((int)c) * 2 + 1];
if (b1 == 0 && b2 == 0) {
#if NET_2_0
// FIXME: handle fallback for GetByteCountImpl().
length++;
#else
length++;
#endif
}
else
length += 2;
}
return length;
}
// Get the bytes that result from encoding a character buffer.
public unsafe override int GetBytesImpl (char* chars, int charCount,
byte* bytes, int byteCount)
{
int charIndex = 0;
int byteIndex = 0;
int end = charCount;
DbcsConvert convert = GetConvert ();
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
// 00 00 - FF FF
int origIndex = byteIndex;
for (int = charIndex; i < end; i++, charCount--) {
char c = chars[i];
if (c <= 0x80 || c == 0xFF) { // ASCII
bytes[byteIndex++] = (byte)c;
continue;
}
byte b1 = convert.u2n[((int)c) * 2];
byte b2 = convert.u2n[((int)c) * 2 + 1];
if (b1 == 0 && b2 == 0) {
#if NET_2_0
HandleFallback (ref buffer, chars, ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, null);
#else
bytes[byteIndex++] = (byte)'?';
#endif
} else {
bytes[byteIndex++] = b1;
bytes[byteIndex++] = b2;
}
}
return byteIndex - origIndex;
}
#else
// Get the bytes that result from encoding a character buffer.
public override int GetByteCount(char[] chars, int index, int count)
{
int length = 0;
DbcsConvert convert = GetConvert();
// 00 00 - FF FF
while (count-- > 0)
{
char c = chars[index++];
if (c <= 0x80 || c == 0xFF)
{ // ASCII
length++;
continue;
}
byte b1 = convert.u2n[((int)c) * 2];
byte b2 = convert.u2n[((int)c) * 2 + 1];
if (b1 == 0 && b2 == 0)
{
#if NET_2_0
// FIXME: handle fallback for GetByteCountImpl().
length++;
#else
length++;
#endif
}
else
length += 2;
}
return length;
}
// Get the bytes that result from encoding a character buffer.
public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
int byteCount = bytes.Length;
int end = charIndex + charCount;
DbcsConvert convert = GetConvert();
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
// 00 00 - FF FF
int origIndex = byteIndex;
for (int i = charIndex; i < end; i++, charCount--)
{
char c = chars[i];
if (c <= 0x80 || c == 0xFF)
{ // ASCII
bytes[byteIndex++] = (byte)c;
continue;
}
byte b1 = convert.u2n[((int)c) * 2];
byte b2 = convert.u2n[((int)c) * 2 + 1];
if (b1 == 0 && b2 == 0)
{
#if NET_2_0
HandleFallback (ref buffer, chars, ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, null);
#else
bytes[byteIndex++] = (byte)'?';
#endif
}
else
{
bytes[byteIndex++] = b1;
bytes[byteIndex++] = b2;
}
}
return byteIndex - origIndex;
}
#endif
// Get the characters that result from decoding a byte buffer.
public override int GetCharCount (byte[] bytes, int index, int count)
{
return GetDecoder ().GetCharCount (bytes, index, count);
}
// Get the characters that result from decoding a byte buffer.
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
return GetDecoder ().GetChars (bytes, byteIndex, byteCount, chars, charIndex);
}
// Get a decoder that handles a rolling UHC state.
public override Decoder GetDecoder()
{
return new KoreanDecoder (GetConvert (), useUHC);
}
// Decoder that handles a rolling UHC state.
private sealed class KoreanDecoder : DbcsDecoder
{
// Constructor.
public KoreanDecoder (DbcsConvert convert, bool useUHC)
: base(convert)
{
this.useUHC = useUHC;
}
bool useUHC;
int last_byte_count, last_byte_conv;
public override int GetCharCount (byte[] bytes, int index, int count)
{
return GetCharCount (bytes, index, count, false);
}
#if NET_2_0
public override
#endif
int GetCharCount (byte [] bytes, int index, int count, bool refresh)
{
CheckRange (bytes, index, count);
int lastByte = last_byte_count;
last_byte_count = 0;
int length = 0;
while (count-- > 0) {
int b = bytes[index++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
length++;
continue;
} else {
lastByte = b;
continue;
}
}
char c1;
if (useUHC && lastByte < 0xa1) { // UHC Level 1
int ord = 8836 + (lastByte - 0x81) * 178;
if (b >= 0x41 && b <= 0x5A)
ord += b - 0x41;
else if (b >= 0x61 && b <= 0x7A)
ord += b - 0x61 + 26;
else if (b >= 0x81 && b <= 0xFE)
ord += b - 0x81 + 52;
else
ord = -1;
if (ord >= 0 && ord * 2 <= convert.n2u.Length)
c1 = (char)(convert.n2u[ord*2] +
convert.n2u[ord*2 + 1] * 256);
else
c1 = (char)0;
} else if (useUHC && lastByte <= 0xC6 && b < 0xA1) { // UHC Level 2
int ord = 14532 + (lastByte - 0xA1) * 84;
if (b >= 0x41 && b <= 0x5A)
ord += b - 0x41;
else if (b >= 0x61 && b <= 0x7A)
ord += b - 0x61 + 26;
else if (b >= 0x81 && b <= 0xA0)
ord += b - 0x81 + 52;
else
ord = -1;
if (ord >= 0 && ord * 2 <= convert.n2u.Length)
c1 = (char)(convert.n2u[ord*2] +
convert.n2u[ord*2 + 1] * 256);
else
c1 = (char)0;
} else if (b >= 0xA1 && b <= 0xFE) { // KS X 1001
int ord = ((lastByte - 0xA1) * 94 + b - 0xA1) * 2;
c1 = ord < 0 || ord >= convert.n2u.Length ?
'\0' : (char)(convert.n2u[ord] +
convert.n2u[ord + 1] * 256);
} else
c1 = (char)0;
if (c1 == 0)
// FIXME: fallback
length++;
else
length++;
lastByte = 0;
}
if (lastByte != 0) {
if (refresh) {
// FIXME: fallback
length++;
last_byte_count = 0;
}
else
last_byte_count = lastByte;
}
return length;
}
public override int GetChars(byte[] bytes, int byteIndex,
int byteCount, char[] chars, int charIndex)
{
return GetChars (bytes, byteIndex, byteCount, chars, charIndex, false);
}
#if NET_2_0
public override
#endif
int GetChars(byte[] bytes, int byteIndex,
int byteCount, char[] chars, int charIndex, bool refresh)
{
CheckRange (bytes, byteIndex, byteCount, chars, charIndex);
int origIndex = charIndex;
int lastByte = last_byte_conv;
last_byte_conv = 0;
while (byteCount-- > 0) {
int b = bytes[byteIndex++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
chars[charIndex++] = (char)b;
continue;
} else {
lastByte = b;
continue;
}
}
char c1;
if (useUHC && lastByte < 0xa1) { // UHC Level 1
int ord = 8836 + (lastByte - 0x81) * 178;
if (b >= 0x41 && b <= 0x5A)
ord += b - 0x41;
else if (b >= 0x61 && b <= 0x7A)
ord += b - 0x61 + 26;
else if (b >= 0x81 && b <= 0xFE)
ord += b - 0x81 + 52;
else
ord = -1;
if (ord >= 0 && ord * 2 <= convert.n2u.Length)
c1 = (char)(convert.n2u[ord*2] +
convert.n2u[ord*2 + 1] * 256);
else
c1 = (char)0;
} else if (useUHC && lastByte <= 0xC6 && b < 0xA1) { // UHC Level 2
int ord = 14532 + (lastByte - 0xA1) * 84;
if (b >= 0x41 && b <= 0x5A)
ord += b - 0x41;
else if (b >= 0x61 && b <= 0x7A)
ord += b - 0x61 + 26;
else if (b >= 0x81 && b <= 0xA0)
ord += b - 0x81 + 52;
else
ord = -1;
if (ord >= 0 && ord * 2 <= convert.n2u.Length)
c1 = (char)(convert.n2u[ord*2] +
convert.n2u[ord*2 + 1] * 256);
else
c1 = (char)0;
} else if (b >= 0xA1 && b <= 0xFE) { // KS X 1001
int ord = ((lastByte - 0xA1) * 94 + b - 0xA1) * 2;
c1 = ord < 0 || ord >= convert.n2u.Length ?
'\0' : (char)(convert.n2u[ord] +
convert.n2u[ord + 1] * 256);
} else
c1 = (char)0;
if (c1 == 0)
chars[charIndex++] = '?';
else
chars[charIndex++] = c1;
lastByte = 0;
}
if (lastByte != 0) {
if (refresh) {
chars[charIndex++] = '?';
last_byte_conv = 0;
}
else
last_byte_conv = lastByte;
}
return charIndex - origIndex;
}
}
}
[Serializable]
internal class ENCuhc : CP949
{
public ENCuhc() {}
}
[Serializable]
internal class ENCeuc_kr: CP51949
{
public ENCeuc_kr() {}
}
}
// ex: ts=8 sts=4 et

366
mcs/class/I18N/CJK/CP950.cs Normal file
View File

@@ -0,0 +1,366 @@
//
// I18N.CJK.CP950
//
// Author:
// Alan Tam Siu Lung (Tam@SiuLung.com)
// Atsushi Enomoto <atsushi@ximian.com>
//
using System;
using System.Text;
using I18N.Common;
namespace I18N.CJK
{
[Serializable]
internal class CP950 : DbcsEncoding
{
// Magic number used by Windows for the Big5 code page.
private const int BIG5_CODE_PAGE = 950;
// Constructor.
public CP950() : base(BIG5_CODE_PAGE) {
}
internal override DbcsConvert GetConvert ()
{
return DbcsConvert.Big5;
}
#if !DISABLE_UNSAFE
// Get the bytes that result from encoding a character buffer.
public unsafe override int GetByteCountImpl (char* chars, int count)
{
DbcsConvert convert = GetConvert ();
int index = 0;
int length = 0;
while (count-- > 0) {
char c = chars[index++];
if (c <= 0x80 || c == 0xFF) { // ASCII
length++;
continue;
}
byte b1 = convert.u2n[((int)c) * 2 + 1];
byte b2 = convert.u2n[((int)c) * 2];
if (b1 == 0 && b2 == 0) {
#if NET_2_0
// FIXME: handle fallback for GetByteCountImpl().
length++;
#else
length++;
#endif
}
else
length += 2;
}
return length;
}
// Get the bytes that result from encoding a character buffer.
public unsafe override int GetBytesImpl (char* chars, int charCount,
byte* bytes, int byteCount)
{
DbcsConvert convert = GetConvert ();
int charIndex = 0;
int byteIndex = 0;
int end = charCount;
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
int origIndex = byteIndex;
for (int i = charIndex; i < end; i++, charCount--)
{
char c = chars[i];
if (c <= 0x80 || c == 0xFF) { // ASCII
bytes[byteIndex++] = (byte)c;
continue;
}
byte b1 = convert.u2n[((int)c) * 2 + 1];
byte b2 = convert.u2n[((int)c) * 2];
if (b1 == 0 && b2 == 0) {
#if NET_2_0
HandleFallback (ref buffer, chars,
ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, null);
#else
bytes[byteIndex++] = (byte)'?';
#endif
} else {
bytes[byteIndex++] = b1;
bytes[byteIndex++] = b2;
}
}
return byteIndex - origIndex;
}
#else
// Get the bytes that result from encoding a character buffer.
public override int GetByteCount(char[] chars, int index, int count)
{
DbcsConvert convert = GetConvert();
int length = 0;
while (count-- > 0)
{
char c = chars[index++];
if (c <= 0x80 || c == 0xFF)
{ // ASCII
length++;
continue;
}
byte b1 = convert.u2n[((int)c) * 2 + 1];
byte b2 = convert.u2n[((int)c) * 2];
if (b1 == 0 && b2 == 0)
{
#if NET_2_0
// FIXME: handle fallback for GetByteCountImpl().
length++;
#else
length++;
#endif
}
else
length += 2;
}
return length;
}
// Get the bytes that result from encoding a character buffer.
public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
int byteCount = bytes.Length;
int end = charIndex + charCount;
DbcsConvert convert = GetConvert();
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
int origIndex = byteIndex;
for (int i = charIndex; i < end; i++, charCount--)
{
char c = chars[i];
if (c <= 0x80 || c == 0xFF)
{ // ASCII
bytes[byteIndex++] = (byte)c;
continue;
}
byte b1 = convert.u2n[((int)c) * 2 + 1];
byte b2 = convert.u2n[((int)c) * 2];
if (b1 == 0 && b2 == 0)
{
#if NET_2_0
HandleFallback (ref buffer, chars, ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, null);
#else
bytes[byteIndex++] = (byte)'?';
#endif
}
else
{
bytes[byteIndex++] = b1;
bytes[byteIndex++] = b2;
}
}
return byteIndex - origIndex;
}
#endif
// Get the characters that result from decoding a byte buffer.
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
/*
DbcsConvert convert = GetConvert ();
// A1 40 - FA FF
base.GetChars(bytes, byteIndex, byteCount, chars, charIndex);
int origIndex = charIndex;
int lastByte = 0;
while (byteCount-- > 0) {
int b = bytes[byteIndex++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
chars[charIndex++] = (char)b;
} else if (b < 0xA1 || b >= 0xFA) {
// incorrect first byte.
chars[charIndex++] = '?';
byteCount--; // cut one more byte.
} else {
lastByte = b;
}
continue;
}
int ord = ((lastByte - 0xA1) * 191 + b - 0x40) * 2;
char c1 = ord < 0 || ord > convert.n2u.Length ?
'\0' :
(char)(convert.n2u[ord] + convert.n2u[ord + 1] * 256);
if (c1 == 0)
chars[charIndex++] = '?';
else
chars[charIndex++] = c1;
lastByte = 0;
}
if (lastByte != 0)
chars[charIndex++] = '?';
return charIndex - origIndex;
*/
return GetDecoder ().GetChars (bytes, byteIndex, byteCount, chars, charIndex);
}
// Get a decoder that handles a rolling Big5 state.
public override Decoder GetDecoder()
{
return new CP950Decoder(GetConvert ());
}
// Get the mail body name for this encoding.
public override String BodyName
{
get { return "big5"; }
}
// Get the human-readable name for this encoding.
public override String EncodingName
{
get { return "Chinese Traditional (Big5)"; }
}
// Get the mail agent header name for this encoding.
public override String HeaderName
{
get { return "big5"; }
}
// Get the IANA-preferred Web name for this encoding.
public override String WebName
{
get { return "big5"; }
}
/*
// Get the Windows code page represented by this object.
public override int WindowsCodePage
{
get { return BIG5_PAGE; }
}
*/
// Decoder that handles a rolling Big5 state.
private sealed class CP950Decoder : DbcsDecoder
{
// Constructor.
public CP950Decoder(DbcsConvert convert) : base(convert) {}
int last_byte_count, last_byte_conv;
public override int GetCharCount (byte[] bytes, int index, int count)
{
return GetCharCount (bytes, index, count, false);
}
#if NET_2_0
public override
#endif
int GetCharCount (byte[] bytes, int index, int count, bool refresh)
{
CheckRange (bytes, index, count);
int lastByte = last_byte_count;
last_byte_count = 0;
int length = 0;
while (count-- > 0) {
int b = bytes[index++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
length++;
} else if (b < 0xA1 || b >= 0xFA) {
// incorrect first byte.
length++;
count--; // cut one more byte.
} else {
lastByte = b;
}
continue;
}
int ord = ((lastByte - 0xA1) * 191 + b - 0x40) * 2;
char c1 = ord < 0 || ord > convert.n2u.Length ?
'\0' :
(char)(convert.n2u[ord] + convert.n2u[ord + 1] * 256);
if (c1 == 0)
// FIXME: fallback
length++;
else
length++;
lastByte = 0;
}
if (lastByte != 0) {
if (refresh)
// FIXME: fallback
length++;
else
last_byte_count = lastByte;
}
return length;
}
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
return GetChars (bytes, byteIndex, byteCount, chars, charIndex, false);
}
#if NET_2_0
public override
#endif
int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex, bool refresh)
{
CheckRange (bytes, byteIndex, byteCount, chars, charIndex);
int origIndex = charIndex;
int lastByte = last_byte_conv;
last_byte_conv = 0;
while (byteCount-- > 0) {
int b = bytes[byteIndex++];
if (lastByte == 0) {
if (b <= 0x80 || b == 0xFF) { // ASCII
chars[charIndex++] = (char)b;
} else if (b < 0xA1 || b >= 0xFA) {
// incorrect first byte.
chars[charIndex++] = '?';
byteCount--; // cut one more byte.
} else {
lastByte = b;
}
continue;
}
int ord = ((lastByte - 0xA1) * 191 + b - 0x40) * 2;
char c1 = ord < 0 || ord > convert.n2u.Length ?
'\0' :
(char)(convert.n2u[ord] + convert.n2u[ord + 1] * 256);
if (c1 == 0)
chars[charIndex++] = '?';
else
chars[charIndex++] = c1;
lastByte = 0;
}
if (lastByte != 0) {
if (refresh)
chars [charIndex++] = '?';
else
last_byte_conv = lastByte;
}
return charIndex - origIndex;
}
}
}
[Serializable]
internal class ENCbig5 : CP950
{
public ENCbig5() {}
}
}

View File

@@ -0,0 +1,295 @@
2009-10-09 Atsushi Enomoto <atsushi@ximian.com>
* ISO2022JP.cs : simply output wrong escape sequence bytes to the
output (like .NET does).
2009-04-15 Atsushi Enomoto <atsushi@ximian.com>
* jis.table : regenerated. Fixed bug #491799.
2008-06-09 Atsushi Enomoto <atsushi@ximian.com>
* ISO2022JP.cs : handle ESC-J sequence which is obsoleted in
JIS X 0213. Fixed bug #398273.
2008-05-16 Atsushi Enomoto <atsushi@ximian.com>
* Makefile: I didn't know the syntax ;-)
2008-05-16 Atsushi Enomoto <atsushi@ximian.com>
* Makefile: added Test/texts/*.txt to EXTRA_DISTFILES.
2006-01-30 Atsushi Enomoto <atsushi@ximian.com>
* DbcsEncoding.cs ISO2022JP.cs GB18030Encoding.cs CP51932.cs
CP949.cs : Fixed windows code page and some minor properties.
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* DbcsConvert.cs ISO2022JP.cs CP950.cs CP932.cs: author lines.
Monoized CP932.cs which is too deeply indented to read (and
anyways no one other than myself is taking care of it).
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* KSConvert.cs Big5Convert.cs Gb2312Convert.cs: removed. They could
just be DbcsConvert instances.
* I18N.CJK.dll.sources : removed above.
* DbcsConvert.cs : added static fields: Big5 and KS.
* CP949.cs CP950.cs : use DbcsConvert class directly.
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* CP936.cs, CP949.cs, CP950.cs :
Added GetByteCountImpl() (there weren't GetByteCount() override
in those classes, so they also save extra byte[] allocation).
* CP932.cs, CP51932.cs, GB18030Encoding.cs, ISO2022JP.cs :
GetByteCount() -> GetByteCountImpl().
Fixed ISO2022JPEncoder/Decoder to hold different "shifted_in" flags
for GetByteCountImpl() and GetBytesImpl().
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* ISO2022JP.cs GB18030Encoding.cs CP936.cs CP51932.cs:
fix warnings.
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* CP950.cs :
This was the last one encoding which needed incomplete byte
handling.
* DbcsEncoding.cs, GB18030Encoding.cs, CP950.cs, CP932.cs,
CP936.cs, CP51932.cs, CP949.cs (all):
Made GetCharCount() and GetChars() in DbcsDecoder as different
internal CheckRange() methods (it is bad design to have those
methods as base methods). Use CheckRange() everywhere.
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* CP949.cs :
handle incomplete byte (thus conversion implementation went into
CP949Decoder like other DBCS encodings).
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* CP936.cs :
handle incomplete byte (thus conversion implementation went into
CP936Decoder like other DBCS encodings).
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* CP51932.cs :
Encoding.GetChars() does not handle incomplete bytes but
Decoder.GetChars() should do it (which was has vanished
when I fixed CP51932 4 days ago). Now it uses Decoder which
preserves incomplete byte like CP932 and CP54936.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* CP932.cs :
Implemented Decoder to handle incomplete bytes correctly. Hold
different incomplete bytes for GetChars() and GetCharCount().
"reflesh" parameter in 2.0 is now handled correctly.
Now GetChars()/GetCharCount() in Encoding are implemented
correctly to use Decoder.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
Fixed bug #77307.
* GB18030Encoding.cs : GetEncoder() and GetDecoder() should be
overriden. in the Encoder, refresh parameter should handle
incomplete field at its end of processing. Also it should
differentiate GetByteCount() and GetChars() for its internal
state.
* GB18030Source.cs : handle end index of GB18030Map as inclusive,
not exclusive. Reject out-of-range GBX conversion.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* GB18030Encoding.cs : GetChars() ditto. Fixed bug #77306.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* CP949.cs : GetChars() exactly the same fix as CP950.
Fixed bug #77298.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* CP950.cs : GetChars() should filter out invalid index to internal
conversion array. Fixed bug #77274.
2006-01-17 Atsushi Enomoto <atsushi@ximian.com>
* DbcsEncoding.cs CP950.cs CP932.cs CP936.cs CP51932.cs CP949.cs :
Made all as really serializable. Removed references to DbcsConvert
and added GetConvert() methods instead.
2006-01-17 Atsushi Enomoto <atsushi@ximian.com>
* DbcsEncoding.cs ISO2022JP.cs GB18030Encoding.cs CP950.cs
CP932.cs CP936.cs CP51932.cs CP949.cs (All) :
Marked as [Serializable].
2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
* CP936.cs :
Implement GetCharCount(); it is too costy to use GetChars()
in GetCharCount(). Removed extra code in GetChars(). Check table
index range before accessing it by index.
2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
* CP51932.cs :
In GetChars(), insufficient byte is not preserved.
Under 1.x profile it is just discarded.
Under 2.0 profile it is converted to \u30FB.
Fixed GetCharCount() to match GetChars().
2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
* CP932.cs : GetByteCount() returned insufficient count at PrivateUse
area. Fixed bug #77724.
(Additionally, reduced extraneous indentation in switch-cases).
2006-01-12 Atsushi Enomoto <atsushi@ximian.com>
* CP51932.cs : oops, another extra debugging code was remaining.
Fixed bug #77223.
2005-12-06 Atsushi Enomoto <atsushi@ximian.com>
Now I can rename new CP936_2.cs file to CP936.cs without svn diff mess.
2005-12-06 Atsushi Enomoto <atsushi@ximian.com>
* DbcsConvert.cs : added static Gb2312 field for common use.
* dbcs-table-generator.cs :
Added shortcut options for BIG5 and GB2312. Compressed data a bit.
* CP936.cs, CP936_2.cs : GB2312.TXT does not exist anymore on
unicode.org and it does not work like MS Codepage 936, so added
fresh implementation which is almost the same as CP950.cs.
CP936.cs is therefore removed.
* GB18030Encoding.cs :
switched implementation from Gb2312Convert to (base) DbcsConvert
as well as CP936.
* gb2312-build.sh : added note that we don't use it anymore.
* gb2312.table :
with it CP936 can handles CP936-only codepoints as well.
* big5.table : compressed a bit.
* I18N.CJK.dll.sources : in the meantime, use CP936_2.cs
2005-12-06 Atsushi Enomoto <atsushi@ximian.com>
* renamed from big5-table-generator.cs to dbcs-table-generator.cs.
2005-12-06 Atsushi Enomoto <atsushi@ximian.com>
* big5-table-generator.cs : made it to work for GB2312 table
generation purpose (different format than gb2312.table.)
2005-12-06 Atsushi Enomoto <atsushi@ximian.com>
* CP936.cs,
GB18030Encoding.cs,
GB18030Source.cs : conversion from Encoding to MonoEncoding and
added fallback support in GEtBytes(Impl), as well as others.
2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
* big5-table-generator.cs : new file to generate "big5.table".
* CP950.cs : added fallback support. switched to GetBytesImpl().
* DbcsEncoding.cs : switched to MonoEncoding (should have been
committed when CP949.cs was committed).
* big5.table : updated to match MS CP950.
2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
* CP949.cs : migration from GetBytes (of Encoding) to GetBytesImpl
(of MonoEncoding). Added fallback support.
2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK_test.dll.sources : new file for NUnit test.
* Makefile : removed NO_TEST.
2005-12-03 Atsushi Enomoto <atsushi@ximian.com>
* CP51932.cs :
GetCharCount() was returning excessive size. Now it is also based
on MonoEncoding, with fallback support.
2005-12-03 Atsushi Enomoto <atsushi@ximian.com>
* CP932.cs : oops, wrong range.
2005-12-03 Atsushi Enomoto <atsushi@ximian.com>
* CP932.cs :
in GetBytes() \uFF01-\uFF60 are incorrectly mapped to ASCII
characters (they should be mapped to full-width characters).
Base type is now MonoEncoding, without adding fallback support.
2005-12-02 Atsushi Enomoto <atsushi@ximian.com>
* ISO2022JP.cs :
Base type is now MonoEncoding (fallbacks are not handled yet).
Largely rewritten to handle SI/SO flag (CP50222)
and mode transition (all) correctly.
2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
* CP949.cs : UHC level 2 base number is wrong.
Fixed bug #76760 Patch by Hye-Shik Chang.
2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
* GB18030Encoding.cs : check GB2312 first, and then check GB18030.
Fixed GB18030 part of bug #76722.
2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
* GB2312Convert.cs , CP936.cs, GB18030Encoding.cs : don't handle
single byte characters in UcsToGbk. Fixed GB2312 part of #76722.
2005-11-01 Atsushi Enomoto <atsushi@ximian.com>
* CP949.cs : Now it contains both CP949 (UHC) and CP51949 (EUC) for
Korean encoding. This should fix bug #76588.
2005-09-25 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.dll.sources : needs fix as well.
2005-09-25 Atsushi Enomoto <atsushi@ximian.com>
* CP50221.cs,
ISO2022JP.cs :
So, now "CP50221.cs" is improper, since it contains all 50220-50222.
2005-09-25 Atsushi Enomoto <atsushi@ximian.com>
* CP50221.cs : actually 50220 and 50222 are also iso-2022-jp encodings.
Fixed bug #76139. This file is likely to be renamed.
2005-09-18 Atsushi Enomoto <atsushi@ximian.com>
* CP50221.cs, GB18030Encoding.cs : because of silly design
Common/Manager expects fixed class names CPxxxxx. Fixed bug #76139.
2005-08-22 Raja R Harinath <rharinath@novell.com>
* Makefile (EXTRA_DISTFILES): Add README.gb18030 and gb18030.table.
2005-08-19 Atsushi Enomoto <atsushi@ximian.com>
why didn't we have it? ;-)
* README.gb18030,
gb18030.table,
GB18030Encoding.cs,
GB18030Source.cs,
Makefile,
I18N.CJK.dll.sources : added support for GB18030 encoding.
* Gb2312Convert.cs : added utility conversion methods.

View File

@@ -0,0 +1,143 @@
/*
* CodeTable.cs - Implementation of the "System.Text.CodeTable" class.
*
* Copyright (c) 2002 Southern Storm Software, Pty Ltd
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
namespace I18N.CJK
{
using System;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using I18N.Common;
// This class assists encoding classes for the large CJK character
// sets by providing pointer access to table data in the resource
// section of the current assembly.
//
// Code tables are named by their resource (e.g. "jis.table") and
// contain one or more sections. Each section has an 8-byte header,
// consisting of a 32-bit section number and a 32-bit section length.
// The alignment of the data in the table is not guaranteed.
internal unsafe sealed class CodeTable : IDisposable
{
// Internal state.
private Stream stream;
// Load a code table from the resource section of this assembly.
public CodeTable(String name)
{
stream = (Assembly.GetExecutingAssembly()
.GetManifestResourceStream(name));
if(stream == null)
{
throw new NotSupportedException
(String.Format
(Strings.GetString("NotSupp_MissingCodeTable"),
name));
}
}
// Implement the IDisposable interface.
public void Dispose()
{
if(stream != null)
{
stream.Close();
stream = null;
}
}
// Get the starting address for a particular section within
// the code table. This address is guaranteed to persist
// after "Dispose" is called.
#if __PNET__
public byte *GetSection(int num)
#else
public byte[] GetSection(int num)
#endif
{
// If the table has been disposed, then bail out.
if(stream == null)
{
return null;
}
// Scan through the stream looking for the section.
long posn = 0;
long length = stream.Length;
byte[] header = new byte [8];
int sectNum, sectLen;
while((posn + 8) <= length)
{
// Read the next header block.
stream.Position = posn;
if(stream.Read(header, 0, 8) != 8)
{
break;
}
// Decode the fields in the header block.
sectNum = ((int)(header[0])) |
(((int)(header[1])) << 8) |
(((int)(header[2])) << 16) |
(((int)(header[3])) << 24);
sectLen = ((int)(header[4])) |
(((int)(header[5])) << 8) |
(((int)(header[6])) << 16) |
(((int)(header[7])) << 24);
// Is this the section we are looking for?
if(sectNum == num)
{
#if __PNET__
return GetAddress(stream, posn + 8);
#else
byte[] buf = new byte [sectLen];
if(stream.Read(buf, 0, sectLen) != sectLen)
{
break;
}
return buf;
#endif
}
// Advance to the next section.
posn += 8 + sectLen;
}
// We were unable to find the requested section.
return null;
}
#if __PNET__
// Back door access into the engine to get the address of
// an offset within a manifest resource stream.
[MethodImpl(MethodImplOptions.InternalCall)]
extern private static byte *GetAddress(Stream stream, long position);
#endif
}; // class CodeTable
}; // namespace I18N.CJK

View File

@@ -0,0 +1,38 @@
//
// I18N.CJK.DbcsConvert
//
// Author:
// Alan Tam Siu Lung (Tam@SiuLung.com)
// Atsushi Enomoto <atsushi@ximian.com>
//
using System;
namespace I18N.CJK
{
// This class assists other DBCS encoding classes in converting back
// and forth between JIS character sets and Unicode. It uses
// several large tables to do this, some of which are stored in
// the resource section of the assembly for efficient access.
internal class DbcsConvert
{
// Public access to the conversion tables.
public byte[] n2u;
public byte[] u2n;
// Constructor.
internal DbcsConvert(string fileName) {
using (CodeTable table = new CodeTable(fileName)) {
n2u = table.GetSection(1);
u2n = table.GetSection(2);
}
}
internal static readonly DbcsConvert Gb2312 =
new DbcsConvert ("gb2312.table");
internal static readonly DbcsConvert Big5 =
new DbcsConvert ("big5.table");
internal static readonly DbcsConvert KS =
new DbcsConvert ("ks.table");
}
}

View File

@@ -0,0 +1,175 @@
//
// I18N.CJK.DbcsEncoding
//
// Author:
// Alan Tam Siu Lung (Tam@SiuLung.com)
//
using System;
using System.Text;
using I18N.Common;
#if DISABLE_UNSAFE
using MonoEncoder = I18N.Common.MonoSafeEncoder;
using MonoEncoding = I18N.Common.MonoSafeEncoding;
#endif
namespace I18N.CJK
{
[Serializable]
internal abstract class DbcsEncoding : MonoEncoding
{
public DbcsEncoding (int codePage) : this (codePage, 0)
{
}
public DbcsEncoding (int codePage, int windowsCodePage)
: base (codePage, windowsCodePage)
{
}
internal abstract DbcsConvert GetConvert ();
// Get the number of bytes needed to encode a character buffer.
public override int GetByteCount(char[] chars, int index, int count)
{
if (chars == null)
throw new ArgumentNullException("chars");
if (index < 0 || index > chars.Length)
throw new ArgumentOutOfRangeException("index", Strings.GetString("ArgRange_Array"));
if (count < 0 || index + count > chars.Length)
throw new ArgumentOutOfRangeException("count", Strings.GetString("ArgRange_Array"));
byte[] buffer = new byte[count * 2];
return GetBytes(chars, index, count, buffer, 0);
}
/*
// Get the bytes that result from encoding a character buffer.
public override int GetBytes(char[] chars, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
if (chars == null)
throw new ArgumentNullException("chars");
if (bytes == null)
throw new ArgumentNullException("bytes");
if (charIndex < 0 || charIndex > chars.Length)
throw new ArgumentOutOfRangeException("charIndex", Strings.GetString("ArgRange_Array"));
if (charCount < 0 || charIndex + charCount > chars.Length)
throw new ArgumentOutOfRangeException("charCount", Strings.GetString("ArgRange_Array"));
if (byteIndex < 0 || byteIndex > bytes.Length)
throw new ArgumentOutOfRangeException("byteIndex", Strings.GetString("ArgRange_Array"));
return 0; // For subclasses to implement
}
*/
// Get the number of characters needed to decode a byte buffer.
public override int GetCharCount(byte[] bytes, int index, int count)
{
if (bytes == null)
throw new ArgumentNullException("bytes");
if (index < 0 || index > bytes.Length)
throw new ArgumentOutOfRangeException("index", Strings.GetString("ArgRange_Array"));
if (count < 0 || index + count > bytes.Length)
throw new ArgumentOutOfRangeException("count", Strings.GetString("ArgRange_Array"));
char[] buffer = new char[count];
return GetChars(bytes, index, count, buffer, 0);
}
// Get the characters that result from decoding a byte buffer.
public override int GetChars(byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
if (bytes == null)
throw new ArgumentNullException("bytes");
if (chars == null)
throw new ArgumentNullException("chars");
if (byteIndex < 0 || byteIndex > bytes.Length)
throw new ArgumentOutOfRangeException("byteIndex", Strings.GetString("ArgRange_Array"));
if (byteCount < 0 || byteIndex + byteCount > bytes.Length)
throw new ArgumentOutOfRangeException("byteCount", Strings.GetString("ArgRange_Array"));
if (charIndex < 0 || charIndex > chars.Length)
throw new ArgumentOutOfRangeException("charIndex", Strings.GetString("ArgRange_Array"));
return 0; // For subclasses to implement
}
// Get the maximum number of bytes needed to encode a
// specified number of characters.
public override int GetMaxByteCount(int charCount)
{
if (charCount < 0)
throw new ArgumentOutOfRangeException("charCount", Strings.GetString("ArgRange_NonNegative"));
return charCount * 2;
}
// Get the maximum number of characters needed to decode a
// specified number of bytes.
public override int GetMaxCharCount(int byteCount)
{
if (byteCount < 0) {
throw new ArgumentOutOfRangeException("byteCount", Strings.GetString("ArgRange_NonNegative"));
}
return byteCount;
}
// Determine if this encoding can be displayed in a Web browser.
public override bool IsBrowserDisplay
{
get { return true; }
}
// Determine if this encoding can be saved from a Web browser.
public override bool IsBrowserSave
{
get { return true; }
}
// Determine if this encoding can be displayed in a mail/news agent.
public override bool IsMailNewsDisplay
{
get { return true; }
}
// Determine if this encoding can be saved from a mail/news agent.
public override bool IsMailNewsSave
{
get { return true; }
}
// Decoder that handles a rolling state.
internal abstract class DbcsDecoder : Decoder
{
protected DbcsConvert convert;
// Constructor.
public DbcsDecoder(DbcsConvert convert)
{
this.convert = convert;
}
internal void CheckRange (byte[] bytes, int index, int count)
{
if (bytes == null)
throw new ArgumentNullException("bytes");
if (index < 0 || index > bytes.Length)
throw new ArgumentOutOfRangeException("index", Strings.GetString("ArgRange_Array"));
if (count < 0 || count > (bytes.Length - index))
throw new ArgumentOutOfRangeException("count", Strings.GetString("ArgRange_Array"));
}
internal void CheckRange (byte[] bytes, int byteIndex, int byteCount,
char[] chars, int charIndex)
{
if (bytes == null)
throw new ArgumentNullException("bytes");
if (chars == null)
throw new ArgumentNullException("chars");
if (byteIndex < 0 || byteIndex > bytes.Length)
throw new ArgumentOutOfRangeException("byteIndex", Strings.GetString("ArgRange_Array"));
if (byteCount < 0 || byteIndex + byteCount > bytes.Length)
throw new ArgumentOutOfRangeException("byteCount", Strings.GetString("ArgRange_Array"));
if (charIndex < 0 || charIndex > chars.Length)
throw new ArgumentOutOfRangeException("charIndex", Strings.GetString("ArgRange_Array"));
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,371 @@
//
// GB18030Encoding.cs
//
// Author:
// Atsushi Enomoto <atsushi@ximian.com>
//
using System;
using System.Globalization;
using System.Reflection;
using System.Text;
using System.Runtime.InteropServices;
#if BUILD_GENERATOR
using System.IO;
using System.Xml;
#endif
namespace I18N.CJK
{
internal unsafe class GB18030Source
{
class GB18030Map
{
public readonly int UStart;
public readonly int UEnd;
public readonly long GStart;
public readonly long GEnd;
public readonly bool Dummy; // This range is actually not usable.
public GB18030Map (
int ustart, int uend, long gstart, long gend, bool dummy)
{
this.UStart = ustart;
this.UEnd = uend;
this.GStart = gstart;
this.GEnd = gend;
this.Dummy = dummy;
}
}
private GB18030Source ()
{
}
static readonly byte *gbx2uni;
static readonly byte *uni2gbx;
static readonly int gbx2uniSize, uni2gbxSize;
static GB18030Source ()
{
MethodInfo mi = typeof (Assembly).GetMethod (
"GetManifestResourceInternal",
BindingFlags.NonPublic | BindingFlags.Instance);
int size = 0;
Module mod = null;
IntPtr ret = IntPtr.Zero;
if (mi != null)
{
ret = (IntPtr)mi.Invoke(
Assembly.GetExecutingAssembly(),
new object[] { "gb18030.table", size, mod });
}
else
{
// DotNet's way ;)
using (var ms = Assembly.GetExecutingAssembly()
.GetManifestResourceStream("gb18030.table"))
{
var len = (int)ms.Length;
byte* buf = (byte*)Marshal.AllocHGlobal(sizeof(byte) * len);
for (int i = 0; i < len; i++)
buf[i] = (byte)ms.ReadByte();
ret = (IntPtr)buf;
}
}
if (ret != IntPtr.Zero) {
gbx2uni = (byte*) ((void*) ret);
gbx2uniSize =
(gbx2uni [0] << 24) + (gbx2uni [1] << 16) +
(gbx2uni [2] << 8) + (gbx2uni [3]);
gbx2uni += 4;
uni2gbx = gbx2uni + gbx2uniSize;
uni2gbxSize =
(uni2gbx [0] << 24) + (uni2gbx [1] << 16) +
(uni2gbx [2] << 8) + (uni2gbx [3]);
uni2gbx += 4;
}
}
static readonly long gbxBase =
FromGBXRaw (0x81, 0x30, 0x81, 0x30, false);
static readonly long gbxSuppBase =
FromGBXRaw (0x90, 0x30, 0x81, 0x30, false);
// See http://icu.sourceforge.net/docs/papers/gb18030.html
// and referenced XML mapping table.
static readonly GB18030Map [] ranges = new GB18030Map [] {
// rawmap: 0x0080-0x0451
new GB18030Map (0x0452, 0x200F, FromGBXRaw (0x81, 0x30, 0xD3, 0x30, false), FromGBXRaw (0x81, 0x36, 0xA5, 0x31, false), false),
// rawmap: 0x2010-0x2642
new GB18030Map (0x2643, 0x2E80, FromGBXRaw (0x81, 0x37, 0xA8, 0x39, false), FromGBXRaw (0x81, 0x38, 0xFD, 0x38, false), false),
// rawmap: 0x2E81-0x361A
new GB18030Map (0x361B, 0x3917, FromGBXRaw (0x82, 0x30, 0xA6, 0x33, false), FromGBXRaw (0x82, 0x30, 0xF2, 0x37, false), false),
// rawmap: 0x3918-0x3CE0
new GB18030Map (0x3CE1, 0x4055, FromGBXRaw (0x82, 0x31, 0xD4, 0x38, false), FromGBXRaw (0x82, 0x32, 0xAF, 0x32, false), false),
// rawmap: 0x4056-0x415F
new GB18030Map (0x4160, 0x4336, FromGBXRaw (0x82, 0x32, 0xC9, 0x37, false), FromGBXRaw (0x82, 0x32, 0xF8, 0x37, false), false),
// rawmap: 4337-0x44D6
new GB18030Map (0x44D7, 0x464B, FromGBXRaw (0x82, 0x33, 0xA3, 0x39, false), FromGBXRaw (0x82, 0x33, 0xC9, 0x31, false), false),
// rawmap: 0x464C-0x478D
new GB18030Map (0x478E, 0x4946, FromGBXRaw (0x82, 0x33, 0xE8, 0x38, false), FromGBXRaw (0x82, 0x34, 0x96, 0x38, false), false),
// rawmap: 0x4947-0x49B7
new GB18030Map (0x49B8, 0x4C76, FromGBXRaw (0x82, 0x34, 0xA1, 0x31, false), FromGBXRaw (0x82, 0x34, 0xE7, 0x33, false), false),
// rawmap: 0x4C77-0x4DFF
// 4E00-9FA5 are all mapped in GB2312
new GB18030Map (0x4E00, 0x9FA5, 0, 0, true),
new GB18030Map (0x9FA6, 0xD7FF, FromGBXRaw (0x82, 0x35, 0x8F, 0x33, false), FromGBXRaw (0x83, 0x36, 0xC7, 0x38, false), false),
// D800-DFFF are ignored (surrogate)
// E000-E76B are all mapped in GB2312.
new GB18030Map (0xD800, 0xE76B, 0, 0, true),
// rawmap: 0xE76C-E884
new GB18030Map (0xE865, 0xF92B, FromGBXRaw (0x83, 0x36, 0xD0, 0x30, false), FromGBXRaw (0x84, 0x30, 0x85, 0x34, false), false),
// rawmap: 0xF92C-FA29
new GB18030Map (0xFA2A, 0xFE2F, FromGBXRaw (0x84, 0x30, 0x9C, 0x38, false), FromGBXRaw (0x84, 0x31, 0x85, 0x37, false), false),
// rawmap: 0xFE30-FFE5
new GB18030Map (0xFFE6, 0xFFFF, FromGBXRaw (0x84, 0x31, 0xA2, 0x34, false), FromGBXRaw (0x84, 0x31, 0xA4, 0x39, false), false),
};
public static void Unlinear (byte [] bytes, int start, long gbx)
{
fixed (byte* bptr = bytes) {
Unlinear (bptr + start, gbx);
}
}
public static unsafe void Unlinear (byte* bytes, long gbx)
{
bytes [3] = (byte) (gbx % 10 + 0x30);
gbx /= 10;
bytes [2] = (byte) (gbx % 126 + 0x81);
gbx /= 126;
bytes [1] = (byte) (gbx % 10 + 0x30);
gbx /= 10;
bytes [0] = (byte) (gbx + 0x81);
}
// negative (invalid) or positive (valid)
public static long FromGBX (byte [] bytes, int start)
{
byte b1 = bytes [start];
byte b2 = bytes [start + 1];
byte b3 = bytes [start + 2];
byte b4 = bytes [start + 3];
if (b1 < 0x81 || b1 == 0xFF)
return -1;
if (b2 < 0x30 || b2 > 0x39)
return -2;
if (b3 < 0x81 || b3 == 0xFF)
return -3;
if (b4 < 0x30 || b4 > 0x39)
return -4;
if (b1 >= 0x90)
return FromGBXRaw (b1, b2, b3, b4, true);
long linear = FromGBXRaw (b1, b2, b3, b4, false);
long rawOffset = 0;
long startIgnore = 0;
for (int i = 0; i < ranges.Length; i++) {
GB18030Map m = ranges [i];
if (linear < m.GStart)
return ToUcsRaw ((int) (linear
- startIgnore + rawOffset));
if (linear <= m.GEnd)
return linear - gbxBase - m.GStart
+ m.UStart;
if (m.GStart != 0) {
rawOffset += m.GStart - startIgnore;
startIgnore = m.GEnd + 1;
}
}
// return ToUcsRaw ((int) (linear - gbxBase));
throw new SystemException (String.Format ("GB18030 INTERNAL ERROR (should not happen): GBX {0:x02} {1:x02} {2:x02} {3:x02}", b1, b2, b3, b4));
}
public static long FromUCSSurrogate (int cp)
{
return cp + gbxSuppBase;
}
public static long FromUCS (int cp)
{
long rawOffset = 0;
long startIgnore = 0x80;
for (int i = 0; i < ranges.Length; i++) {
GB18030Map m = ranges [i];
if (cp < m.UStart)
return ToGbxRaw ((int) (cp
- startIgnore + rawOffset));
if (cp <= m.UEnd)
return cp - m.UStart + m.GStart;
if (m.GStart != 0) {
rawOffset += m.UStart - startIgnore;
startIgnore = m.UEnd + 1;
}
}
throw new SystemException (String.Format ("GB18030 INTERNAL ERROR (should not happen): UCS {0:x06}", cp));
}
static long FromGBXRaw (
byte b1, byte b2, byte b3, byte b4, bool supp)
{
// 126 = 0xFE - 0x80
return (((b1 - (supp ? 0x90 : 0x81)) * 10 +
(b2 - 0x30)) * 126 +
(b3 - 0x81)) * 10 +
b4 - 0x30 + (supp ? 0x10000 : 0);
}
static int ToUcsRaw (int idx)
{
return gbx2uni [idx * 2] * 0x100 +
gbx2uni [idx * 2 + 1];
}
static long ToGbxRaw (int idx)
{
if (idx < 0 || idx * 2 + 1 >= uni2gbxSize)
return -1;
return gbxBase + uni2gbx [idx * 2] * 0x100 + uni2gbx [idx * 2 + 1];
}
#if BUILD_GENERATOR
public static void Main ()
{
new GB18030Source ().Run ();
}
byte [] uni2gbxMap;
byte [] gbx2uniMap;
void Run ()
{
int ustart = 0x80;
long gstart = 0;
int ucount = 0;
long gcount = 0;
bool skip = false;
for (int i = 0; i < ranges.Length; i++) {
GB18030Map m = ranges [i];
if (!skip) {
//Console.WriteLine ("---- adding {0:X04} umap. {1:X04} gmap, skip range between {2:X04} and {3:X04}", m.UStart - ustart, m.GStart != 0 ? m.GStart - gstart : 0, m.UStart, m.UEnd);
ucount += m.UStart - ustart;
}
if (m.GStart != 0)
gcount += m.GStart - gstart;
skip = m.GStart == 0;
ustart = m.UEnd + 1;
if (m.GStart != 0)
gstart = m.GEnd + 1;
}
Console.Error.WriteLine ("Total UCS codepoints: {0} ({1:X04})", ucount, ucount);
Console.Error.WriteLine ("Total GBX codepoints: {0} ({1:X04})", gcount, gcount);
uni2gbxMap = new byte [ucount * 2];
gbx2uniMap = new byte [gcount * 2];
XmlDocument doc = new XmlDocument ();
doc.XmlResolver = null;
doc.Load ("gb-18030-2000.xml");
foreach (XmlElement e in doc.SelectNodes (
"/characterMapping/assignments/a"))
AddMap (e);
using (FileStream fs = File.Create ("gb18030.table")) {
byte [] size = new byte [4];
for (int i = 0, len = gbx2uniMap.Length;
i < 4; i++, len >>= 8)
size [3 - i] = (byte) (len % 0x100);
fs.Write (size, 0, 4);
fs.Write (gbx2uniMap, 0, gbx2uniMap.Length);
fs.Write (uni2gbxMap, 0, uni2gbxMap.Length);
}
Console.WriteLine ("done.");
}
void AddMap (XmlElement e)
{
int u = int.Parse (e.GetAttribute ("u"),
NumberStyles.HexNumber);
byte [] b = new byte [4];
int idx = 0;
foreach (string s in e.GetAttribute ("b").Split (' '))
b [idx++] =
byte.Parse (s, NumberStyles.HexNumber);
if (idx != 4)
return;
AddMap (u, b);
}
void AddMap (int u, byte [] b)
{
int gbx = (int) (FromGBXRaw (
b [0], b [1], b [2], b [3], false) - gbxBase);
if (u > 0x10000 || gbx > 0x10000)
throw new Exception (String.Format (
"should not happen: {0:X04} {1:X04}",
u, gbx));
int uidx = IndexForUcs (u);
//Console.WriteLine ("U: {0:x04} for {1:x04} [{2:x02} {3:x02}]", uidx, u, (byte) (gbx / 0x100), (byte) (gbx % 0x100));
uni2gbxMap [uidx * 2] = (byte) (gbx / 0x100);
uni2gbxMap [uidx * 2 + 1] = (byte) (gbx % 0x100);
int gidx = IndexForGbx (gbx);
//Console.WriteLine ("G: {0:x04} for {1:x04} ({2:x02} {3:x02} {4:x02} {5:x02})", gidx, gbx, b [0], b [1], b [2], b [3]);
gbx2uniMap [gidx * 2] = (byte) (u / 0x100);
gbx2uniMap [gidx * 2 + 1] = (byte) (u % 0x100);
}
static int IndexForUcs (int ucs)
{
int start = 0x80;
int count = 0;
bool skip = false;
for (int i = 0; i < ranges.Length; i++) {
GB18030Map m = ranges [i];
if (!skip) {
if (ucs < m.UStart)
return count + ucs - start;
count += m.UStart - start;
}
skip = m.GStart == 0;
start = m.UEnd + 1;
}
return -1;
}
static int IndexForGbx (int gbx)
{
long start = 0;
long count = 0;
for (int i = 0; i < ranges.Length; i++) {
GB18030Map m = ranges [i];
if (m.GStart == 0)
continue;
if (gbx < m.GStart)
return (int) (count + gbx - start);
count += m.GStart - start;
start = m.GEnd + 1;
}
return -1;
}
#endif
}
}

View File

@@ -0,0 +1,14 @@
../Assembly/AssemblyInfo.cs
../../../build/common/Consts.cs
CP932.cs
ISO2022JP.cs
CP51932.cs
CP936.cs
CP949.cs
CP950.cs
CodeTable.cs
DbcsEncoding.cs
DbcsConvert.cs
GB18030Encoding.cs
GB18030Source.cs
JISConvert.cs

View File

@@ -0,0 +1,2 @@
I18N.CJK.Test.cs

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,97 @@
/*
* JISConvert.cs - Implementation of the "System.Text.JISConvert" class.
*
* Copyright (c) 2002 Southern Storm Software, Pty Ltd
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
namespace I18N.CJK
{
using System;
// This class assists other encoding classes in converting back
// and forth between JIS character sets and Unicode. It uses
// several large tables to do this, some of which are stored in
// the resource section of the assembly for efficient access.
internal unsafe sealed class JISConvert
{
// Table identifiers.
private const int JISX0208_To_Unicode = 1;
private const int JISX0212_To_Unicode = 2;
private const int CJK_To_JIS = 3;
private const int Greek_To_JIS = 4;
private const int Extra_To_JIS = 5;
// Public access to the conversion tables.
#if __PNET__
public byte *jisx0208ToUnicode;
public byte *jisx0212ToUnicode;
public byte *cjkToJis;
public byte *greekToJis;
public byte *extraToJis;
#else
public byte[] jisx0208ToUnicode;
public byte[] jisx0212ToUnicode;
public byte[] cjkToJis;
public byte[] greekToJis;
public byte[] extraToJis;
#endif
// Constructor.
private JISConvert()
{
// Load the conversion tables.
CodeTable table = new CodeTable("jis.table");
jisx0208ToUnicode = table.GetSection(JISX0208_To_Unicode);
jisx0212ToUnicode = table.GetSection(JISX0212_To_Unicode);
cjkToJis = table.GetSection(CJK_To_JIS);
greekToJis = table.GetSection(Greek_To_JIS);
extraToJis = table.GetSection(Extra_To_JIS);
table.Dispose();
}
// The one and only JIS conversion object in the system.
private static JISConvert convert;
static readonly object lockobj = new object ();
// Get the primary JIS conversion object.
public static JISConvert Convert
{
get
{
lock(lockobj)
{
if(convert != null)
{
return convert;
}
else
{
convert = new JISConvert();
return convert;
}
}
}
}
}; // class JISConvert
}; // namespace I18N.CJK

View File

@@ -0,0 +1,12 @@
thisdir = class/I18N/CJK
SUBDIRS =
include ../../../build/rules.make
LIBRARY = I18N.CJK.dll
LOCAL_MCS_FLAGS = /unsafe /resource:big5.table /resource:gb2312.table /resource:jis.table /resource:ks.table /resource:gb18030.table /r:$(corlib) /r:I18N.dll /define:DISABLE_UNSAFE
EXTRA_DISTFILES = big5.table jis.table gb2312.table ks.table gb18030.table \
README.gb18030 \
$(wildcard Test/texts/*.txt)
include ../../../build/library.make

View File

@@ -0,0 +1,26 @@
* GB18030 support
GB18030Encoding requires an assembly resource named "gb18030.table".
This resource can be generated from "GB18030Source.exe" with an
external resource "gb18030-2000.xml":
http://dev.icu-project.org/cgi-bin/viewcvs.cgi/*checkout*/charset/data/xml/gb-18030-2000.xml
- or -
http://monkey.workarea.jp/mono/unicode/gb-18030-2000.xml
To create GB18030Source.exe, compile GB18030Source.cs as a standalone
module:
mcs GB18030.cs /unsafe /d:BUILD_GENERATOR
and then run:
mono GB18030.exe
It expects that gb18030-2000.xml is in the same directory, and
generates a binary file "gb18030.table".
This table file is included as a resource in this assembly.
Atsushi Eno <atsushi@ximian.com>

View File

@@ -0,0 +1,81 @@
2009-10-09 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added test for iso-2022-jp wrong esc sequences.
2009-04-15 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added test for bug #491799.
2008-06-09 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added test for bug #398273.
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs :
added Decoder950Refresh() and Decoder950NoRefresh().
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs :
added Decoder949Refresh() and Decoder949NoRefresh().
2006-01-23 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs :
added Decoder936Refresh() and Decoder936NoRefresh().
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs :
added Decoder51932Refresh() and Decoder51932NoRefresh().
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added Decoder932Refresh().
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : Actually some of new tests fail under .NET 1.x.
Added Encoder54936Refresh() which tests Encoder.GetBytes() where
refresh==true.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : Added test for #77307. Unify those "get bytes
for all of chars" tests.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : Added test for #77306.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : fixed broken method extraction. Added test for
#77298.
2006-01-20 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added test for bug #77274. Unify those
"all pair of bytes" tests code.
2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added test for bug #77238.
2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : added test for bug #77223, #77224 and #77222.
2005-12-06 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : w00t, Now all test are working, including
codepage 936 (GB2312) and GB18030.
2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : BIG5 tests are now working.
2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
* I18N.CJK.Test.cs : initial NUnit test checkin.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,133 @@
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD>
ά<EFBFBD><EFBFBD><EFBFBD>ٿƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵİٿ<EFBFBD>ȫ<EFBFBD><EFBFBD>
Jump to: navigation, search
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>׶<EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9,596,960ƽ<30><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>е<EFBFBD>4λ)
* ˮ<><CBAE><EFBFBD>ʣ<EFBFBD>2.8%
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ٷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD> <09><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>͹淶<CDB9><E6B7B6><EFBFBD><EFBFBD>
<EFBFBD>˿ڣ<EFBFBD>
* <20><><EFBFBD>˿ڣ<CBBF>1,306,313,812<31>ˣ<EFBFBD>2005<30><35>7<EFBFBD>£<EFBFBD><C2A3><EFBFBD>½<EFBFBD>ȵأ<C8B5> (<28>е<EFBFBD>1λ)
* <20>˿<EFBFBD><CBBF>ܶȣ<DCB6>135.4/km2
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>
* <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>ף<EFBFBD><D7A3><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ұ<C2BC>
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>10<31><30>1<EFBFBD>գ<EFBFBD>1949<34><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>λ<EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* GDP<44><50>$1.6494<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>2004<EFBFBD>
* <20>˾<EFBFBD>GDP<44><50>$1,270<37><30>2004<30>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD> <09>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>Ҹ<EFBFBD><EFBFBD>ԣ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><09><><EFBFBD>¾<EFBFBD><C2BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> UTC+8
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD> .CN
<EFBFBD><EFBFBD><EFBFBD>ʵ绰<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> 86
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>ϴӶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޵<EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴӶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD><EFBFBD>ʰ뵺<EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD>Ŀǰֱ<EFBFBD>ӹ<EFBFBD>Ͻ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>22<EFBFBD><EFBFBD>ʡ<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>ֱϽ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ960<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>ǧ<EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ933<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>ǧ<EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD>13<EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD>ҡ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD>˽׼<EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD>Թ<EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>͹淶<EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD>120<EFBFBD>ȵı<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊȫ<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>׼ʱ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD>1971<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><EFBFBD><EFBFBD>
1949<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǩ<EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>Ҽ̳У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD>ҶԴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><EFBFBD>ϡ<EFBFBD>Ω<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чͳ<EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>ȫͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B>ɰ<EFBFBD><C9B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD>״̬<D7B4><CCAC>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ڽ<EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ϵĽ<CFB5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>Ĵ󲿷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬲<EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʳ<EFBFBD><EFBFBD>ϣ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱҲʹ<EFBFBD>á<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ʵľ<EFBFBD><EFBFBD>庭ָ<EFBFBD>в<EFBFBD>ͬ<EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>ͬ<EFBFBD>ı߾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ֱ<EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳʹ<EFBFBD>á<EFBFBD><EFBFBD>ڵء<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD>򡰶԰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><EFBFBD>ʹ<EFBFBD>á<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ŀ¼
[<5B><><EFBFBD><EFBFBD>]
* 1 <20><>ʷ
* 2 <20><><EFBFBD><EFBFBD>
* 3 <20><><EFBFBD><EFBFBD>
* 4 <20><><EFBFBD><EFBFBD>
* 5 <20><><EFBFBD><EFBFBD>
* 6 <20><><EFBFBD><EFBFBD>
* 7 <20>˿<EFBFBD>
* 8 <20>Ļ<EFBFBD>
* 9 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
* 10 <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
* 11 ע<><D7A2>
[<5B>༭]
<EFBFBD><EFBFBD>ʷ
<EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ǿʢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD>Ω<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>רȨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾɣ<EFBFBD><EFBFBD>»<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>1840<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѻƬս<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᡣ1912<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ⽨<EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD>׸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>൱ǿ<EFBFBD>󣬹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>ܳɹ<EFBFBD>ʵ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1917<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>֪ʶ<EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1919<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>⽻ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>1921<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>
1927<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѣ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>Χ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD>1934<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD>Χ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD>ũ<EFBFBD>巢չ<EFBFBD><EFBFBD>1935<EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>1937<EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𲽷<EFBFBD>չΪ<EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>1945<EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD>ڼ䣬<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD>ݵؾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۡ<EFBFBD>1945<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><EFBFBD>ʧ<EFBFBD>ܡ<EFBFBD>1946<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1949<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>1949<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>ڽڰ<EFBFBD><EFBFBD>ˣ<EFBFBD>ͬ<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>12<EFBFBD><EFBFBD>7<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽǨ<EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>Ӵ˿<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳơ<EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD>ѽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>档1950<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><EFBFBD>𲽽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD>ҵ<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ԭ<EFBFBD>򣬵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵĹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>1950<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>½<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>׵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>1953<EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҲΪ<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ķ<EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1956<EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ߡ<EFBFBD>1957<EFBFBD><EFBFBD>ë<EFBFBD>󶫷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҡ<EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>֪ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1958<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硱ʢ<EFBFBD>С<EFBFBD>1959<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ѣ<EFBFBD><EFBFBD><EFBFBD>Ԯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1959<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1961<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ڡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֺ<EFBFBD>ʱ<EFBFBD>ڡ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʵ<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD>ΪĿ<EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD>ûָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD>1966<EFBFBD>꣬ë<EFBFBD>󶫷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʮ<EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD>޲<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʢ<EFBFBD>еġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľɡ<EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD>͸<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD>á<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><EFBFBD><EFBFBD>1976<EFBFBD><EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1964<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>16<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ԭ<EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD>ը<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>1967<EFBFBD><EFBFBD>6<EFBFBD><EFBFBD>17<EFBFBD><EFBFBD><EFBFBD>ֳɹ<EFBFBD><EFBFBD><EFBFBD>ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1970<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>24<EFBFBD>գ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD>1971<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>25<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>2758<EFBFBD>ž<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1972<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD>ë<EFBFBD>󶫣<EFBFBD>1973<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1979<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>
1978<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>Сƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>ʵ<EFBFBD>иĸ↑<EFBFBD>š<EFBFBD>Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD>ٷ<EFBFBD>չͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĸ<EFBFBD><EFBFBD>ܡ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣1989<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҫ<EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ಡȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѫ<EFBFBD>ս<EFBFBD>𾪹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸĸ<EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹĸ<EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD>غͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1992<EFBFBD><EFBFBD>Ѵ<EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽְ<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Сƽͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ↑<EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۡ<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD>Ĵ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹĸ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵˣ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>ʽ<EFBFBD>ɼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>졣1997<EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>1<EFBFBD>գ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>1999<EFBFBD><EFBFBD>12<EFBFBD><EFBFBD>20<EFBFBD>գ<EFBFBD><EFBFBD>ָֻ<EFBFBD><EFBFBD>԰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>2002<EFBFBD><EFBFBD><EFBFBD>2003<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SARS<EFBFBD>¼<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ոı<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>Ӧ<EFBFBD>Գٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>ʩ<EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顣2003<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>15<EFBFBD>գ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD>ؽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>֮һ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD>ֺųơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>ѳ<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD>ɺ<EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
[<5B>༭]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9,602,716ƽ<36><C6BD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFA3AC>ʿ<EFBFBD><CABF><EFBFBD>9,596,960ƽ<30><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λע1<D7A2><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>300<30><30><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>½<EFA1A3>糤2<E7B3A4><32><EFBFBD><EFBFBD><EFBFBD>Ė|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>քe<D684><EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD>ɹš<C9B9><C5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹̹<CBB9><CCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹˹̹<CBB9><CCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹̹<CBB9><CCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>˹̹<CBB9><CCB9>ӡ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><E1B2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A1A2><EFBFBD>Ρ<EFBFBD>Խ<EFBFBD>ϵȽ<CFB5><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>1.8<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD>c<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD>c<EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6,500<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>Ϊ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>λ <09><><EFBFBD><EFBFBD> ʵ<>ʿ<EFBFBD><CABF><EFBFBD>
<EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBDAD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>Ү<EFBFBD>ֽ籮<D6BD><E7B1AE><EFBFBD>ǣ<EFBFBD>
<EFBFBD><EFBFBD>Ϲ<EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>136<EFBFBD><EFBFBD>5<EFBFBD>֣<EFBFBD> <09><>Ϲ<EFBFBD>ӵ<EFBFBD><D3B5>϶˶԰<CBB6><D4B0><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>135<33><35>41-44<34>֣<EFBFBD>
<EFBFBD><EFBFBD> <09>½<EFBFBD><C2BD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׶<EFBFBD><D7B6><EFBFBD>ԭ<EFBFBD><D4AD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>73<37><33>40<34>֣<EFBFBD> ͬ<><CDAC>
<EFBFBD><EFBFBD> Į<><C4AE><EFBFBD>Ա<EFBFBD><D4B1>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>γ53<35><33>31<33>֣<EFBFBD> ͬ<><CDAC>
<EFBFBD><EFBFBD> <09>Ϻ<EFBFBD><CFBA><EFBFBD><EEB5BA><EFBFBD>϶˵<CFB6><CBB5><EFBFBD>ĸ<EFBFBD><C4B8>ɳ<EFBFBD><C9B3>Լ<EFBFBD><D4BC>γ4<CEB3><34>15<31>֣<EFBFBD> <09>Ϻ<EFBFBD><CFBA><EFBFBD><EEB5BA><EFBFBD>ϲ<EFBFBD><CFB2>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>γ8<CEB3><38>51-52<35>֣<EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Ŵ<EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δʵ<EFBFBD>ʹ<EFBFBD>Ͻ<EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>
* ̨<><EFBFBD><E5A1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD><C5A1><EFBFBD><EFBFBD><EFBFBD><E6A1A2>ɳȺ<C9B3><C8BA><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><CFBD>
* <20><><EFBFBD><EFBFBD>̨<EFBFBD>е<EFBFBD><D0B5><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD><D5B1>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>ع<EFBFBD>Ͻ<EFBFBD><CFBD>
* <20><><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>Ͽɵ<CFBF><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>֣<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ӡ<EFBFBD>ȵİ<C8B5>³<EFBFBD><C2B3>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>ð<EFBFBD><C3B0>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>
* <20><>ɳȺ<C9B3><C8BA><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>񹲺͹<F1B9B2BA><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>Ͻ<EFBFBD><CFBD>
* <20><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ɷ<EFBFBD><C9B7>ɱ<EFBFBD><C9B1><EFBFBD>Ͻ<EFBFBD><CFBD>
ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
* <20><>ɳȺ<C9B3><C8BA><EFBFBD><EFBFBD>Խ<EFBFBD>ϡ<EFBFBD><CFA1>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
* <20><EFBFBD><E4B5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><EFBFBD>Ϊ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹš<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>19<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>Ȳ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҲӦӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<7C><>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD> <20>ȡ<EFBFBD>
<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Ŵ<EFBFBD>
<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹲺͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռȫ<EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD>ɽ<EFBFBD><EFBFBD>33.3%<25><><EFBFBD><EFBFBD>ԭ26%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8.8%<25><>ƽԭ12%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9.9%<25><><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ߵĸ<DFB5>ԭ<EFBFBD><D4AD><EFBFBD>ظ<EFBFBD>ԭ<EFBFBD><D4AD>ƽ<EFBFBD><C6BD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>4000<30><30><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB><EFBFBD>ݣ<EFBFBD><DDA3>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>Ϊһϵ<D2BB>и<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>Ϊ<EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ڴ<EFBFBD><DAB4>˰<EFBFBD><CBB0>롢̫<EBA1A2><CCAB>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD>ѩ<EFBFBD><D1A9>ɽһ<C9BD><D2BB><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>Ϊƽԭ<C6BD><D4AD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6000<30>ף<EFBFBD><D7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5A3AC><EFBFBD><EFBFBD>8844.43<EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>߷塣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>ȫ<EFBFBD><EFBFBD>6380<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>лƺӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>
<EFBFBD>й<EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>Ƚϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>߷ֲ<EFBFBD><EFBFBD><EFBFBD>Į<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>1 <20><>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>50<35><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ԭ<EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD>7<EFBFBD><37>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>20<32><30><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><CFA1>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD>͵ĵط<C4B5><D8B7>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Į<EFBFBD><C4AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ- 30.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-52.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĵط<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳȺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ22.9<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĵط<EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ33<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>49.6<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>http://zh.wikipedia.org/wiki/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD<42><44>

Some files were not shown because too many files have changed in this diff Show More