public void SetUp() { dgg = new EscherDggRecord(); dgg.FileIdClusters = (new EscherDggRecord.FileIdCluster[0]); drawingManager2 = new DrawingManager2(dgg); }
public void TestCreateAggregate() { String msoDrawingRecord1 = "0F 00 02 F0 20 01 00 00 10 00 08 F0 08 00 00 00 " + "03 00 00 00 02 04 00 00 0F 00 03 F0 08 01 00 00 " + "0F 00 04 F0 28 00 00 00 01 00 09 F0 10 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "02 00 0A F0 08 00 00 00 00 04 00 00 05 00 00 00 " + "0F 00 04 F0 64 00 00 00 42 01 0A F0 08 00 00 00 " + "01 04 00 00 00 0A 00 00 73 00 0B F0 2A 00 00 00 " + "BF 00 08 00 08 00 44 01 04 00 00 00 7F 01 00 00 " + "01 00 BF 01 00 00 11 00 C0 01 40 00 00 08 FF 01 " + "10 00 10 00 BF 03 00 00 08 00 00 00 10 F0 12 00 " + "00 00 00 00 01 00 54 00 05 00 45 00 01 00 88 03 " + "05 00 94 00 00 00 11 F0 00 00 00 00"; String msoDrawingRecord2 = "0F 00 04 F0 64 00 00 00 42 01 0A F0 08 00 00 00 " + "02 04 00 00 80 0A 00 00 73 00 0B F0 2A 00 00 00 " + "BF 00 08 00 08 00 44 01 04 00 00 00 7F 01 00 00 " + "01 00 BF 01 00 00 11 00 C0 01 40 00 00 08 FF 01 " + "10 00 10 00 BF 03 00 00 08 00 00 00 10 F0 12 00 " + "00 00 00 00 01 00 8D 03 05 00 E4 00 03 00 4D 03 " + "0B 00 0C 00 00 00 11 F0 00 00 00 00"; DrawingRecord d1 = new DrawingRecord(); d1.Data = (HexRead.ReadFromString(msoDrawingRecord1)); ObjRecord r1 = new ObjRecord(); DrawingRecord d2 = new DrawingRecord(); d2.Data = (HexRead.ReadFromString(msoDrawingRecord2)); ObjRecord r2 = new ObjRecord(); ArrayList records = new ArrayList(); records.Add(d1); records.Add(r1); records.Add(d2); records.Add(r2); DrawingManager2 drawingManager = new DrawingManager2(new EscherDggRecord()); EscherAggregate aggregate = EscherAggregate.CreateAggregate(records, 0, drawingManager); Assert.AreEqual(1, aggregate.EscherRecords.Count); Assert.AreEqual(unchecked((short)0xF002), aggregate.GetEscherRecord(0).RecordId); Assert.AreEqual(2, aggregate.GetEscherRecord(0).ChildRecords.Count); // System.out.println( "aggregate = " + aggregate ); }
private void ConfirmAggregatedRecords(List<RecordBase> recordStream) { InternalSheet sheet = InternalSheet.CreateSheet(); sheet.Records.Clear(); ((List<RecordBase>)sheet.Records).AddRange(recordStream); IList sheetRecords = sheet.Records; DrawingManager2 drawingManager = new DrawingManager2(new EscherDggRecord()); sheet.AggregateDrawingRecords(drawingManager, false); Assert.AreEqual(4, sheetRecords.Count); Assert.AreEqual(BOFRecord.sid, ((Record)sheetRecords[0]).Sid); Assert.AreEqual(EscherAggregate.sid, ((Record)sheetRecords[1]).Sid); Assert.AreEqual(WindowTwoRecord.sid, ((Record)sheetRecords[2]).Sid); Assert.AreEqual(EOFRecord.sid, ((Record)sheetRecords[3]).Sid); }
/** * Creates a primary drawing Group record. If it already * exists then it's modified. */ public void CreateDrawingGroup() { if (drawingManager == null) { EscherContainerRecord dggContainer = new EscherContainerRecord(); EscherDggRecord dgg = new EscherDggRecord(); EscherOptRecord opt = new EscherOptRecord(); EscherSplitMenuColorsRecord splitMenuColors = new EscherSplitMenuColorsRecord(); dggContainer.RecordId=unchecked((short)0xF000); dggContainer.Options=(short)0x000F; dgg.RecordId=EscherDggRecord.RECORD_ID; dgg.Options=(short)0x0000; dgg.ShapeIdMax=1024; dgg.NumShapesSaved=0; dgg.DrawingsSaved=0; dgg.FileIdClusters=new EscherDggRecord.FileIdCluster[] { }; drawingManager = new DrawingManager2(dgg); EscherContainerRecord bstoreContainer = null; if (escherBSERecords.Count > 0) { bstoreContainer = new EscherContainerRecord(); bstoreContainer.RecordId=EscherContainerRecord.BSTORE_CONTAINER; bstoreContainer.Options=(short)((escherBSERecords.Count << 4) | 0xF); for (IEnumerator iterator = escherBSERecords.GetEnumerator(); iterator.MoveNext(); ) { EscherRecord escherRecord = (EscherRecord)iterator.Current; bstoreContainer.AddChildRecord(escherRecord); } } opt.RecordId=unchecked((short)0xF00B); opt.Options=(short)0x0033; opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.TEXT__SIZE_TEXT_TO_FIT_SHAPE, 524296)); opt.AddEscherProperty(new EscherRGBProperty(EscherProperties.FILL__FILLCOLOR, 0x08000041)); opt.AddEscherProperty(new EscherRGBProperty(EscherProperties.LINESTYLE__COLOR, 134217792)); splitMenuColors.RecordId=unchecked((short)0xF11E); splitMenuColors.Options=(short)0x0040; splitMenuColors.Color1=0x0800000D; splitMenuColors.Color2=0x0800000C; splitMenuColors.Color3=0x08000017; splitMenuColors.Color4=0x100000F7; dggContainer.AddChildRecord(dgg); if (bstoreContainer != null) dggContainer.AddChildRecord(bstoreContainer); dggContainer.AddChildRecord(opt); dggContainer.AddChildRecord(splitMenuColors); int dgLoc = FindFirstRecordLocBySid(DrawingGroupRecord.sid); if (dgLoc == -1) { DrawingGroupRecord drawingGroup = new DrawingGroupRecord(); drawingGroup.AddEscherRecord(dggContainer); int loc = FindFirstRecordLocBySid(CountryRecord.sid); Records.Insert(loc + 1, drawingGroup); } else { DrawingGroupRecord drawingGroup = new DrawingGroupRecord(); drawingGroup.AddEscherRecord(dggContainer); Records[dgLoc]= drawingGroup; } } }
/** * Finds the primary drawing Group, if one already exists */ public DrawingManager2 FindDrawingGroup() { if (drawingManager != null) { // We already have it! return drawingManager; } // Need to Find a DrawingGroupRecord that // Contains a EscherDggRecord for (IEnumerator rit = records.GetEnumerator(); rit.MoveNext(); ) { Record r = (Record)rit.Current; if (r is DrawingGroupRecord) { DrawingGroupRecord dg = (DrawingGroupRecord)r; dg.ProcessChildRecords(); EscherContainerRecord cr = dg.GetEscherContainer(); if (cr == null) { continue; } EscherDggRecord dgg = null; EscherContainerRecord bStore = null; for (IEnumerator it = cr.ChildRecords.GetEnumerator(); it.MoveNext(); ) { EscherRecord er = (EscherRecord)it.Current; if (er is EscherDggRecord) { dgg = (EscherDggRecord)er; } else if (er.RecordId == EscherContainerRecord.BSTORE_CONTAINER) { bStore = (EscherContainerRecord)er; } } if (dgg != null) { drawingManager = new DrawingManager2(dgg); if (bStore != null) { foreach (EscherRecord bs in bStore.ChildRecords) { if (bs is EscherBSERecord) escherBSERecords.Add((EscherBSERecord)bs); } } return drawingManager; } } } // Look for the DrawingGroup record int dgLoc = FindFirstRecordLocBySid(DrawingGroupRecord.sid); // If there is one, does it have a EscherDggRecord? if (dgLoc != -1) { DrawingGroupRecord dg = (DrawingGroupRecord)records[dgLoc]; EscherDggRecord dgg = null; EscherContainerRecord bStore = null; for (IEnumerator it = dg.EscherRecords.GetEnumerator(); it.MoveNext(); ) { EscherRecord er = (EscherRecord)it.Current; if (er is EscherDggRecord) { dgg = (EscherDggRecord)er; } else if (er.RecordId == EscherContainerRecord.BSTORE_CONTAINER) { bStore = (EscherContainerRecord)er; } } if (dgg != null) { drawingManager = new DrawingManager2(dgg); if (bStore != null) { foreach (EscherRecord bs in bStore.ChildRecords) { if (bs is EscherBSERecord) escherBSERecords.Add((EscherBSERecord)bs); } } } } return drawingManager; }
public EscherAggregate(DrawingManager2 drawingManager) { this.drawingManager = drawingManager; }
/// <summary> /// Finds the DrawingRecord for our sheet, and attaches it to the DrawingManager (which knows about /// the overall DrawingGroup for our workbook). /// If requested, will Create a new DrawRecord if none currently exist /// </summary> /// <param name="drawingManager">The DrawingManager2 for our workbook</param> /// <param name="CreateIfMissing">Should one be Created if missing?</param> /// <returns>location of EscherAggregate record. if no EscherAggregate record is found return -1</returns> public int AggregateDrawingRecords(DrawingManager2 drawingManager, bool CreateIfMissing) { int loc = FindFirstRecordLocBySid(DrawingRecord.sid); bool noDrawingRecordsFound = (loc == -1); if (noDrawingRecordsFound) { if (!CreateIfMissing) { // None found, and not allowed to Add in return -1; } EscherAggregate aggregate = new EscherAggregate(true); loc = FindFirstRecordLocBySid(EscherAggregate.sid); if (loc == -1) { loc = FindFirstRecordLocBySid(WindowTwoRecord.sid); } else { Records.RemoveAt(loc); } Records.Insert(loc, aggregate); return loc; } EscherAggregate.CreateAggregate(records, loc); return loc; }
public void TestUnhandledContinue() { String data = " EC 00 1C 08 0F 00 02 F0 66 27 00 " + " 00 10 00 08 F0 08 00 00 00 06 00 00 00 13 04 00 " + " 00 0F 00 03 F0 4E 27 00 00 0F 00 04 F0 28 00 00 " + " 00 01 00 09 F0 10 00 00 00 00 00 00 00 00 00 00 " + " 00 00 00 00 00 00 00 00 00 02 00 0A F0 08 00 00 " + " 00 00 04 00 00 05 00 00 00 0F 00 04 F0 CC 07 00 " + " 00 A2 0C 0A F0 08 00 00 00 0F 04 00 00 00 0A 00 " + " 00 93 00 0B F0 4A 00 00 00 7F 00 00 00 04 00 80 " + " 00 C0 D5 9A 02 85 00 02 00 00 00 8B 00 02 00 00 " + " 00 BF 00 1A 00 1F 00 BF 01 01 00 11 00 FF 01 00 " + " 00 08 00 80 C3 14 00 00 00 BF 03 00 00 02 00 54 " + " 00 65 00 78 00 74 00 42 00 6F 00 78 00 20 00 31 " + " 00 00 00 13 00 22 F1 38 07 00 00 A9 C3 32 07 00 " + " 00 50 4B 03 04 14 00 06 00 08 00 00 00 21 00 F0 " + " F7 8A BB FD 00 00 00 E2 01 00 00 13 00 00 00 5B " + " 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 " + " 6D 6C 94 91 CD 4A C4 30 10 C7 EF 82 EF 10 E6 2A " + " 6D AA 07 11 69 BA 07 AB 47 15 5D 1F 60 48 A6 6D " + " D8 36 09 99 58 77 DF DE 74 3F 2E E2 0A 1E 67 E6 " + " FF F1 23 A9 57 DB 69 14 33 45 B6 DE 29 B8 2E 2B " + " 10 E4 B4 37 D6 F5 0A 3E D6 4F C5 1D 08 4E E8 0C " + " 8E DE 91 82 1D 31 AC 9A CB 8B 7A BD 0B C4 22 BB " + " 1D 2B 18 52 0A F7 52 B2 1E 68 42 2E 7D 20 97 2F " + " 9D 8F 13 A6 3C C6 5E 06 D4 1B EC 49 DE 54 D5 AD " + " D4 DE 25 72 A9 48 4B 06 34 75 4B 1D 7E 8E 49 3C " + " 6E F3 FA 40 12 69 64 10 0F 07 E1 D2 A5 00 43 18 " + " AD C6 94 49 E5 EC CC 8F 96 E2 D8 50 66 E7 5E C3 " + " 83 0D 7C 95 31 40 FE DA B0 5C CE 17 1C 7D 2F F9 " + " 69 A2 35 24 5E 31 A6 67 9C 32 86 34 91 25 0F 18 " + " 28 6B CA BF 53 16 CC 89 0B DF 75 56 53 D9 46 7E " + " 5F 7C 27 A8 73 E1 C6 7F B9 48 F3 7F B3 DB 6C 7B " + " A3 F9 94 2E F7 3F D4 7C 03 00 00 FF FF 03 00 50 " + " 4B 03 04 14 00 06 00 08 00 00 00 21 00 31 DD 5F " + " 61 D2 00 00 00 8F 01 00 00 0B 00 00 00 5F 72 65 " + " 6C 73 2F 2E 72 65 6C 73 A4 90 C1 6A C3 30 0C 86 " + " EF 83 BD 83 D1 BD 71 DA 43 19 A3 4E 6F 85 5E 4B " + " 07 BB 0A 5B 49 4C 63 CB 58 26 6D DF BE A6 30 58 " + " 46 6F 3B EA 17 FA 3E F1 EF F6 B7 30 A9 99 B2 78 " + " 8E 06 D6 4D 0B 8A A2 65 E7 E3 60 E0 EB 7C 58 7D " + " 80 92 82 D1 E1 C4 91 0C DC 49 60 DF BD BF ED 4E " + " 34 61 A9 47 32 FA 24 AA 52 A2 18 18 4B 49 9F 5A " + " 8B 1D 29 A0 34 9C 28 D6 4D CF 39 60 A9 63 1E 74 " + " 42 7B C1 81 F4 A6 6D B7 3A FF 66 40 B7 60 AA A3 " + " 33 90 8F 6E 03 EA 7C 4F D5 FC 87 1D BC CD 2C DC " + " 97 C6 72 D0 DC F7 DE BE A2 6A C7 D7 78 A2 B9 52 " + " 30 0F 54 0C B8 2C CF 30 D3 DC D4 E7 40 BF F6 AE " + " FF E9 95 11 13 7D 57 FE 42 FC 4C AB F5 C7 AC 17 " + " 35 76 0F 00 00 00 FF FF 03 00 50 4B 03 04 14 00 " + " 06 00 08 00 00 00 21 00 AE B1 05 56 77 02 00 00 " + " 1B 07 00 00 10 00 00 00 64 72 73 2F 73 68 61 70 " + " 65 78 6D 6C 2E 78 6D 6C BC 55 4B 6F DB 30 0C BE " + " 0F D8 7F 10 74 4F FD 58 9D 87 11 BB E8 52 74 97 " + " 61 0D 92 E6 07 A8 B2 9C 18 93 25 43 52 13 A7 BF " + " 7E A4 E4 A4 5D 0F 3B 34 43 2F 0A 43 4A FC C8 8F " + " 0F CF 6F FA 56 92 BD 30 B6 D1 AA A0 C9 55 4C 89 " + " 50 5C 57 8D DA 16 74 F3 78 3F 9A 52 62 1D 53 15 " + " 93 5A 89 82 1E 85 A5 37 E5 D7 2F F3 BE 32 39 53 " + " 7C A7 0D 01 17 CA E6 A0 28 E8 CE B9 2E 8F 22 CB " + " 77 A2 65 F6 4A 77 42 81 B5 D6 A6 65 0E FE 9A 6D " + " 54 19 76 00 E7 AD 8C D2 38 1E 47 B6 33 82 55 76 " + " 27 84 BB 0B 16 5A 7A DF 80 B6 10 52 DE 7A 88 A0 " + " AA 8D 6E 83 C4 B5 2C 93 79 84 31 A0 E8 1F 80 F0 " + " 50 D7 65 1A CF B2 2C 3E DB 50 E5 CD 46 1F CA 6F " + " 41 8D E2 49 87 F6 64 1A CF 26 D9 D9 E6 9F 78 DF " + " AF 80 A2 77 84 F7 05 CD D2 2C 8D 81 12 7E 2C 68 " + " 3A BE CE C6 31 8D 82 2F DB 91 96 71 A3 0B 4A 89 " + " 83 EB B2 51 BF 41 0E 46 B5 5F 77 4B 13 64 FE 6B " + " BF 34 A4 A9 C0 01 25 8A B5 40 EA 23 DC FF AE 7B " + " 92 9C 9C C1 1D 7C 40 5C 0F 6A 28 0B EA 7D 44 6F " + " 1D 59 EF 92 E5 7D 6D DA A1 06 EC 03 15 68 59 A3 " + " 20 4C 96 EB BA 26 00 36 4D 66 49 06 6D 00 19 4E " + " B2 F4 7A 92 21 38 CB FF CD 40 14 C2 C0 8B 9D B1 " + " EE 87 D0 17 87 44 D0 51 41 8D E0 CE 87 C7 F6 3F " + " AD 43 1E 5E 21 10 4E E9 FB 46 CA 4B F3 3F F1 1B " + " 38 C5 BE B2 EE 28 05 02 48 B5 12 40 8C EF F1 0F " + " F3 0B F5 06 6A 63 9F 88 E5 66 FB B4 90 86 C0 BC " + " 00 CF 30 67 70 3E E1 19 B2 F3 80 88 5C 43 62 9F " + " 8C 3D 40 22 BA A8 6B A0 FE 93 F1 CF A0 3E 7F AD " + " FE 1F 7E DB 28 6D 06 FE 61 39 09 2C C0 9E C9 82 " + " BA 3E 8C 17 F0 1D F0 86 51 1B 1A 00 7B 01 C7 B0 " + " 3A 62 48 4F F0 0B 73 79 69 37 C0 C2 75 0F 70 D4 " + " 52 1F 0A CA 65 D3 51 02 9B F4 E5 BD EE 60 58 57 " + " 50 05 BB 90 12 E3 E4 42 43 BC D0 2C 61 EF 42 E8 " + " 21 9F EE F6 D9 C1 14 0C C3 11 42 C4 60 A5 75 6B " + " EC E2 4B C3 F5 F3 DF 5D EA 05 23 32 FE 00 02 25 " + " C3 EF 8B 50 A3 CD 1A BE 2F 2F B0 E2 92 D8 F7 3F " + " CB 5D 89 EB 73 04 EB 1D 65 3C FD 2B A1 AA 25 33 " + " 6C 75 7E 6C 9E 47 AB CD DF 8F 71 35 0C D5 3B 95 " + " CC 6F 4D 0B 5A FF AD 90 8D 50 EE 8E 39 76 9A F7 " + " 77 5F 19 7F 3B B0 5B FE 01 00 00 FF FF 03 00 50 " + " 4B 03 04 14 00 06 00 08 00 00 00 21 00 44 8B 69 " + " 1E 2C 01 00 00 AB 01 00 00 0F 00 00 00 64 72 73 " + " 2F 64 6F 77 6E 72 65 76 2E 78 6D 6C 5C 50 D1 4E " + " C2 30 14 7D 37 F1 1F 9A 6B E2 9B 74 0C 36 07 52 " + " C8 62 42 C4 04 D1 21 89 AF 65 6D D9 E2 DA CE B6 " + " C0 F0 EB ED 46 0C C6 C7 73 EE 39 E7 DE 73 27 B3 " + " 46 56 E8 C0 8D 2D B5 22 D0 EF 05 80 B8 CA 35 2B " + " D5 8E C0 E6 7D 7E 97 00 B2 8E 2A 46 2B AD 38 81 " + " 13 B7 30 9B 5E 5F 4D E8 98 E9 A3 CA F8 61 ED 76 " + " C8 87 28 3B A6 04 0A E7 EA 31 C6 36 2F B8 A4 B6 " + " A7 6B AE FC 4C 68 23 A9 F3 D0 EC 30 33 F4 E8 C3 " + " 65 85 C3 20 88 B1 A4 A5 F2 1B 0A 5A F3 C7 82 E7 " + " 9F EB BD 24 B0 64 E2 E5 63 58 CE 9F A9 F8 4A 17 " + " C3 2C 89 0E AF 2C 22 E4 F6 A6 49 1F 00 39 DE B8 " + " 8B B8 DE AB 55 B8 5C 6E DF 36 E9 AF A0 8B 5B 30 " + " 02 21 20 F1 74 DA 9A 92 65 D4 3A 6E 08 F8 7E BE " + " AD 6F 0A 53 5F A1 A9 52 95 17 DA 20 91 71 5B 7E " + " FB 7E 67 5E 18 2D 91 D1 47 02 03 40 B9 AE 5A BE " + " C5 2B 21 2C 77 1E 25 C1 E8 3E EA 46 BF 54 18 8C " + " A2 28 00 DC C6 3A 7D 36 9F 15 DD 19 7F CC 71 1C " + " FF F3 F6 C3 41 12 46 AD 17 5F 6E EA C0 E5 C7 D3 " + " 1F 00 00 00 FF FF 03 00 50 4B 01 02 2D 00 14 00 " + " 06 00 08 00 00 00 21 00 F0 F7 8A BB FD 00 00 00 " + " E2 01 00 00 13 00 00 00 00 00 00 00 00 00 00 00 " + " 00 00 00 00 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 " + " 79 70 65 73 5D 2E 78 6D 6C 50 4B 01 02 2D 00 14 " + " 00 06 00 08 00 00 00 21 00 31 DD 5F 61 D2 00 00 " + " 00 8F 01 00 00 0B 00 00 00 00 00 00 00 00 00 00 " + " 00 00 00 2E 01 00 00 5F 72 65 6C 73 2F 2E 72 65 " + " 6C 73 50 4B 01 02 2D 00 14 00 06 00 08 00 00 00 " + " 21 00 AE B1 05 56 77 02 00 00 1B 07 00 00 10 00 " + " 00 00 00 00 00 00 00 00 00 00 00 00 29 02 00 00 " + " 64 72 73 2F 73 68 61 70 65 78 6D 6C 2E 78 6D 6C " + " 50 4B 01 02 2D 00 14 00 06 00 08 00 00 00 21 00 " + " 44 8B 69 1E 2C 01 00 00 AB 01 00 00 0F 00 00 00 " + " 00 00 00 00 00 00 00 00 00 00 CE 04 00 00 64 72 " + " 73 2F 64 6F 77 6E 72 65 76 2E 78 6D 6C 50 4B 05 " + " 06 00 00 00 00 04 00 04 00 F5 00 00 00 27 06 00 " + " 00 00 00 00 00 10 F0 12 00 00 00 02 00 01 00 60 " + " 01 03 00 F3 00 02 00 D0 00 05 00 5A 00 00 00 11 " + " F0 00 00 00 00 5D 00 1A 00 15 00 12 00 06 00 0F " + " 00 11 60 00 00 00 00 00 00 00 00 00 00 00 00 00 " + " 00 00 00 EC 00 08 00 00 00 0D F0 00 00 00 00 B6 " + " 01 12 00 12 02 00 00 00 00 00 00 00 00 06 00 10 " + " 00 00 00 00 00 3C 00 07 00 00 74 65 78 74 2D 31 " + " 3C 00 10 00 00 00 16 00 00 00 00 00 06 00 00 00 " + " 00 00 00 00 EC 00 CB 07 0F 00 04 F0 CB 07 00 00 " + " A2 0C 0A F0 08 00 00 00 10 04 00 00 00 0A 00 00 " + " 93 00 0B F0 4A 00 00 00 7F 00 00 00 04 00 80 00 " + " 00 65 53 02 85 00 02 00 00 00 8B 00 02 00 00 00 " + " BF 00 1A 00 1F 00 BF 01 01 00 11 00 FF 01 00 00 " + " 08 00 80 C3 14 00 00 00 BF 03 00 00 02 00 54 00 " + " 65 00 78 00 74 00 42 00 6F 00 78 00 20 00 32 00 " + " 00 00 13 00 22 F1 37 07 00 00 A9 C3 31 07 00 00 " + " 50 4B 03 04 14 00 06 00 08 00 00 00 21 00 F0 F7 " + " 8A BB FD 00 00 00 E2 01 00 00 13 00 00 00 5B 43 " + " 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D " + " 6C 94 91 CD 4A C4 30 10 C7 EF 82 EF 10 E6 2A 6D " + " AA 07 11 69 BA 07 AB 47 15 5D 1F 60 48 A6 6D D8 " + " 36 09 99 58 77 DF DE 74 3F 2E E2 0A 1E 67 E6 FF " + " F1 23 A9 57 DB 69 14 33 45 B6 DE 29 B8 2E 2B 10 " + " E4 B4 37 D6 F5 0A 3E D6 4F C5 1D 08 4E E8 0C 8E " + " DE 91 82 1D 31 AC 9A CB 8B 7A BD 0B C4 22 BB 1D " + " 2B 18 52 0A F7 52 B2 1E 68 42 2E 7D 20 97 2F 9D " + " 8F 13 A6 3C C6 5E 06 D4 1B EC 49 DE 54 D5 AD D4 " + " DE 25 72 A9 48 4B 06 34 75 4B 1D 7E 8E 49 3C 6E " + " F3 FA 40 12 69 64 10 0F 07 E1 D2 A5 00 43 18 AD " + " C6 94 49 E5 EC CC 8F 96 E2 D8 50 66 E7 5E C3 83 " + " 0D 7C 95 31 40 FE DA B0 5C CE 17 1C 7D 2F F9 69 " + " A2 35 24 5E 31 A6 67 9C 32 86 34 91 25 0F 18 28 " + " 6B CA BF 53 16 CC 89 0B DF 75 56 53 D9 46 7E 5F " + " 7C 27 A8 73 E1 C6 7F B9 48 F3 7F B3 DB 6C 7B A3 " + " F9 94 2E F7 3F D4 7C 03 00 00 FF FF 03 00 50 4B " + " 03 04 14 00 06 00 08 00 00 00 21 00 31 DD 5F 61 " + " D2 00 00 00 8F 01 00 00 0B 00 00 00 5F 72 65 6C " + " 73 2F 2E 72 65 6C 73 A4 90 C1 6A C3 30 0C 86 EF " + " 83 BD 83 D1 BD 71 DA 43 19 A3 4E 6F 85 5E 4B 07 " + " BB 0A 5B 49 4C 63 CB 58 26 6D DF BE A6 30 58 46 " + " 6F 3B EA 17 FA 3E F1 EF F6 B7 30 A9 99 B2 78 8E " + " 06 D6 4D 0B 8A A2 65 E7 E3 60 E0 EB 7C 58 7D 80 " + " 92 82 D1 E1 C4 91 0C DC 49 60 DF BD BF ED 4E 34 " + " 61 A9 47 32 FA 24 AA 52 A2 18 18 4B 49 9F 5A 8B " + " 1D 29 A0 34 9C 28 D6 4D CF 39 60 A9 63 1E 74 42 " + " 7B C1 81 F4 A6 6D B7 3A FF 66 40 B7 60 AA A3 33 " + " 90 8F 6E 03 EA 7C 4F D5 FC 87 1D BC CD 2C DC 97 " + " C6 72 D0 DC F7 DE BE A2 6A C7 D7 78 A2 B9 52 30 " + " 0F 54 0C B8 2C CF 30 D3 DC D4 E7 40 BF F6 AE FF " + " E9 95 11 13 7D 57 FE 42 FC 4C AB F5 C7 AC 17 35 " + " 76 0F 00 00 00 FF FF 03 00 50 4B 03 04 14 00 06 " + " 00 08 00 00 00 21 00 99 C9 E2 87 75 02 00 00 1B " + " 07 00 00 10 00 00 00 64 72 73 2F 73 68 61 70 65 " + " 78 6D 6C 2E 78 6D 6C BC 55 CD 6E E2 30 10 BE AF " + " D4 77 B0 7C A7 F9 E9 82 20 C2 A9 5A AA EE 65 B5 " + " 45 50 1E C0 24 0E 44 EB D8 91 ED 42 E8 D3 EF 8C " + " 9D D0 6E 0F 7B 28 AB 5E 1C 67 C6 33 DF F8 9B 1F " + " CF 6F BB 46 92 83 30 B6 D6 8A D1 E4 3A A6 44 A8 " + " 42 97 B5 DA 31 BA 79 7E 1C 4D 29 B1 8E AB 92 4B " + " AD 04 A3 27 61 E9 6D 7E F5 6D DE 95 26 E3 AA D8 " + " 6B 43 C0 85 B2 19 08 18 DD 3B D7 66 51 64 8B BD " + " 68 B8 BD D6 AD 50 A0 AD B4 69 B8 83 5F B3 8B 4A " + " C3 8F E0 BC 91 51 1A C7 93 C8 B6 46 F0 D2 EE 85 " + " 70 0F 41 43 73 EF 1B D0 16 42 CA 3B 0F 11 44 95 " + " D1 4D D8 15 5A E6 C9 3C C2 18 70 EB 0D 60 F3 54 " + " 55 79 1A CF C6 E3 F8 AC 43 91 57 1B 7D CC 27 41 " + " 8C DB 41 86 FA D9 38 1D 2C 40 E5 2D BC EB 37 3C " + " D1 39 52 74 8C C2 C1 34 06 46 8A 13 A3 E9 E4 FB " + " 78 12 D3 28 B8 B2 2D 69 78 61 34 A3 94 38 38 2E " + " 6B F5 1B F6 41 A9 0E EB 76 69 C2 BE F8 75 58 1A " + " 52 97 8C DE 50 A2 78 03 9C 3E C3 F9 7B DD 91 74 " + " 70 06 67 D0 80 B8 0E C4 90 15 94 FB 88 DE 3B B2 " + " DE 25 CF BA CA 34 7D 0A F8 27 12 D0 F0 5A 41 98 " + " 3C D3 55 45 00 6C 9A CC 92 31 54 01 DC 30 49 6F " + " A6 C0 0C A2 F3 EC DF 14 44 21 0E 3C D8 1A EB 7E " + " 08 7D 71 4C 04 1D 31 6A 44 E1 7C 7C FC F0 D3 3A " + " 24 E2 0D 02 E1 94 7E AC A5 BC 94 80 81 E0 40 2A " + " D6 95 75 27 29 10 40 AA 95 00 66 7C 8D 7F 9A 60 " + " 48 38 70 1B FB 8B D8 C2 EC B6 0B 69 08 F4 0B 10 " + " 0D 7D 06 EB 16 D7 70 3B 0F 88 C8 15 5C EC 8B B1 " + " 7B 48 44 17 55 05 D4 7F 31 FE 19 D4 DF 5F AB FF " + " 87 DF D4 4A 9B 9E 7F 18 4E 02 13 70 E0 92 51 D7 " + " 85 FE 02 BE 03 5E DF 6B 7D 01 60 2D 60 1F 96 27 " + " 0C 69 0B 5F 68 CC 4B AB 01 06 AE 7B 82 A5 92 FA " + " C8 68 21 EB 96 12 98 A4 AF 1F 65 47 C3 5B 46 15 " + " CC 42 4A 8C 93 0B 0D F1 42 B1 84 B9 0B A1 87 FB " + " B4 77 2F 0E BA A0 6F 8E 10 22 06 2B AD 5B 63 15 " + " 5F 1A AE EF FF F6 52 2F 18 91 F1 0B 10 28 39 BE " + " 2F 42 8D 36 6B 78 5F 5E 61 D6 24 71 3F 68 5C 8E " + " F3 73 94 62 A3 3B DF EE DE 4A A8 72 C9 0D 5F 9D " + " 8D CD CB 68 B5 F9 DB 18 47 43 9F BD 21 65 7E 6C " + " 5A 90 FA B7 42 D6 42 B9 07 EE F8 D0 EF 1F 5E 19 " + " 7F 3A B0 9B FF 01 00 00 FF FF 03 00 50 4B 03 04 " + " 14 00 06 00 08 00 00 00 21 00 56 84 64 08 2D 01 " + " 00 00 AB 01 00 00 0F 00 00 00 64 72 73 2F 64 6F " + " 77 6E 72 65 76 2E 78 6D 6C 5C 90 5F 4F C2 30 14 " + " C5 DF 4D FC 0E CD 35 F1 4D B6 15 C6 3F 29 64 31 " + " 21 62 82 E2 90 C4 D7 B2 B6 6C BA B6 B3 AD 30 F8 " + " F4 76 20 21 FA 78 CE BD BF D3 7B 3A 9A D4 B2 44 " + " 5B 6E 6C A1 15 81 A8 15 02 E2 2A D3 AC 50 1B 02 " + " AB B7 E9 5D 1F 90 75 54 31 5A 6A C5 09 EC B9 85 " + " C9 F8 FA 6A 44 87 4C EF 54 CA B7 4B B7 41 3E 44 " + " D9 21 25 90 3B 57 0D 83 C0 66 39 97 D4 B6 74 C5 " + " 95 9F 09 6D 24 75 5E 9A 4D C0 0C DD F9 70 59 06 " + " 38 0C BB 81 A4 85 F2 2F E4 B4 E2 0F 39 CF 3E 97 " + " DF 92 C0 9C 89 E7 F7 4E 31 7D A2 E2 2B 99 75 D2 " + " 7E BC 5D B0 98 90 DB 9B 3A B9 07 E4 78 ED 2E CB " + " 55 FE B1 C0 F3 F9 FA 75 95 9C 17 8E 71 33 46 A0 " + " 0D 48 3C EE D7 A6 60 29 B5 8E 1B 02 BE 9F 6F EB " + " 9B C2 D8 57 A8 CB 44 65 B9 36 48 A4 DC 16 07 DF " + " EF E4 0B A3 25 32 7A 47 A0 0B 28 D3 65 E3 37 FA " + " 45 08 CB 1D 81 41 8C 63 9F E4 27 67 07 87 83 D8 " + " 5B 41 93 EA F4 89 ED FD B2 F8 0F 1B F5 A2 CE 3F " + " 38 C2 ED 3E 8E 1B 38 B8 DC 74 14 97 3F 1E FF 00 " + " 00 00 FF FF 03 00 50 4B 01 02 2D 00 14 00 06 00 " + " 08 00 00 00 21 00 F0 F7 8A BB FD 00 00 00 E2 01 " + " 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 " + " 00 00 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 " + " 65 73 5D 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 06 " + " 00 08 00 00 00 21 00 31 DD 5F 61 D2 00 00 00 8F " + " 01 00 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 " + " 00 2E 01 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 " + " 50 4B 01 02 2D 00 14 00 06 00 08 00 00 00 21 00 " + " 99 C9 E2 87 75 02 00 00 1B 07 00 00 10 00 00 00 " + " 00 00 00 00 00 00 00 00 00 00 29 02 00 00 64 72 " + " 73 2F 73 68 61 70 65 78 6D 6C 2E 78 6D 6C 50 4B " + " 01 02 2D 00 14 00 06 00 08 00 00 00 21 00 56 84 " + " 64 08 2D 01 00 00 AB 01 00 00 0F 00 00 00 00 00 " + " 00 00 00 00 00 00 00 00 CC 04 00 00 64 72 73 2F " + " 64 6F 77 6E 72 65 76 2E 78 6D 6C 50 4B 05 06 00 " + " 00 00 00 04 00 04 00 F5 00 00 00 26 06 00 00 00 " + " 00 00 00 10 F0 12 00 00 00 02 00 01 00 60 01 06 " + " 00 80 00 02 00 D0 00 07 00 E6 00 00 00 11 F0 00 " + " 00 00 00 5D 00 1A 00 15 00 12 00 06 00 10 00 11 " + " 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + " 00 EC 00 08 00 00 00 0D F0 00 00 00 00 B6 01 12 " + " 00 12 02 00 00 00 00 00 00 00 00 06 00 10 00 00 " + " 00 00 00 3C 00 07 00 00 74 65 78 74 2D 32 3C 00 " + " 10 00 00 00 16 00 00 00 00 00 06 00 00 00 00 00 " + " 00 00 EC 00 CB 07 0F 00 04 F0 CB 07 00 00 A2 0C " + " 0A F0 08 00 00 00 11 04 00 00 00 0A 00 00 93 00 " + " 0B F0 4A 00 00 00 7F 00 00 00 04 00 80 00 00 D1 " + " 53 02 85 00 02 00 00 00 8B 00 02 00 00 00 BF 00 " + " 1A 00 1F 00 BF 01 01 00 11 00 FF 01 00 00 08 00 " + " 80 C3 14 00 00 00 BF 03 00 00 02 00 54 00 65 00 " + " 78 00 74 00 42 00 6F 00 78 00 20 00 33 00 00 00 " + " 13 00 22 F1 37 07 00 00 A9 C3 31 07 00 00 50 4B " + " 03 04 14 00 06 00 08 00 00 00 21 00 F0 F7 8A BB " + " FD 00 00 00 E2 01 00 00 13 00 00 00 5B 43 6F 6E " + " 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C 94 " + " 91 CD 4A C4 30 10 C7 EF 82 EF 10 E6 2A 6D AA 07 " + " 11 69 BA 07 AB 47 15 5D 1F 60 48 A6 6D D8 36 09 " + " 99 58 77 DF DE 74 3F 2E E2 0A 1E 67 E6 FF F1 23 " + " A9 57 DB 69 14 33 45 B6 DE 29 B8 2E 2B 10 E4 B4 " + " 37 D6 F5 0A 3E D6 4F C5 1D 08 4E E8 0C 8E DE 91 " + " 82 1D 31 AC 9A CB 8B 7A BD 0B C4 22 BB 1D 2B 18 " + " 52 0A F7 52 B2 1E 68 42 2E 7D 20 97 2F 9D 8F 13 " + " A6 3C C6 5E 06 D4 1B EC 49 DE 54 D5 AD D4 DE 25 " + " 72 A9 48 4B 06 34 75 4B 1D 7E 8E 49 3C 6E F3 FA " + " 40 12 69 64 10 0F 07 E1 D2 A5 00 43 18 AD C6 94 " + " 49 E5 EC CC 8F 96 E2 D8 50 66 E7 5E C3 83 0D 7C " + " 95 31 40 FE DA B0 5C CE 17 1C 7D 2F F9 69 A2 35 " + " 24 5E 31 A6 67 9C 32 86 34 91 25 0F 18 28 6B CA " + " BF 53 16 CC 89 0B DF 75 56 53 D9 46 7E 5F 7C 27 " + " A8 73 E1 C6 7F B9 48 F3 7F B3 DB 6C 7B A3 F9 94 " + " 2E F7 3F D4 7C 03 00 00 FF FF 03 00 50 4B 03 04 " + " 14 00 06 00 08 00 00 00 21 00 31 DD 5F 61 D2 00 " + " 00 00 8F 01 00 00 0B 00 00 00 5F 72 65 6C 73 2F " + " 2E 72 65 6C 73 A4 90 C1 6A C3 30 0C 86 EF 83 BD " + " 83 D1 BD 71 DA 43 19 A3 4E 6F 85 5E 4B 07 BB 0A " + " 5B 49 4C 63 CB 58 26 6D DF BE A6 30 58 46 6F 3B " + " EA 17 FA 3E F1 EF F6 B7 30 A9 99 B2 78 8E 06 D6 " + " 4D 0B 8A A2 65 E7 E3 60 E0 EB 7C 58 7D 80 92 82 " + " D1 E1 C4 91 0C DC 49 60 DF BD BF ED 4E 34 61 A9 " + " 47 32 FA 24 AA 52 A2 18 18 4B 49 9F 5A 8B 1D 29 " + " A0 34 9C 28 D6 4D CF 39 60 A9 63 1E 74 42 7B C1 " + " 81 F4 A6 6D B7 3A FF 66 40 B7 60 AA A3 33 90 8F " + " 6E 03 EA 7C 4F D5 FC 87 1D BC CD 2C DC 97 C6 72 " + " D0 DC F7 DE BE A2 6A C7 D7 78 A2 B9 52 30 0F 54 " + " 0C B8 2C CF 30 D3 DC D4 E7 40 BF F6 AE FF E9 95 " + " 11 13 7D 57 FE 42 FC 4C AB F5 C7 AC 17 35 76 0F " + " 00 00 00 FF FF 03 00 50 4B 03 04 14 00 06 00 08 " + " 00 00 00 21 00 49 0D 41 2E 77 02 00 00 1A 07 00 " + " 00 10 00 00 00 64 72 73 2F 73 68 61 70 65 78 6D " + " 6C 2E 78 6D 6C BC 55 4D 73 DB 20 10 BD 77 A6 FF " + " 81 E1 EE E8 23 96 1B 6B 8C 32 A9 33 E9 A5 D3 78 " + " EC F8 07 60 09 D9 9A 22 D0 00 B1 E5 FC FA EE 82 " + " EC A4 39 F4 10 77 72 41 68 17 F6 3D 1E BB CB EC " + " B6 6F 25 D9 0B 63 1B AD 18 4D AE 62 4A 84 2A 75 " + " D5 A8 2D A3 EB A7 87 D1 0D 25 D6 71 55 71 A9 95 " + " 60 F4 28 2C BD 2D BE 7E 99 F5 95 C9 B9 2A 77 DA " + " 10 08 A1 6C 0E 06 46 77 CE 75 79 14 D9 72 27 5A " + " 6E AF 74 27 14 78 6B 6D 5A EE E0 D7 6C A3 CA F0 " + " 03 04 6F 65 94 C6 F1 24 B2 9D 11 BC B2 3B 21 DC " + " 7D F0 D0 C2 C7 06 B4 B9 90 F2 CE 43 04 53 6D 74 " + " 1B 66 A5 96 45 32 8B 90 03 4E FD 06 98 3C D6 75 " + " 91 C6 D3 2C 8B CF 3E 34 79 B7 D1 87 62 1A CC 38 " + " 3D D9 D0 3F CD D2 EC EC F1 1B 7C E4 57 38 D1 3B " + " 52 F6 8C C2 BA 34 06 41 CA 23 A3 E9 64 9C 4D 62 " + " 1A 85 48 B6 23 2D 2F 8D 66 94 12 07 CB 65 A3 7E " + " C3 3C 38 D5 7E D5 2D 4C 98 97 BF F6 0B 43 9A 8A " + " D1 31 25 8A B7 20 E9 13 AC FF AE 7B 72 7D 0A 06 " + " 6B 70 03 71 3D 98 E1 52 D0 EE 19 BD 0D 64 7D 48 " + " 9E F7 B5 69 87 1B E0 1F D0 BF E5 8D 02 9A 3C D7 " + " 75 4D 00 EC 26 99 26 19 24 01 9C 30 F9 96 8E E3 " + " 34 43 74 9E FF 5B 82 28 F0 C0 85 9D B1 EE 87 D0 " + " 17 73 22 18 88 51 23 4A E7 F9 F1 FD 4F EB 50 88 " + " 57 08 84 53 FA A1 91 F2 52 01 4E 02 07 51 31 AD " + " AC 3B 4A 81 00 52 2D 05 28 E3 53 FC C3 02 C3 85 " + " 83 B6 B1 3F 88 2D CD 76 33 97 86 40 B9 80 D0 50 " + " 66 30 6E 70 0C A7 F3 80 88 5C C3 C1 3E 19 7B 80 " + " 44 74 51 D7 20 FD 27 E3 9F 41 FD F9 B5 FA 7F F8 " + " 6D A3 B4 19 F4 87 DE 24 F0 02 F6 5C 32 EA FA 50 " + " 5F A0 77 C0 1B 6A 6D 48 00 CC 05 AC C3 EA 88 94 " + " 36 F0 85 C2 BC 34 1B A0 DF BA 47 18 6A A9 0F 8C " + " 96 B2 E9 28 81 46 FA F2 DE 76 30 BC 63 54 41 2B " + " A4 C4 38 39 D7 C0 17 92 25 B4 5D A0 1E CE D3 DD " + " 3D 3B A8 82 A1 38 02 45 24 2B AD 5B 61 16 5F 4A " + " D7 D7 7F 77 69 14 64 64 FC 00 02 4A 8E CF 8B 50 " + " A3 F5 0A 9E 97 17 E8 35 49 EC F3 9F E7 AE C0 FE " + " 39 BA C6 42 77 BE DC FD 2E A1 AA 05 37 7C 79 DE " + " 6C 9E 47 CB F5 DF 9B B1 35 0C B7 77 BA 32 DF 36 " + " 2D 58 FD 53 21 1B A1 DC 3D 77 FC 54 EF EF 1E 19 " + " BF 3A A8 5B FC 01 00 00 FF FF 03 00 50 4B 03 04 " + " 14 00 06 00 08 00 00 00 21 00 79 45 76 AD 2B 01 " + " 00 00 AA 01 00 00 0F 00 00 00 64 72 73 2F 64 6F " + " 77 6E 72 65 76 2E 78 6D 6C 5C 90 51 4F C2 30 14 " + " 85 DF 4D FC 0F CD 35 F1 4D 3A 26 D5 81 14 B2 98 " + " 10 31 99 E2 90 C4 D7 B2 B6 6C 71 6D 67 5B 61 F8 " + " EB 2D 23 84 E8 E3 39 F7 7E E7 F6 74 3C 6D 55 8D " + " B6 C2 BA CA 68 0A FD 5E 04 48 E8 C2 F0 4A 6F 28 " + " AC DE 67 37 09 20 E7 99 E6 AC 36 5A 50 D8 0B 07 " + " D3 C9 E5 C5 98 8D B8 D9 E9 5C 6C 97 7E 83 42 88 " + " 76 23 46 A1 F4 BE 19 61 EC 8A 52 28 E6 7A A6 11 " + " 3A CC A4 B1 8A F9 20 ED 06 73 CB 76 21 5C D5 38 " + " 8E A2 3B AC 58 A5 C3 85 92 35 E2 B1 14 C5 E7 F2 " + " 5B 51 C8 B8 7C F9 18 54 B3 67 26 BF D2 F9 20 4F " + " C8 76 C1 09 A5 D7 57 6D FA 00 C8 8B D6 9F 97 1B " + " 2B 17 71 96 AD DF 56 E9 69 A1 8B 9B 73 0A 03 40 " + " F2 69 BF B6 15 CF 99 F3 C2 52 08 FD 42 DB D0 14 " + " 26 A1 42 5B A7 BA 28 8D 45 32 17 AE FA 09 FD 8E " + " BE B4 46 21 6B 76 14 86 80 0A 53 1F FC 83 7E 95 " + " D2 09 1F 5C 12 93 6E 70 32 E2 68 48 48 04 F8 10 " + " EA CD 11 ED 87 5B 1D 1B FF 61 13 72 FF 0F EE C7 " + " B7 49 B0 02 8C CF 4F EA C4 F9 8B 27 BF 00 00 00 " + " FF FF 03 00 50 4B 01 02 2D 00 14 00 06 00 08 00 " + " 00 00 21 00 F0 F7 8A BB FD 00 00 00 E2 01 00 00 " + " 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + " 00 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 " + " 5D 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 06 00 08 " + " 00 00 00 21 00 31 DD 5F 61 D2 00 00 00 8F 01 00 " + " 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 2E " + " 01 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 50 4B " + " 01 02 2D 00 14 00 06 00 08 00 00 00 21 00 49 0D " + " 41 2E 77 02 00 00 1A 07 00 00 10 00 00 00 00 00 " + " 00 00 00 00 00 00 00 00 29 02 00 00 64 72 73 2F " + " 73 68 61 70 65 78 6D 6C 2E 78 6D 6C 50 4B 01 02 " + " 2D 00 14 00 06 00 08 00 00 00 21 00 79 45 76 AD " + " 2B 01 00 00 AA 01 00 00 0F 00 00 00 00 00 00 00 " + " 00 00 00 00 00 00 CE 04 00 00 64 72 73 2F 64 6F " + " 77 6E 72 65 76 2E 78 6D 6C 50 4B 05 06 00 00 00 " + " 00 04 00 04 00 F5 00 00 00 26 06 00 00 00 00 00 " + " 00 10 F0 12 00 00 00 02 00 01 00 60 01 09 00 0D " + " 00 02 00 D0 00 0A 00 73 00 00 00 11 F0 00 00 00 " + " 00 5D 00 1A 00 15 00 12 00 06 00 11 00 11 60 00 " + " 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EC " + " 00 08 00 00 00 0D F0 00 00 00 00 B6 01 12 00 12 " + " 02 00 00 00 00 00 00 00 00 06 00 10 00 00 00 00 " + " 00 3C 00 07 00 00 74 65 78 74 2D 33 3C 00 10 00 " + " 00 00 16 00 00 00 00 00 06 00 00 00 00 00 00 00 " + " EC 00 CC 07 0F 00 04 F0 CC 07 00 00 A2 0C 0A F0 " + " 08 00 00 00 12 04 00 00 00 0A 00 00 93 00 0B F0 " + " 4A 00 00 00 7F 00 00 00 04 00 80 00 00 36 9A 02 " + " 85 00 02 00 00 00 8B 00 02 00 00 00 BF 00 1A 00 " + " 1F 00 BF 01 01 00 11 00 FF 01 00 00 08 00 80 C3 " + " 14 00 00 00 BF 03 00 00 02 00 54 00 65 00 78 00 " + " 74 00 42 00 6F 00 78 00 20 00 34 00 00 00 13 00 " + " 22 F1 38 07 00 00 A9 C3 32 07 00 00 50 4B 03 04 " + " 14 00 06 00 08 00 00 00 21 00 F0 F7 8A BB FD 00 " + " 00 00 E2 01 00 00 13 00 00 00 5B 43 6F 6E 74 65 " + " 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C 94 91 CD " + " 4A C4 30 10 C7 EF 82 EF 10 E6 2A 6D AA 07 11 69 " + " BA 07 AB 47 15 5D 1F 60 48 A6 6D D8 36 09 99 58 " + " 77 DF DE 74 3F 2E E2 0A 1E 67 E6 FF F1 23 A9 57 " + " DB 69 14 33 45 B6 DE 29 B8 2E 2B 10 E4 B4 37 D6 " + " F5 0A 3E D6 4F C5 1D 08 4E E8 0C 8E DE 91 82 1D " + " 31 AC 9A CB 8B 7A BD 0B C4 22 BB 1D 2B 18 52 0A " + " F7 52 B2 1E 68 42 2E 7D 20 97 2F 9D 8F 13 A6 3C " + " C6 5E 06 D4 1B EC 49 DE 54 D5 AD D4 DE 25 72 A9 " + " 48 4B 06 34 75 4B 1D 7E 8E 49 3C 6E F3 FA 40 12 " + " 69 64 10 0F 07 E1 D2 A5 00 43 18 AD C6 94 49 E5 " + " EC CC 8F 96 E2 D8 50 66 E7 5E C3 83 0D 7C 95 31 " + " 40 FE DA B0 5C CE 17 1C 7D 2F F9 69 A2 35 24 5E " + " 31 A6 67 9C 32 86 34 91 25 0F 18 28 6B CA BF 53 " + " 16 CC 89 0B DF 75 56 53 D9 46 7E 5F 7C 27 A8 73 " + " E1 C6 7F B9 48 F3 7F B3 DB 6C 7B A3 F9 94 2E F7 " + " 3F D4 7C 03 00 00 FF FF 03 00 50 4B 03 04 14 00 " + " 06 00 08 00 00 00 21 00 31 DD 5F 61 D2 00 00 00 " + " 8F 01 00 00 0B 00 00 00 5F 72 65 6C 73 2F 2E 72 " + " 65 6C 73 A4 90 C1 6A C3 30 0C 86 EF 83 BD 83 D1 " + " BD 71 DA 43 19 A3 4E 6F 85 5E 4B 07 BB 0A 5B 49 " + " 4C 63 CB 58 26 6D DF BE A6 30 58 46 6F 3B EA 17 " + " FA 3E F1 EF F6 B7 30 A9 99 B2 78 8E 06 D6 4D 0B " + " 8A A2 65 E7 E3 60 E0 EB 7C 58 7D 80 92 82 D1 E1 " + " C4 91 0C DC 49 60 DF BD BF ED 4E 34 61 A9 47 32 " + " FA 24 AA 52 A2 18 18 4B 49 9F 5A 8B 1D 29 A0 34 " + " 9C 28 D6 4D CF 39 60 A9 63 1E 74 42 7B C1 81 F4 " + " A6 6D B7 3A FF 66 40 B7 60 AA A3 33 90 8F 6E 03 " + " EA 7C 4F D5 FC 87 1D BC CD 2C DC 97 C6 72 D0 DC " + " F7 DE BE A2 6A C7 D7 78 A2 B9 52 30 0F 54 0C B8 " + " 2C CF 30 D3 DC D4 E7 40 BF F6 AE FF E9 95 11 13 " + " 7D 57 FE 42 FC 4C AB F5 C7 AC 17 35 76 0F 00 00 " + " 00 FF FF 03 00 50 4B 03 04 14 00 06 00 08 00 00 " + " 00 21 00 5B 36 01 DE 77 02 00 00 1D 07 00 00 10 " + " 00 00 00 64 72 73 2F 73 68 61 70 65 78 6D 6C 2E " + " 78 6D 6C BC 55 4D 53 DB 30 10 BD 77 A6 FF 41 A3 " + " 7B B0 9D 26 99 90 C1 66 28 0C BD 74 0A 93 C0 0F " + " 10 B6 9C 78 2A 4B 1E 49 24 0E BF BE 6F 25 27 50 " + " 0E 3D 90 0E 17 59 5E 69 F7 ED BE FD D0 C5 65 DF " + " 2A B6 95 D6 35 46 E7 3C 3B 4B 39 93 BA 34 55 A3 " + " D7 39 7F 7C B8 1D CD 39 73 5E E8 4A 28 A3 65 CE " + " F7 D2 F1 CB E2 EB 97 8B BE B2 0B A1 CB 8D B1 0C " + " 26 B4 5B 40 90 F3 8D F7 DD 22 49 5C B9 91 AD 70 " + " 67 A6 93 1A A7 B5 B1 AD F0 F8 B5 EB A4 B2 62 07 " + " E3 AD 4A C6 69 3A 4B 5C 67 A5 A8 DC 46 4A 7F 13 " + " 4F 78 11 6C 03 ED 5A 2A 75 15 20 A2 A8 B6 A6 8D " + " BB D2 A8 22 BB 48 C8 07 DA 06 05 6C EE EA BA 18 " + " A7 E7 D3 69 7A 3C 23 51 38 B6 66 57 64 83 0E ED " + " 0F 42 BA 90 65 93 6F E9 A0 83 B3 A0 13 8C BF 22 " + " CA DE B3 B2 CF F9 74 3C 1D A7 E0 A4 DC E7 7C 3C " + " 9B 4C 67 29 4F A2 2D D7 B1 56 94 D6 E4 9C 33 8F " + " EB AA D1 BF B1 8F 87 7A BB EA EE 6D DC 97 BF B6 " + " F7 96 35 15 8C 71 A6 45 0B 56 1F 70 FF BB E9 D9 " + " E4 60 0C 77 48 81 F9 1E 62 E4 85 E4 C1 A3 B7 86 " + " 5C 30 29 16 7D 6D DB 21 09 E2 03 29 68 45 A3 E1 " + " A6 58 98 BA 66 00 9B 67 E7 D9 14 75 40 11 82 CD " + " 79 1A 42 14 8B 7F 53 90 44 3F C8 4E 67 9D FF 21 " + " CD C9 3E 31 32 94 73 2B 4B 1F FC 13 DB 9F CE 13 " + " 11 AF 10 04 A7 CD 6D A3 D4 A9 04 1C 08 8E A4 52 " + " 65 39 BF 57 92 00 94 5E 4A 30 13 AA FC C3 04 23 " + " E1 E0 36 0D 81 B8 D2 AE 9F AE 95 65 E8 18 10 8D " + " 4E C3 FA 44 6B 8C 2E 00 12 72 8D C0 3E 19 7B 80 " + " 24 74 59 D7 A0 FE 93 F1 8F A0 21 7E A3 FF 1F 7E " + " DB 68 63 07 FE 31 9E 24 25 60 2B 54 CE 7D 1F FB " + " 0B 7C 47 BC A1 D7 86 02 A0 5A A0 3E AC F6 E4 D2 " + " 13 BE 68 CC 53 AB 01 23 D7 DF 61 A9 95 D9 E5 BC " + " 54 4D C7 19 66 E9 CB 7B D9 CE 8A 2E E7 1A D3 90 " + " 33 EB D5 B5 81 BF 28 96 38 79 E1 7A 8C A7 BB 7A " + " F6 E8 82 A1 39 A2 8B E4 AC 72 7E 45 55 7C AA BB " + " 28 4B F4 DC A9 56 C8 88 0D 0B 08 54 82 5E 18 A9 " + " 47 8F 2B BC 30 2F 98 71 D9 61 D0 F8 82 E6 E7 68 " + " 42 8D EE 43 BB 07 2D A9 AB 7B 61 C5 F2 A8 6C 9F " + " 47 CB C7 BF 95 69 34 0C D9 3B A4 2C 8C 4D 07 69 " + " 78 2D 54 23 B5 BF 11 5E 1C FA FD DD 3B 13 6E 47 " + " 76 8B 3F 00 00 00 FF FF 03 00 50 4B 03 04 14 00 " + " 06 00 08 00 00 00 21 00 DB CE 2D F9 2C 01 00 00 " + " AE 01 00 00 0F 00 00 00 64 72 73 2F 64 6F 77 6E " + " 72 65 76 2E 78 6D 6C 5C 50 5D 4F C2 30 14 7D 37 " + " F1 3F 34 D7 C4 37 E9 18 D4 00 52 C8 62 42 C4 64 " + " 7E 0C 49 7C 2D 6B CB 16 D7 76 B6 75 0C 7F BD 1D " + " 42 30 3E DD 9C 73 EE 39 ED B9 D3 79 AB 2A D4 08 " + " EB 4A A3 29 F4 7B 11 20 A1 73 C3 4B BD A5 B0 7E " + " 5B DC 8C 00 39 CF 34 67 95 D1 82 C2 5E 38 98 CF " + " 2E 2F A6 6C C2 CD 4E 67 A2 59 F9 2D 0A 21 DA 4D " + " 18 85 C2 FB 7A 82 B1 CB 0B A1 98 EB 99 5A E8 A0 " + " 49 63 15 F3 01 DA 2D E6 96 ED 42 B8 AA 70 1C 45 " + " B7 58 B1 52 87 17 0A 56 8B FB 42 E4 1F AB 2F 45 " + " 21 E5 F2 E9 7D 58 2E 1E 99 FC 4C 96 C3 6C 44 9A " + " 17 4E 28 BD BE 6A 93 3B 40 5E B4 FE BC 5C 37 36 " + " 8D D3 74 F3 BA 4E 4E 0B 87 B8 25 A7 40 00 C9 87 " + " FD C6 96 3C 63 CE 0B 4B 21 F4 0B 6D 43 53 98 85 " + " 0A 6D 95 E8 BC 30 16 C9 4C B8 F2 3B F4 FB E5 A5 " + " 35 0A 59 B3 0B B8 0F 28 37 55 27 74 C4 B3 94 4E " + " F8 8E 1E 0E A2 90 15 A4 13 15 47 63 42 22 C0 5D " + " AE 37 47 77 7C 74 87 F9 D7 3D 8E C8 3F 77 3F 1E " + " 8C 62 D2 B9 F1 F9 5B 07 70 3E F3 EC 07 00 00 FF " + " FF 03 00 50 4B 01 02 2D 00 14 00 06 00 08 00 00 " + " 00 21 00 F0 F7 8A BB FD 00 00 00 E2 01 00 00 13 " + " 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + " 00 5B 43 6F 6E 74 65 6E 74 5F 54 79 70 65 73 5D " + " 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 06 00 08 00 " + " 00 00 21 00 31 DD 5F 61 D2 00 00 00 8F 01 00 00 " + " 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 2E 01 " + " 00 00 5F 72 65 6C 73 2F 2E 72 65 6C 73 50 4B 01 " + " 02 2D 00 14 00 06 00 08 00 00 00 21 00 5B 36 01 " + " DE 77 02 00 00 1D 07 00 00 10 00 00 00 00 00 00 " + " 00 00 00 00 00 00 00 29 02 00 00 64 72 73 2F 73 " + " 68 61 70 65 78 6D 6C 2E 78 6D 6C 50 4B 01 02 2D " + " 00 14 00 06 00 08 00 00 00 21 00 DB CE 2D F9 2C " + " 01 00 00 AE 01 00 00 0F 00 00 00 00 00 00 00 00 " + " 00 00 00 00 00 CE 04 00 00 64 72 73 2F 64 6F 77 " + " 6E 72 65 76 2E 78 6D 6C 50 4B 05 06 00 00 00 00 " + " 04 00 04 00 F5 00 00 00 27 06 00 00 00 00 00 00 " + " 10 F0 12 00 00 00 02 00 01 00 60 01 0B 00 9A 00 " + " 02 00 D0 00 0C 00 00 01 00 00 11 F0 00 00 00 00 " + " 5D 00 1A 00 15 00 12 00 06 00 12 00 11 60 00 00 " + " 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EC 00 " + " 08 00 00 00 0D F0 00 00 00 00 B6 01 12 00 12 02 " + " 00 00 00 00 00 00 00 00 06 00 10 00 00 00 00 00 " + " 3C 00 07 00 00 74 65 78 74 2D 34 3C 00 10 00 00 " + " 00 16 00 00 00 00 00 06 00 00 00 00 00 00 00 3C " + " 00 C8 07 0F 00 04 F0 C8 07 00 00 A2 0C 0A F0 08 " + " 00 00 00 13 04 00 00 00 0A 00 00 93 00 0B F0 4A " + " 00 00 00 7F 00 00 00 04 00 80 00 80 33 9A 02 85 " + " 00 02 00 00 00 8B 00 02 00 00 00 BF 00 1A 00 1F " + " 00 BF 01 01 00 11 00 FF 01 00 00 08 00 80 C3 14 " + " 00 00 00 BF 03 00 00 02 00 54 00 65 00 78 00 74 " + " 00 42 00 6F 00 78 00 20 00 35 00 00 00 13 00 22 " + " F1 34 07 00 00 A9 C3 2E 07 00 00 50 4B 03 04 14 " + " 00 06 00 08 00 00 00 21 00 F0 F7 8A BB FD 00 00 " + " 00 E2 01 00 00 13 00 00 00 5B 43 6F 6E 74 65 6E " + " 74 5F 54 79 70 65 73 5D 2E 78 6D 6C 94 91 CD 4A " + " C4 30 10 C7 EF 82 EF 10 E6 2A 6D AA 07 11 69 BA " + " 07 AB 47 15 5D 1F 60 48 A6 6D D8 36 09 99 58 77 " + " DF DE 74 3F 2E E2 0A 1E 67 E6 FF F1 23 A9 57 DB " + " 69 14 33 45 B6 DE 29 B8 2E 2B 10 E4 B4 37 D6 F5 " + " 0A 3E D6 4F C5 1D 08 4E E8 0C 8E DE 91 82 1D 31 " + " AC 9A CB 8B 7A BD 0B C4 22 BB 1D 2B 18 52 0A F7 " + " 52 B2 1E 68 42 2E 7D 20 97 2F 9D 8F 13 A6 3C C6 " + " 5E 06 D4 1B EC 49 DE 54 D5 AD D4 DE 25 72 A9 48 " + " 4B 06 34 75 4B 1D 7E 8E 49 3C 6E F3 FA 40 12 69 " + " 64 10 0F 07 E1 D2 A5 00 43 18 AD C6 94 49 E5 EC " + " CC 8F 96 E2 D8 50 66 E7 5E C3 83 0D 7C 95 31 40 " + " FE DA B0 5C CE 17 1C 7D 2F F9 69 A2 35 24 5E 31 " + " A6 67 9C 32 86 34 91 25 0F 18 28 6B CA BF 53 16 " + " CC 89 0B DF 75 56 53 D9 46 7E 5F 7C 27 A8 73 E1 " + " C6 7F B9 48 F3 7F B3 DB 6C 7B A3 F9 94 2E F7 3F " + " D4 7C 03 00 00 FF FF 03 00 50 4B 03 04 14 00 06 " + " 00 08 00 00 00 21 00 31 DD 5F 61 D2 00 00 00 8F " + " 01 00 00 0B 00 00 00 5F 72 65 6C 73 2F 2E 72 65 " + " 6C 73 A4 90 C1 6A C3 30 0C 86 EF 83 BD 83 D1 BD " + " 71 DA 43 19 A3 4E 6F 85 5E 4B 07 BB 0A 5B 49 4C " + " 63 CB 58 26 6D DF BE A6 30 58 46 6F 3B EA 17 FA " + " 3E F1 EF F6 B7 30 A9 99 B2 78 8E 06 D6 4D 0B 8A " + " A2 65 E7 E3 60 E0 EB 7C 58 7D 80 92 82 D1 E1 C4 " + " 91 0C DC 49 60 DF BD BF ED 4E 34 61 A9 47 32 FA " + " 24 AA 52 A2 18 18 4B 49 9F 5A 8B 1D 29 A0 34 9C " + " 28 D6 4D CF 39 60 A9 63 1E 74 42 7B C1 81 F4 A6 " + " 6D B7 3A FF 66 40 B7 60 AA A3 33 90 8F 6E 03 EA " + " 7C 4F D5 FC 87 1D BC CD 2C DC 97 C6 72 D0 DC F7 " + " DE BE A2 6A C7 D7 78 A2 B9 52 30 0F 54 0C B8 2C " + " CF 30 D3 DC D4 E7 40 BF F6 AE FF E9 95 11 13 7D " + " 57 FE 42 FC 4C AB F5 C7 AC 17 35 76 0F 00 00 00 " + " FF FF 03 00 50 4B 03 04 14 00 06 00 08 00 00 00 " + " 21 00 C4 6F 3F 83 76 02 00 00 1C 07 00 00 10 00 " + " 00 00 64 72 73 2F 73 68 61 70 65 78 6D 6C 2E 78 " + " 6D 6C BC 55 CD 6E DB 30 0C BE 0F D8 3B 08 BA A7 " + " B6 83 3A 4D 8D C8 45 97 A2 BB 0C 6B 90 34 0F A0 " + " C8 72 62 4C 96 0C 49 4D 9C 3E FD 48 C9 49 B7 1E " + " 76 68 86 5E 64 9A 12 F9 51 1F 7F 34 BB EB 5B 45 " + " F6 D2 BA C6 68 46 B3 AB 94 12 A9 85 A9 1A BD 65 " + " 74 FD FC 38 9A 52 E2 3C D7 15 57 46 4B 46 8F D2 " + " D1 BB F2 EB 97 59 5F D9 82 6B B1 33 96 80 0B ED " + " 0A 50 30 BA F3 BE 2B 92 C4 89 9D 6C B9 BB 32 9D " + " D4 B0 5B 1B DB 72 0F BF 76 9B 54 96 1F C0 79 AB " + " 92 71 9A 4E 12 D7 59 C9 2B B7 93 D2 3F C4 1D 5A " + " 06 DF 80 36 97 4A DD 07 88 A8 AA AD 69 A3 24 8C " + " 2A B3 59 82 31 A0 18 0C 40 78 AA EB 72 9C DE E6 " + " 79 7A DE 43 55 D8 B6 E6 50 66 D7 51 8F F2 49 19 " + " 6C A6 F9 4D 7E DE 0A 26 C1 F7 1B A0 EC 3D 11 3D " + " A3 F9 38 1F A7 40 89 38 32 3A 9E 5C E7 93 94 26 " + " D1 95 EB 48 CB 85 35 8C 52 E2 E1 B8 6A F4 2F 90 " + " E3 A6 DE AF BA 85 8D B2 F8 B9 5F 58 D2 54 8C 4E " + " 28 D1 BC 05 52 9F E1 FC 37 D3 93 FC E4 0C CE A0 " + " 01 F1 3D A8 21 2D A8 0F 11 FD E9 C8 05 97 BC E8 " + " 6B DB 0E 39 E0 1F C8 40 CB 1B 0D 61 F2 C2 D4 35 " + " 01 B0 69 76 9B E5 50 06 E1 86 C0 E5 4D 88 8A 17 " + " FF A6 20 89 71 A0 9F CE 3A FF 5D 9A 8B 63 22 E8 " + " 88 51 2B 85 0F F1 F1 FD 0F E7 91 88 37 08 84 D3 " + " E6 B1 51 EA 52 02 4E 04 47 52 B1 B0 9C 3F 2A 89 " + " 00 4A 2F 25 30 13 8A FC C3 04 43 C2 81 DB 34 5C " + " C4 09 BB DD CC 95 25 D0 30 40 34 34 1A AC 1B 5C " + " E3 ED 02 20 22 D7 70 B1 4F C6 1E 20 11 5D D6 35 " + " 50 FF C9 F8 67 D0 70 7F A3 FF 1F 7E DB 68 63 07 " + " FE 61 3A 49 4C C0 9E 2B 46 7D 1F FB 0B F8 8E 78 " + " 43 AF 0D 05 80 B5 80 7D 58 1D 31 A4 0D 7C A1 31 " + " 2F AD 06 98 B8 FE 09 96 5A 99 03 A3 42 35 1D 25 " + " 30 4A 5F DF EB 0E 96 77 8C 6A 18 86 94 58 AF E6 " + " 06 E2 85 62 89 83 17 42 8F F7 E9 EE 5F 3C 74 C1 " + " D0 1C 31 44 0C 56 39 BF C2 2A BE 34 5C 28 4B E8 " + " B9 4B BD A0 13 1B 16 20 50 71 7C 60 A4 1E AD 57 " + " F0 C0 BC C2 8C CB D2 50 FF BC F0 25 CE CF 11 0C " + " 64 94 71 0D 56 52 57 0B 6E F9 F2 6C 6C 5F 46 CB " + " F5 DF C6 38 1A 86 EC 9D 52 16 C6 A6 03 6D 78 2C " + " 54 23 B5 7F E0 9E 9F FA FD DD 33 13 4E 47 76 CB " + " DF 00 00 00 FF FF 03 00 50 4B 03 04 14 00 06 00 " + " 08 00 00 00 21 00 AF 34 70 A0 29 01 00 00 AD 01 " + " 00 00 0F 00 00 00 64 72 73 2F 64 6F 77 6E 72 65 " + " 76 2E 78 6D 6C 5C 50 5D 4F C2 30 14 7D 37 F1 3F " + " 34 D7 C4 37 D9 98 2B 4C A4 90 C5 84 88 C9 FC 18 " + " 92 F0 5A D6 96 2D AE ED 6C 2B 0C 7F BD 1D A8 44 " + " 1F CF 67 EF E9 78 DA CA 1A 6D B9 B1 95 56 04 FA " + " BD 10 10 57 85 66 95 DA 10 58 BE CE AE 12 40 D6 " + " 51 C5 68 AD 15 27 B0 E7 16 A6 93 F3 B3 31 1D 31 " + " BD 53 39 DF 2E DC 06 F9 12 65 47 94 40 E9 5C 33 " + " 0A 02 5B 94 5C 52 DB D3 0D 57 5E 13 DA 48 EA 3C " + " 34 9B 80 19 BA F3 E5 B2 0E A2 30 1C 04 92 56 CA " + " BF 50 D2 86 DF 95 BC 78 5B 7C 48 02 19 13 8F AB " + " B8 9A 3D 50 F1 9E CE E3 3C C1 DB 67 86 09 B9 BC " + " 68 D3 5B 40 8E B7 EE 64 6E EA 55 16 65 D9 FA 65 " + " 99 FE 18 0E 75 73 46 60 00 48 DC EF D7 A6 62 39 " + " B5 8E 1B 02 7E 9F 5F EB 97 C2 C4 4F 68 EB 54 15 " + " A5 36 48 E4 DC 56 9F 7E DF 91 17 46 4B 64 F4 CE " + " E3 18 50 A1 EB 4E E8 88 27 21 2C 77 04 A2 04 0F " + " F1 41 F9 65 C2 1B 8C 43 08 BA 5A A7 BF C3 47 8B " + " B7 FF 09 F7 C3 78 F8 2F DD 8F AE 93 08 77 E9 E0 " + " 74 D5 01 9C 7E 79 F2 05 00 00 FF FF 03 00 50 4B " + " 01 02 2D 00 14 00 06 00 08 00 00 00 21 00 F0 F7 " + " 8A BB FD 00 00 00 E2 01 00 00 13 00 00 00 00 00 " + " 00 00 00 00 00 00 00 00 00 00 00 00 5B 43 6F 6E " + " 74 65 6E 74 5F 54 79 70 65 73 5D 2E 78 6D 6C 50 " + " 4B 01 02 2D 00 14 00 06 00 08 00 00 00 21 00 31 " + " DD 5F 61 D2 00 00 00 8F 01 00 00 0B 00 00 00 00 " + " 00 00 00 00 00 00 00 00 00 2E 01 00 00 5F 72 65 " + " 6C 73 2F 2E 72 65 6C 73 50 4B 01 02 2D 00 14 00 " + " 06 00 08 00 00 00 21 00 C4 6F 3F 83 76 02 00 00 " + " 1C 07 00 00 10 00 00 00 00 00 00 00 00 00 00 00 " + " 00 00 29 02 00 00 64 72 73 2F 73 68 61 70 65 78 " + " 6D 6C 2E 78 6D 6C 50 4B 01 02 2D 00 14 00 06 00 " + " 08 00 00 00 21 00 AF 34 70 A0 29 01 00 00 AD 01 " + " 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 " + " CD 04 00 00 64 72 73 2F 64 6F 77 6E 72 65 76 2E " + " 78 6D 6C 50 4B 05 06 00 00 00 00 04 00 04 00 F5 " + " 00 00 00 23 06 00 00 00 00 00 00 10 F0 12 00 00 " + " 00 02 00 01 00 60 01 0E 00 26 00 02 00 D0 00 0F " + " 00 8D 00 00 00 11 F0 00 00 00 00 5D 00 1A 00 15 " + " 00 12 00 06 00 13 00 11 60 00 00 00 00 00 00 00 " + " 00 00 00 00 00 00 00 00 00 3C 00 08 00 00 00 0D " + " F0 00 00 00 00 B6 01 12 00 12 02 00 00 00 00 00 " + " 00 00 00 06 00 10 00 00 00 00 00 3C 00 07 00 00 " + " 74 65 78 74 2D 35 3C 00 10 00 00 00 16 00 00 00 " + " 00 00 06 00 00 00 00 00 00 00 " + " "; byte[] dgBytes = HexRead.ReadFromString(data); IList<NPOI.HSSF.Record.Record> dgRecords = RecordFactory.CreateRecords(new MemoryStream(dgBytes)); Assert.AreEqual(20, dgRecords.Count); short[] expectedSids = { DrawingRecord.sid, ObjRecord.sid, DrawingRecord.sid, TextObjectRecord.sid, DrawingRecord.sid, ObjRecord.sid, DrawingRecord.sid, TextObjectRecord.sid, DrawingRecord.sid, ObjRecord.sid, DrawingRecord.sid, TextObjectRecord.sid, DrawingRecord.sid, ObjRecord.sid, DrawingRecord.sid, TextObjectRecord.sid, ContinueRecord.sid, ObjRecord.sid, ContinueRecord.sid, TextObjectRecord.sid }; for (int i = 0; i < expectedSids.Length; i++) { Assert.AreEqual(expectedSids[i], dgRecords[(i)].Sid, "unexpected record.sid and index[" + i + "]"); } DrawingManager2 drawingManager = new DrawingManager2(new EscherDggRecord()); // create a dummy sheet consisting of our Test data InternalSheet sheet = InternalSheet.CreateSheet(); List<RecordBase> records = sheet.Records; records.Clear(); records.AddRange(dgRecords); records.Add(EOFRecord.instance); sheet.AggregateDrawingRecords(drawingManager, false); Assert.AreEqual(2, records.Count, "drawing was not fully aggregated"); Assert.IsTrue(records[(0)] is EscherAggregate, "expected EscherAggregate"); Assert.IsTrue(records[(1)] is EOFRecord, "expected EOFRecord"); EscherAggregate agg = (EscherAggregate)records[(0)]; byte[] dgBytesAfterSave = agg.Serialize(); Assert.AreEqual(dgBytes.Length, dgBytesAfterSave.Length, "different size of Drawing data before and After save"); Assert.IsTrue(Arrays.Equals(dgBytes, dgBytesAfterSave), "drawing data before and After save is different"); }
/** * Finds the DrawingRecord for our sheet, and * attaches it to the DrawingManager (which knows about * the overall DrawingGroup for our workbook). * If requested, will Create a new DrawRecord * if none currently exist * @param drawingManager The DrawingManager2 for our workbook * @param CreateIfMissing Should one be Created if missing? */ public int AggregateDrawingRecords(DrawingManager2 drawingManager, bool CreateIfMissing) { int loc = FindFirstRecordLocBySid(DrawingRecord.sid); bool noDrawingRecordsFound = (loc == -1); if (noDrawingRecordsFound) { if (!CreateIfMissing) { // None found, and not allowed to Add in return -1; } EscherAggregate aggregate = new EscherAggregate(drawingManager); loc = FindFirstRecordLocBySid(EscherAggregate.sid); if (loc == -1) { loc = FindFirstRecordLocBySid(WindowTwoRecord.sid); } else { Records.RemoveAt(loc); } Records.Insert(loc, aggregate); return loc; } else { IList records = Records; EscherAggregate r = EscherAggregate.CreateAggregate(records, loc, drawingManager); int startloc = loc; while (loc + 1 < records.Count && records[loc] is DrawingRecord && records[loc + 1] is ObjRecord) { loc += 2; } int endloc = loc - 1; for (int i = 0; i < (endloc - startloc + 1); i++) records.RemoveAt(startloc); records.Insert(startloc, r); return startloc; } }
/** * Collapses the drawing records into an aggregate. */ public static EscherAggregate CreateAggregate(IList records, int locFirstDrawingRecord, DrawingManager2 drawingManager) { // Keep track of any shape records Created so we can match them back to the object id's. // Textbox objects are also treated as shape objects. IList shapeRecords = new ArrayList(); EscherRecordFactory recordFactory = new CustomEscherRecordFactory(ref shapeRecords); // Calculate the size of the buffer EscherAggregate agg = new EscherAggregate(drawingManager); int loc = locFirstDrawingRecord; int dataSize = 0; while (loc + 1 < records.Count && GetSid(records, loc) == DrawingRecord.sid && IsObjectRecord(records, loc + 1)) { dataSize += ((DrawingRecord)records[loc]).Data.Length; loc += 2; } // Create one big buffer byte[] buffer = new byte[dataSize]; int offset = 0; loc = locFirstDrawingRecord; while (loc + 1 < records.Count && GetSid(records, loc) == DrawingRecord.sid && IsObjectRecord(records, loc + 1)) { DrawingRecord drawingRecord = (DrawingRecord)records[loc]; Array.Copy(drawingRecord.Data, 0, buffer, offset, drawingRecord.Data.Length); offset += drawingRecord.Data.Length; loc += 2; } // Decode the shapes // agg.escherRecords = new ArrayList(); int pos = 0; while (pos < dataSize) { EscherRecord r = recordFactory.CreateRecord(buffer, pos); int bytesRead = r.FillFields(buffer, pos, recordFactory); agg.AddEscherRecord(r); pos += bytesRead; } // Associate the object records with the shapes loc = locFirstDrawingRecord; int shapeIndex = 0; agg.shapeToObj = new Hashtable(); while (loc + 1 < records.Count && GetSid(records, loc) == DrawingRecord.sid && IsObjectRecord(records, loc + 1)) { Record objRecord = (Record)records[loc + 1]; agg.shapeToObj[shapeRecords[shapeIndex++]]= objRecord; loc += 2; } return agg; }
/** * Finds the primary drawing Group, if one already exists */ public void FindDrawingGroup() { // Need to Find a DrawingGroupRecord that // Contains a EscherDggRecord for (IEnumerator rit = records.GetEnumerator(); rit.MoveNext(); ) { Record r = (Record)rit.Current; if (r is DrawingGroupRecord) { DrawingGroupRecord dg = (DrawingGroupRecord)r; dg.ProcessChildRecords(); EscherContainerRecord cr = dg.GetEscherContainer(); if (cr == null) { continue; } EscherDggRecord dgg = null; for (IEnumerator it = cr.ChildRecords.GetEnumerator(); it.MoveNext(); ) { Object er = it.Current; if (er is EscherDggRecord) { dgg = (EscherDggRecord)er; } } if (dgg != null) { drawingManager = new DrawingManager2(dgg); return; } } } // Look for the DrawingGroup record int dgLoc = FindFirstRecordLocBySid(DrawingGroupRecord.sid); // If there is one, does it have a EscherDggRecord? if (dgLoc != -1) { DrawingGroupRecord dg = (DrawingGroupRecord)records[dgLoc]; EscherDggRecord dgg = null; for (IEnumerator it = dg.EscherRecords.GetEnumerator(); it.MoveNext(); ) { Object er = it.Current; if (er is EscherDggRecord) { dgg = (EscherDggRecord)er; } } if (dgg != null) { drawingManager = new DrawingManager2(dgg); } } }