Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java Fri Dec 27 23:00:13 2019 @@ -20,7 +20,6 @@ package org.apache.poi.hssf.record; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.BufferedReader; @@ -36,40 +35,33 @@ import org.apache.poi.hssf.HSSFTestDataS import org.apache.poi.hssf.record.common.UnicodeString; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.storage.RawDataUtil; import org.apache.poi.util.HexRead; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LocaleUtil; import org.junit.Test; -import junit.framework.AssertionFailedError; - -/** - * @author Marc Johnson (mjohnson at apache dot org) - * @author Glen Stampoultzis (glens at apache.org) - */ public final class TestSSTRecord { /** * decodes hexdump files and concatenates the results * @param hexDumpFileNames names of sample files in the hssf test data directory - * @throws IOException */ private static byte[] concatHexDumps(String... hexDumpFileNames) throws IOException { int nFiles = hexDumpFileNames.length; ByteArrayOutputStream baos = new ByteArrayOutputStream(nFiles * 8228); - for (int i = 0; i < nFiles; i++) { - String sampleFileName = hexDumpFileNames[i]; - InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleFileName); - BufferedReader br = new BufferedReader(new InputStreamReader(is, LocaleUtil.CHARSET_1252)); - - while (true) { - String line = br.readLine(); - if (line == null) { - break; + for (String sampleFileName : hexDumpFileNames) { + try (InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleFileName)) { + BufferedReader br = new BufferedReader(new InputStreamReader(is, LocaleUtil.CHARSET_1252)); + + while (true) { + String line = br.readLine(); + if (line == null) { + break; + } + baos.write(HexRead.readFromString(line)); } - baos.write(HexRead.readFromString(line)); } - is.close(); } return baos.toByteArray(); @@ -89,7 +81,6 @@ public final class TestSSTRecord { /** * SST is often split over several {@link ContinueRecord}s - * @throws IOException */ @Test public void testContinuedRecord() throws IOException { @@ -120,9 +111,8 @@ public final class TestSSTRecord { // } SSTRecord rec2 = createSSTFromRawData(ser_output); - if (!areSameSSTs(record, rec2)) { - throw new AssertionFailedError("large SST re-serialized incorrectly"); - } + assertRecordEquals(record, rec2); + // if (false) { // // TODO - trivial differences in ContinueRecord break locations // // Sample data should be checked against what most recent Excel version produces. @@ -131,27 +121,8 @@ public final class TestSSTRecord { // } } - private boolean areSameSSTs(SSTRecord a, SSTRecord b) { - - if (a.getNumStrings() != b.getNumStrings()) { - return false; - } - int nElems = a.getNumUniqueStrings(); - if (nElems != b.getNumUniqueStrings()) { - return false; - } - for(int i=0; i<nElems; i++) { - if (!a.getString(i).equals(b.getString(i))) { - return false; - } - } - return true; - } - /** * Test capability of handling mondo big strings - * - * @exception IOException */ @Test public void testHugeStrings() { @@ -326,18 +297,13 @@ public final class TestSSTRecord { assertEquals( 0, record.getNumUniqueStrings() ); assertEquals( 0, record.countStrings() ); byte[] output = record.serialize(); - byte[] expected = - { - (byte) record.getSid(), (byte) ( record.getSid() >> 8 ), - (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0, - (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 - }; + byte[] expected = { + (byte) record.getSid(), (byte) ( record.getSid() >> 8 ), + (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0, + (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 + }; - assertEquals( expected.length, output.length ); - for ( int k = 0; k < expected.length; k++ ) - { - assertEquals( String.valueOf( k ), expected[k], output[k] ); - } + assertArrayEquals(expected, output); } /** @@ -345,1117 +311,28 @@ public final class TestSSTRecord { */ @Test public void testReadWriteDuplicatedRichText1() throws Exception { - HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("duprich1.xls"); - HSSFSheet sheet = wb.getSheetAt( 1 ); - assertEquals( "01/05 (Wed)", sheet.getRow( 0 ).getCell(8 ).getStringCellValue() ); - assertEquals( "01/05 (Wed)", sheet.getRow( 1 ).getCell(8 ).getStringCellValue() ); - - HSSFTestDataSamples.writeOutAndReadBack(wb).close(); - - wb.close(); - - // test the second file. - wb = HSSFTestDataSamples.openSampleWorkbook("duprich2.xls"); - sheet = wb.getSheetAt( 0 ); - int row = 0; - assertEquals( "Testing", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() ); - assertEquals( "rich", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() ); - assertEquals( "text", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() ); - assertEquals( "strings", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() ); - assertEquals( "Testing", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() ); - assertEquals( "Testing", sheet.getRow( row++ ).getCell(0 ).getStringCellValue() ); - - HSSFTestDataSamples.writeOutAndReadBack(wb).close(); - - wb.close(); - } - - /** - * hex dump from UnicodeStringFailCase1.xls atatched to Bugzilla 50779 - */ - private static final String data_50779_1 = - //Offset=0x00000612(1554) recno=71 sid=0x00FC size=0x2020(8224) - " FC 00 20 20 51 00 00 00 51 00 00 00 32 00" + - "05 10 00 00 00 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 30 00 31 00 01 00 0C 00 05 00 35" + - "00 00 00 00 00 00 00 4B 30 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 30 00 32 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 30 00 33 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 30 00 34 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 30 00 35 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 30 00 36 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 30" + - "00 37 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 30 00 38 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 30 00 39" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 31 00 30 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 31 00 31 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 31 00 32 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 31 00 33 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "31 00 34 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 31 00 35 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 31 00" + - "36 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 31 00 37 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 31 00 38 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 31 00 39 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 32 00 30 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 32 00 31 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 32 00 32 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 32" + - "00 33 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 32 00 34 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 32 00 35" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 32 00 36 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 32 00 37 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 32 00 38 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 32 00 39 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "33 00 30 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 33 00 31 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 33 00" + - "32 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 33 00 33 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 33 00 34 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 33 00 35 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 33 00 36 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 33 00 37 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 33 00 38 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 33" + - "00 39 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 34 00 30 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 34 00 31" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 34 00 32 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 34 00 33 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 34 00 34 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 34 00 35 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "34 00 36 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 34 00 37 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 34 00" + - "38 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 34 00 39 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 35 00 30 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 35 00 31 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 35 00 32 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 35 00 33 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 35 00 34 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 35" + - "00 35 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 35 00 36 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 35 00 37" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 35 00 38 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 35 00 39 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 36 00 30 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 36 00 31 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "36 00 32 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 36 00 33 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 36 00" + - "34 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 36 00 35 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 36 00 36 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 36 00 37 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 36 00 38 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 36 00 39 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 37 00 30 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 37" + - "00 31 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 37 00 32 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 37 00 33" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 37 00 34 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 37 00 35 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 37 00 36 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 37 00 37 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "37 00 38 00 1F 00 05 B8 00 00 00 17 53 77 6D 53" + - "90 52 97 EE 68 0C 77 A9 5C 4B 62 0C 77 8F 79 F6" + - "5C 0C 77 03 68 28 67 0C 77 FC 57 89 73 0C 77 71" + - "67 AC 4E FD 90 43 53 49 84 0C 77 5E 79 48 59 DD" + - "5D 0C 77 77 95 CE 91 0C 77 01 00 B4 00 05 00 35" + - "00 0A 00 37 00 37 00 DB 30 C3 30 AB 30 A4 30 C9" + - "30 A6 30 A2 30 AA 30 E2 30 EA 30 B1 30 F3 30 A4" + - "30 EF 30 C6 30 B1 30 F3 30 D5 30 AF 30 B7 30 DE" + - "30 B1 30 F3 30 C8 30 C1 30 AE 30 B1 30 F3 30 B5" + - "30 A4 30 BF 30 DE 30 B1 30 F3 30 C8 30 A6 30 AD" + - "30 E7 30 A6 30 C8 " + - - // Offset=0x00002636(9782) recno=72 sid=0x003C size=0x0151(337) - " 3C 00 51 01 30 C1 30 D0 30 B1" + - "30 F3 30 AB 30 CA 30 AC 30 EF 30 B1 30 F3 30 CA" + - "30 AC 30 CE 30 B1 30 F3 30 00 00 00 00 03 00 06" + - "00 03 00 03 00 0C 00 06 00 03 00 11 00 09 00 03" + - "00 17 00 0C 00 03 00 1C 00 0F 00 03 00 22 00 12" + - "00 03 00 28 00 15 00 03 00 2C 00 18 00 04 00 32" + - "00 1C 00 03 00 32 00 05 10 00 00 00 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 37 00 39 00" + - "01 00 0C 00 05 00 35 00 00 00 00 00 00 00 00 00" + - "32 00 05 10 00 00 00 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 38 00 30 00 01 00 0C 00 05" + - "00 35 00 00 00 00 00 00 00 4B 30 "; - + try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("duprich1.xls")) { + HSSFSheet sheet = wb.getSheetAt(1); + assertEquals("01/05 (Wed)", sheet.getRow(0).getCell(8).getStringCellValue()); + assertEquals("01/05 (Wed)", sheet.getRow(1).getCell(8).getStringCellValue()); + + HSSFTestDataSamples.writeOutAndReadBack(wb).close(); + } + + // test the second file. + try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("duprich2.xls")) { + HSSFSheet sheet = wb.getSheetAt(0); + int row = 0; + assertEquals("Testing", sheet.getRow(row++).getCell(0).getStringCellValue()); + assertEquals("rich", sheet.getRow(row++).getCell(0).getStringCellValue()); + assertEquals("text", sheet.getRow(row++).getCell(0).getStringCellValue()); + assertEquals("strings", sheet.getRow(row++).getCell(0).getStringCellValue()); + assertEquals("Testing", sheet.getRow(row++).getCell(0).getStringCellValue()); + assertEquals("Testing", sheet.getRow(row).getCell(0).getStringCellValue()); - /** - * hex dump from UnicodeStringFailCase2.xls atatched to Bugzilla 50779 - */ - private static final String data_50779_2 = - //"Offset=0x00000612(1554) recno=71 sid=0x00FC size=0x2020(8224)\n" + - " FC 00 20 20 51 00 00 00 51 00 00 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 30 00 31 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 30 00 32 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 30" + - "00 33 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 30 00 34 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 30 00 35" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 30 00 36 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 30 00 37 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 30 00 38 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 30 00 39 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "31 00 30 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 31 00 31 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 31 00" + - "32 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 31 00 33 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 31 00 34 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 31 00 35 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 31 00 36 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 31 00 37 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 31 00 38 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 31" + - "00 39 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 32 00 30 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 32 00 31" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 32 00 32 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 32 00 33 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 32 00 34 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 32 00 35 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "32 00 36 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 32 00 37 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 32 00" + - "38 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 32 00 39 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 33 00 30 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 33 00 31 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 33 00 32 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 33 00 33 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 33 00 34 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 33" + - "00 35 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 33 00 36 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 33 00 37" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 33 00 38 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 33 00 39 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 34 00 30 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 34 00 31 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "34 00 32 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 34 00 33 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 34 00" + - "34 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 34 00 35 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 34 00 36 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 34 00 37 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 34 00 38 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 34 00 39 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 35 00 30 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 35" + - "00 31 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 35 00 32 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 35 00 33" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 35 00 34 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 35 00 35 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 35 00 36 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 35 00 37 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "35 00 38 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 35 00 39 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 36 00" + - "30 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 36 00 31 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 36 00 32 00" + - "32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 36 00 33 00 32 00 01 42 30 44 30 46 30" + - "48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30" + - "57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30" + - "68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30" + - "75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30" + - "84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30" + - "8F 30 92 30 93 30 30 00 30 00 36 00 34 00 32 00" + - "01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F" + - "30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F" + - "30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D" + - "30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F" + - "30 80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A" + - "30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30" + - "00 36 00 35 00 32 00 01 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 36 00 36 00 32 00 01 42" + - "30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51" + - "30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61" + - "30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E" + - "30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80" + - "30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B" + - "30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 36" + - "00 37 00 32 00 01 42 30 44 30 46 30 48 30 4A 30" + - "4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30" + - "5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30" + - "6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30" + - "7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30" + - "88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30" + - "93 30 30 00 30 00 36 00 38 00 32 00 01 42 30 44" + - "30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53" + - "30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64" + - "30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F" + - "30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81" + - "30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C" + - "30 8D 30 8F 30 92 30 93 30 30 00 30 00 36 00 39" + - "00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B 30" + - "4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30" + - "5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30" + - "6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30" + - "7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30" + - "89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30" + - "30 00 30 00 37 00 30 00 32 00 01 42 30 44 30 46" + - "30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55" + - "30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66" + - "30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72" + - "30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82" + - "30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D" + - "30 8F 30 92 30 93 30 30 00 30 00 37 00 31 00 32" + - "00 01 42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30" + - "4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D 30" + - "5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30" + - "6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30" + - "7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89 30" + - "8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00" + - "30 00 37 00 32 00 32 00 01 42 30 44 30 46 30 48" + - "30 4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57" + - "30 59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68" + - "30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75" + - "30 78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84" + - "30 86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F" + - "30 92 30 93 30 30 00 30 00 37 00 33 00 32 00 01" + - "42 30 44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30" + - "51 30 53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30" + - "61 30 64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30" + - "6E 30 6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30" + - "80 30 81 30 82 30 84 30 86 30 88 30 89 30 8A 30" + - "8B 30 8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00" + - "37 00 34 00 32 00 01 42 30 44 30 46 30 48 30 4A" + - "30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30 59" + - "30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A" + - "30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78" + - "30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30 86" + - "30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92" + - "30 93 30 30 00 30 00 37 00 35 00 32 00 01 42 30" + - "44 30 46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30" + - "53 30 55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30" + - "64 30 66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30" + - "6F 30 72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30" + - "81 30 82 30 84 30 86 30 88 30 89 30 8A 30 8B 30" + - "8C 30 8D 30 8F 30 92 30 93 30 30 00 30 00 37 00" + - "36 00 32 00 01 42 30 44 30 46 30 48 30 4A 30 4B" + - "30 4D 30 4F 30 51 30 53 30 55 30 57 30 59 30 5B" + - "30 5D 30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B" + - "30 6C 30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B" + - "30 7E 30 7F 30 80 30 81 30 82 30 84 30 86 30 88" + - "30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93" + - "30 30 00 30 00 37 00 37 00 32 00 01 42 30 44 30" + - "46 30 48 30 4A 30 4B 30 4D 30 4F 30 51 30 53 30" + - "55 30 57 30 59 30 5B 30 5D 30 5F 30 61 30 64 30" + - "66 30 68 30 6A 30 6B 30 6C 30 6D 30 6E 30 6F 30" + - "72 30 75 30 78 30 7B 30 7E 30 7F 30 80 30 81 30" + - "82 30 84 30 86 30 88 30 89 30 8A 30 8B 30 8C 30" + - "8D 30 8F 30 92 30 93 30 30 00 30 00 37 00 38 00" + - "18 00 05 96 00 00 00 17 53 77 6D 53 90 52 97 EE" + - "68 0C 77 A9 5C 4B 62 0C 77 8F 79 F6 5C 0C 77 03" + - "68 28 67 0C 77 FC 57 89 73 0C 77 71 67 AC 4E FD" + - "90 43 53 49 84 0C 77 01 00 92 00 05 00 35 00 08" + - "00 2C 00 2C 00 DB 30 C3 30 AB 30 A4 30 C9 30 A6" + - "30 A2 30 AA 30 E2 30 EA 30 B1 30 F3 30 A4 30 EF" + - "30 C6 30 B1 30 F3 30 D5 30 AF 30 B7 30 DE 30 B1" + - "30 F3 30 C8 30 C1 30 AE 30 B1 30 F3 30 B5 30 A4" + - "30 BF 30 DE 30 B1 30 F3 30 C8 30 A6 30 AD 30 E7" + - "30 A6 30 C8 30 C1 30 D0 30 B1 30 F3 30 00 00 00" + - "00 03 00 06 00 03 00 03 00 0C 00 06 00 03 00 11" + - "00 09 00 03 00 17 " + - - //Offset=0x00002636(9782) recno=72 sid=0x003C size=0x010D(269) - " 3C 00 0D 01 00 0C 00 03 00 1C" + - "00 0F 00 03 00 22 00 12 00 03 00 28 00 15 00 03" + - "00 32 00 05 10 00 00 00 42 30 44 30 46 30 48 30" + - "4A 30 4B 30 4D 30 4F 30 51 30 53 30 55 30 57 30" + - "59 30 5B 30 5D 30 5F 30 61 30 64 30 66 30 68 30" + - "6A 30 6B 30 6C 30 6D 30 6E 30 6F 30 72 30 75 30" + - "78 30 7B 30 7E 30 7F 30 80 30 81 30 82 30 84 30" + - "86 30 88 30 89 30 8A 30 8B 30 8C 30 8D 30 8F 30" + - "92 30 93 30 30 00 30 00 37 00 39 00 01 00 0C 00" + - "05 00 35 00 00 00 00 00 00 00 00 00 32 00 05 10" + - "00 00 00 42 30 44 30 46 30 48 30 4A 30 4B 30 4D" + - "30 4F 30 51 30 53 30 55 30 57 30 59 30 5B 30 5D" + - "30 5F 30 61 30 64 30 66 30 68 30 6A 30 6B 30 6C" + - "30 6D 30 6E 30 6F 30 72 30 75 30 78 30 7B 30 7E" + - "30 7F 30 80 30 81 30 82 30 84 30 86 30 88 30 89" + - "30 8A 30 8B 30 8C 30 8D 30 8F 30 92 30 93 30 30" + - "00 30 00 38 00 30 00 01 00 0C 00 05 00 35 00 00" + - "00 00 00 00 00 4B 30 "; + HSSFTestDataSamples.writeOutAndReadBack(wb).close(); + } + } /** @@ -1465,17 +342,25 @@ public final class TestSSTRecord { assertEquals("number of strings", expected.getNumStrings(), actual.getNumStrings()); assertEquals("number of unique strings", expected.getNumUniqueStrings(), actual.getNumUniqueStrings()); assertEquals("count of strings", expected.countStrings(), actual.countStrings()); - for ( int k = 0; k < expected.countStrings(); k++ ) { - org.apache.poi.hssf.record.common.UnicodeString us1 = expected.getString(k); - org.apache.poi.hssf.record.common.UnicodeString us2 = actual.getString(k); - assertEquals("String at idx=" + k, us1, us2); + Iterator<UnicodeString> iterA = expected.getStrings(); + Iterator<UnicodeString> iterB = actual.getStrings(); + while (iterA.hasNext()) { + assertEquals(iterA.next(), iterB.next()); } } - + @Test - public void test50779_1(){ - byte[] bytes = HexRead.readFromString(data_50779_1); + public void test50779_1() throws IOException { + byte[] bytes = RawDataUtil.decompress("H4sIAAAAAAAAAL3aO2gVQRQG4HO5XkEZ8AESi4DBKoXFP+8IVioSvahcLxKC" + + "iRIRc9FEUZExCL4IYnyQqIi9SEATFUHRTkSQaBFsrEQLG8EiFgGrCM6uIGiff5c5e3ZY9l8W9mt2FqSjoyEixTBSW5kPm7EV29CNHa" + + "hjJ3ajgSb2oge92Id+HMAADuEwWjiCoxjCMI7hOE7iNM7gLM7hPC7gIi5hFJdxBWO4imu4jhsYxy3cBqTYtVRESU28/NnqMFJZ/Fgj" + + "lBjLiXGcGM+JCZyYyInp4sRsZMTo8sshxGhODEUBzVFAcxTQHAU0RwHNUUBzFNAcBQxHAcNRwHAUMBwFDEcBw1HAcBQwHAUMRwHDUc" + + "ByFLAcBSxHActRwHIUsBwFLEcBy1HAchSwHAUcRwHHUcBxFHAcBRxHAcdRwHEUcBwFHEcBx1HAcxTwHAU8RwHPUcBzFPAcBTxHAc9R" + + "wHMU8BwFAkeBwFEgcBQIHAUCR4HAUSBwFAgcBQJHgcBRIHIUiBwFIkeByFEgchSIHAUiR4HIUSBmBdZJ7aWItDXTcHNiz925lkoP+u" + + "oHVRof+dmnUrXVOajSQs/YKZVODE7v+jWxpbl9VKX9I929n/tVSndmb6pUkWfl//Tl5ZN/whtM4T7eYRL38BBf8R1PMZ9nfuBt2X3E" + + "E7zAl7KfwWs8Lrvn+YpXf2cn8Qjfcp3ZJI1KvuZDOT+F95jO9yn6opstu+IvflWW5lEVVR5XybJc2/JZVdplRa7rZXWunbIm1w2yVp" + + "bkN9yee9Kyg5gp/HfZAW3FQ1ce/694+A14Ha5/eSEAAA=="); RecordInputStream in = TestcaseRecordInputStream.create(bytes); assertEquals(SSTRecord.sid, in.getSid()); @@ -1493,8 +378,15 @@ public final class TestSSTRecord { } @Test - public void test50779_2() { - byte[] bytes = HexRead.readFromString(data_50779_2); + public void test50779_2() throws IOException { + byte[] bytes = RawDataUtil.decompress("H4sIAAAAAAAAAL3Uu2sVQRjG4e9wOKKw4gUkKSyCVQqLd2d2ZhOwiiLqQSUe" + + "JIgRUcQc1ERUZBXBG0GMFxIiaC8S8I6FWIoIop2NlWBhI1hoIVhFcM6Cgn+Avx3m2+HbXd5hYJ9FGxgYNbPedNYY0SZt1hZtU1vbtV" + + "Oj6mi3xrRHe7VP+3VAh3RYXR3RUR3TpKZ0XCd1Wmd0Tud1QRd1SZc1rSu6qhld03Xd0E3Nal63JOuNnIlxTIxnYgomJjAxkYkpmZgh" + + "JmaYiMnrPweIQRTIGQVyRoGcUSBnFMgZBXJGgZxRIGcUcIwCjlHAMQo4RgHHKOAYBRyjgGMUcIwCjlHAMwp4RgHPKOAZBTyjgGcU8I" + + "wCnlHAMwp4RoGCUaBgFCgYBQpGgYJRoGAUKBgFCkaBglGgYBQIjAKBUSAwCgRGgcAoEBgFAqNAYBQIjAKBUSAyCkRGgcgoEBkFIqNA" + + "ZBSIjAKRUSAyCkRGgZJRoGQUKBkFSkaBklGgZBQoGQVKRoEyKdBvrdtm1tepJjtzu+5862bV/fH2wayaPftzPKua3cGJrFocmzmVVS" + + "cmHu34Nbexs3U6qxo2b6105kttfRof9VoPdU/vtKC7eqDP+qpn+pE63/WmXn3QU73Qp3r9Vq/0pF49T2+8/Ntd0GN9SbX3/H3dSxuz" + + "pi1Js2lZfV9ly1Lt22DLG6nTtLW2ItV1tjrVQVuTqrPWyvTZ/z+7YettoXcIfy4oeijNf6Pb+g0SIvVzNSEAAA=="); RecordInputStream in = TestcaseRecordInputStream.create(bytes); assertEquals(SSTRecord.sid, in.getSid()); @@ -1519,6 +411,6 @@ public final class TestSSTRecord { SSTRecord src = new SSTRecord(in); assertEquals(0, src.getNumStrings()); assertEquals(0, src.getNumUniqueStrings()); - + } }
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java Fri Dec 27 23:00:13 2019 @@ -17,18 +17,18 @@ package org.apache.poi.hssf.record; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.hssf.record.common.UnicodeString; import org.apache.poi.hssf.record.cont.ContinuableRecordOutput; import org.apache.poi.util.IntMapper; import org.apache.poi.util.LittleEndianConsts; +import org.junit.Test; /** * Tests that records size calculates correctly. - * - * @author Glen Stampoultzis (glens at apache.org) */ -public final class TestSSTRecordSizeCalculator extends TestCase { +public final class TestSSTRecordSizeCalculator { private static final String SMALL_STRING = "Small string"; private static final int COMPRESSED_PLAIN_STRING_OVERHEAD = 3; private static final int OPTION_FIELD_SIZE = 1; @@ -53,6 +53,7 @@ public final class TestSSTRecordSizeCalc assertEquals(expectedSize, cro.getTotalSize()); } + @Test public void testBasic() { strings.add(makeUnicodeString(SMALL_STRING)); confirmSize(SST_RECORD_OVERHEAD @@ -60,6 +61,7 @@ public final class TestSSTRecordSizeCalc + SMALL_STRING.length()); } + @Test public void testBigStringAcrossUnicode() { int bigString = MAX_DATA_SPACE + 100; strings.add(makeUnicodeString(bigString)); @@ -71,6 +73,7 @@ public final class TestSSTRecordSizeCalc + 100); } + @Test public void testPerfectFit() { int perfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD; strings.add(makeUnicodeString(perfectFit)); @@ -79,6 +82,7 @@ public final class TestSSTRecordSizeCalc + perfectFit); } + @Test public void testJustOversized() { int tooBig = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD + 1; strings.add(makeUnicodeString(tooBig)); @@ -91,6 +95,7 @@ public final class TestSSTRecordSizeCalc } + @Test public void testSecondStringStartsOnNewContinuation() { int perfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD; strings.add(makeUnicodeString(perfectFit)); @@ -103,6 +108,7 @@ public final class TestSSTRecordSizeCalc + SMALL_STRING.length()); } + @Test public void testHeaderCrossesNormalContinuePoint() { int almostPerfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD - 2; strings.add(makeUnicodeString(almostPerfectFit)); @@ -117,6 +123,7 @@ public final class TestSSTRecordSizeCalc + oneCharString.length()); } + private static UnicodeString makeUnicodeString(int size) { String s = new String(new char[size]); return makeUnicodeString(s); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org