{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,8 +1,8 @@\n-Zip file size: 13231 bytes, number of entries: 21\n+Zip file size: 13252 bytes, number of entries: 21\n -rw-r--r--  2.0 unx       64 b- defN 20-Apr-01 08:04 META-INF/MANIFEST.MF\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/configcenter/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/configcenter/support/\n@@ -11,13 +11,13 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/dubbo/internal/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/\n -rw-r--r--  2.0 unx     3695 b- defN 20-Apr-01 08:04 META-INF/DEPENDENCIES\n -rw-r--r--  2.0 unx    11358 b- defN 20-Apr-01 08:04 META-INF/LICENSE\n -rw-r--r--  2.0 unx      182 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx    11818 b- defN 20-Apr-01 08:04 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java\n--rw-r--r--  2.0 unx     1306 b- defN 20-Apr-01 08:04 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java\n+-rw-r--r--  2.0 unx    12076 b- defN 20-Apr-01 08:04 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java\n+-rw-r--r--  2.0 unx     1337 b- defN 20-Apr-01 08:04 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java\n -rw-r--r--  2.0 unx       85 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory\n--rw-r--r--  2.0 unx     2428 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml\n+-rw-r--r--  2.0 unx     2369 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml\n -rw-r--r--  2.0 unx       80 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.properties\n-21 files, 31016 bytes uncompressed, 10091 bytes compressed:  67.5%\n+21 files, 31246 bytes uncompressed, 10112 bytes compressed:  67.6%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -299,781 +299,781 @@\n 1788 Extract Zip Spec      14 (20) '2.0'\n 1789 Extract OS            00 (0) 'MS-DOS'\n 178A General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n 178C Compression Method    0008 (8) 'Deflated'\n 178E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1792 CRC                   52ECC716 (1391249174)\n-1796 Compressed Size       00000C7C (3196)\n-179A Uncompressed Size     00002E2A (11818)\n+1792 CRC                   86E4A798 (2263132056)\n+1796 Compressed Size       00000C90 (3216)\n+179A Uncompressed Size     00002F2C (12076)\n 179E Filename Length       004C (76)\n 17A0 Extra Length          0000 (0)\n 17A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x17A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 17EE PAYLOAD\n \n-246A LOCAL HEADER #18      04034B50 (67324752)\n-246E Extract Zip Spec      14 (20) '2.0'\n-246F Extract OS            00 (0) 'MS-DOS'\n-2470 General Purpose Flag  0800 (2048)\n+247E LOCAL HEADER #18      04034B50 (67324752)\n+2482 Extract Zip Spec      14 (20) '2.0'\n+2483 Extract OS            00 (0) 'MS-DOS'\n+2484 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2472 Compression Method    0008 (8) 'Deflated'\n-2474 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2478 CRC                   BB1FB1EA (3139416554)\n-247C Compressed Size       0000026E (622)\n-2480 Uncompressed Size     0000051A (1306)\n-2484 Filename Length       0053 (83)\n-2486 Extra Length          0000 (0)\n-2488 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2486 Compression Method    0008 (8) 'Deflated'\n+2488 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+248C CRC                   4296B4B4 (1117172916)\n+2490 Compressed Size       00000276 (630)\n+2494 Uncompressed Size     00000539 (1337)\n+2498 Filename Length       0053 (83)\n+249A Extra Length          0000 (0)\n+249C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2488: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x249C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24DB PAYLOAD\n+24EF PAYLOAD\n \n-2749 LOCAL HEADER #19      04034B50 (67324752)\n-274D Extract Zip Spec      14 (20) '2.0'\n-274E Extract OS            00 (0) 'MS-DOS'\n-274F General Purpose Flag  0800 (2048)\n+2765 LOCAL HEADER #19      04034B50 (67324752)\n+2769 Extract Zip Spec      14 (20) '2.0'\n+276A Extract OS            00 (0) 'MS-DOS'\n+276B General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2751 Compression Method    0008 (8) 'Deflated'\n-2753 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2757 CRC                   C46B2C4D (3295358029)\n-275B Compressed Size       00000049 (73)\n-275F Uncompressed Size     00000055 (85)\n-2763 Filename Length       005F (95)\n-2765 Extra Length          0000 (0)\n-2767 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+276D Compression Method    0008 (8) 'Deflated'\n+276F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2773 CRC                   C46B2C4D (3295358029)\n+2777 Compressed Size       00000049 (73)\n+277B Uncompressed Size     00000055 (85)\n+277F Filename Length       005F (95)\n+2781 Extra Length          0000 (0)\n+2783 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2767: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2783: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-27C6 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+27E2 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-280F LOCAL HEADER #20      04034B50 (67324752)\n-2813 Extract Zip Spec      14 (20) '2.0'\n-2814 Extract OS            00 (0) 'MS-DOS'\n-2815 General Purpose Flag  0800 (2048)\n+282B LOCAL HEADER #20      04034B50 (67324752)\n+282F Extract Zip Spec      14 (20) '2.0'\n+2830 Extract OS            00 (0) 'MS-DOS'\n+2831 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2817 Compression Method    0008 (8) 'Deflated'\n-2819 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-281D CRC                   7376C130 (1937162544)\n-2821 Compressed Size       000003BA (954)\n-2825 Uncompressed Size     0000097C (2428)\n-2829 Filename Length       0041 (65)\n-282B Extra Length          0000 (0)\n-282D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2833 Compression Method    0008 (8) 'Deflated'\n+2835 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2839 CRC                   91AC24FF (2443977983)\n+283D Compressed Size       000003B3 (947)\n+2841 Uncompressed Size     00000941 (2369)\n+2845 Filename Length       0041 (65)\n+2847 Extra Length          0000 (0)\n+2849 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x282D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2849: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-286E PAYLOAD\n+288A PAYLOAD\n \n-2C28 LOCAL HEADER #21      04034B50 (67324752)\n-2C2C Extract Zip Spec      14 (20) '2.0'\n-2C2D Extract OS            00 (0) 'MS-DOS'\n-2C2E General Purpose Flag  0800 (2048)\n+2C3D LOCAL HEADER #21      04034B50 (67324752)\n+2C41 Extract Zip Spec      14 (20) '2.0'\n+2C42 Extract OS            00 (0) 'MS-DOS'\n+2C43 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2C30 Compression Method    0008 (8) 'Deflated'\n-2C32 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2C36 CRC                   B107068C (2970027660)\n-2C3A Compressed Size       0000004C (76)\n-2C3E Uncompressed Size     00000050 (80)\n-2C42 Filename Length       0048 (72)\n-2C44 Extra Length          0000 (0)\n-2C46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C45 Compression Method    0008 (8) 'Deflated'\n+2C47 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2C4B CRC                   B107068C (2970027660)\n+2C4F Compressed Size       0000004C (76)\n+2C53 Uncompressed Size     00000050 (80)\n+2C57 Filename Length       0048 (72)\n+2C59 Extra Length          0000 (0)\n+2C5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2C8E PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+2CA3 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-2CDA CENTRAL HEADER #1     02014B50 (33639248)\n-2CDE Created Zip Spec      14 (20) '2.0'\n-2CDF Created OS            03 (3) 'Unix'\n-2CE0 Extract Zip Spec      14 (20) '2.0'\n-2CE1 Extract OS            00 (0) 'MS-DOS'\n-2CE2 General Purpose Flag  0800 (2048)\n+2CEF CENTRAL HEADER #1     02014B50 (33639248)\n+2CF3 Created Zip Spec      14 (20) '2.0'\n+2CF4 Created OS            03 (3) 'Unix'\n+2CF5 Extract Zip Spec      14 (20) '2.0'\n+2CF6 Extract OS            00 (0) 'MS-DOS'\n+2CF7 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2CE4 Compression Method    0008 (8) 'Deflated'\n-2CE6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2CEA CRC                   A689EB18 (2794056472)\n-2CEE Compressed Size       00000042 (66)\n-2CF2 Uncompressed Size     00000040 (64)\n-2CF6 Filename Length       0014 (20)\n-2CF8 Extra Length          0000 (0)\n-2CFA Comment Length        0000 (0)\n-2CFC Disk Start            0000 (0)\n-2CFE Int File Attributes   0000 (0)\n+2CF9 Compression Method    0008 (8) 'Deflated'\n+2CFB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2CFF CRC                   A689EB18 (2794056472)\n+2D03 Compressed Size       00000042 (66)\n+2D07 Uncompressed Size     00000040 (64)\n+2D0B Filename Length       0014 (20)\n+2D0D Extra Length          0000 (0)\n+2D0F Comment Length        0000 (0)\n+2D11 Disk Start            0000 (0)\n+2D13 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2D00 Ext File Attributes   81A40000 (2175008768)\n+2D15 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2D04 Local Header Offset   00000000 (0)\n-2D08 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+2D19 Local Header Offset   00000000 (0)\n+2D1D Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D08: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D1D: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D1C CENTRAL HEADER #2     02014B50 (33639248)\n-2D20 Created Zip Spec      14 (20) '2.0'\n-2D21 Created OS            03 (3) 'Unix'\n-2D22 Extract Zip Spec      0A (10) '1.0'\n-2D23 Extract OS            00 (0) 'MS-DOS'\n-2D24 General Purpose Flag  0800 (2048)\n+2D31 CENTRAL HEADER #2     02014B50 (33639248)\n+2D35 Created Zip Spec      14 (20) '2.0'\n+2D36 Created OS            03 (3) 'Unix'\n+2D37 Extract Zip Spec      0A (10) '1.0'\n+2D38 Extract OS            00 (0) 'MS-DOS'\n+2D39 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2D26 Compression Method    0000 (0) 'Stored'\n-2D28 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2D2C CRC                   00000000 (0)\n-2D30 Compressed Size       00000000 (0)\n-2D34 Uncompressed Size     00000000 (0)\n-2D38 Filename Length       0009 (9)\n-2D3A Extra Length          0000 (0)\n-2D3C Comment Length        0000 (0)\n-2D3E Disk Start            0000 (0)\n-2D40 Int File Attributes   0000 (0)\n+2D3B Compression Method    0000 (0) 'Stored'\n+2D3D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2D41 CRC                   00000000 (0)\n+2D45 Compressed Size       00000000 (0)\n+2D49 Uncompressed Size     00000000 (0)\n+2D4D Filename Length       0009 (9)\n+2D4F Extra Length          0000 (0)\n+2D51 Comment Length        0000 (0)\n+2D53 Disk Start            0000 (0)\n+2D55 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2D42 Ext File Attributes   41ED0010 (1106051088)\n+2D57 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2D46 Local Header Offset   00000074 (116)\n-2D4A Filename              'XXXXXXXXX'\n+2D5B Local Header Offset   00000074 (116)\n+2D5F Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x2D4A: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x2D5F: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2D4A: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2D5F: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2D22: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x2D37: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-2D53 CENTRAL HEADER #3     02014B50 (33639248)\n-2D57 Created Zip Spec      14 (20) '2.0'\n-2D58 Created OS            03 (3) 'Unix'\n-2D59 Extract Zip Spec      0A (10) '1.0'\n-2D5A Extract OS            00 (0) 'MS-DOS'\n-2D5B General Purpose Flag  0800 (2048)\n+2D68 CENTRAL HEADER #3     02014B50 (33639248)\n+2D6C Created Zip Spec      14 (20) '2.0'\n+2D6D Created OS            03 (3) 'Unix'\n+2D6E Extract Zip Spec      0A (10) '1.0'\n+2D6F Extract OS            00 (0) 'MS-DOS'\n+2D70 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2D5D Compression Method    0000 (0) 'Stored'\n-2D5F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2D63 CRC                   00000000 (0)\n-2D67 Compressed Size       00000000 (0)\n-2D6B Uncompressed Size     00000000 (0)\n-2D6F Filename Length       0004 (4)\n-2D71 Extra Length          0000 (0)\n-2D73 Comment Length        0000 (0)\n-2D75 Disk Start            0000 (0)\n-2D77 Int File Attributes   0000 (0)\n+2D72 Compression Method    0000 (0) 'Stored'\n+2D74 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2D78 CRC                   00000000 (0)\n+2D7C Compressed Size       00000000 (0)\n+2D80 Uncompressed Size     00000000 (0)\n+2D84 Filename Length       0004 (4)\n+2D86 Extra Length          0000 (0)\n+2D88 Comment Length        0000 (0)\n+2D8A Disk Start            0000 (0)\n+2D8C Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2D79 Ext File Attributes   41ED0010 (1106051088)\n+2D8E Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2D7D Local Header Offset   0000009B (155)\n-2D81 Filename              'XXXX'\n+2D92 Local Header Offset   0000009B (155)\n+2D96 Filename              'XXXX'\n #\n-# WARNING: Offset 0x2D81: Filename 'XXXX'\n+# WARNING: Offset 0x2D96: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2D81: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x2D96: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2D59: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x2D6E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-2D85 CENTRAL HEADER #4     02014B50 (33639248)\n-2D89 Created Zip Spec      14 (20) '2.0'\n-2D8A Created OS            03 (3) 'Unix'\n-2D8B Extract Zip Spec      0A (10) '1.0'\n-2D8C Extract OS            00 (0) 'MS-DOS'\n-2D8D General Purpose Flag  0800 (2048)\n+2D9A CENTRAL HEADER #4     02014B50 (33639248)\n+2D9E Created Zip Spec      14 (20) '2.0'\n+2D9F Created OS            03 (3) 'Unix'\n+2DA0 Extract Zip Spec      0A (10) '1.0'\n+2DA1 Extract OS            00 (0) 'MS-DOS'\n+2DA2 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2D8F Compression Method    0000 (0) 'Stored'\n-2D91 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2D95 CRC                   00000000 (0)\n-2D99 Compressed Size       00000000 (0)\n-2D9D Uncompressed Size     00000000 (0)\n-2DA1 Filename Length       000B (11)\n-2DA3 Extra Length          0000 (0)\n-2DA5 Comment Length        0000 (0)\n-2DA7 Disk Start            0000 (0)\n-2DA9 Int File Attributes   0000 (0)\n+2DA4 Compression Method    0000 (0) 'Stored'\n+2DA6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2DAA CRC                   00000000 (0)\n+2DAE Compressed Size       00000000 (0)\n+2DB2 Uncompressed Size     00000000 (0)\n+2DB6 Filename Length       000B (11)\n+2DB8 Extra Length          0000 (0)\n+2DBA Comment Length        0000 (0)\n+2DBC Disk Start            0000 (0)\n+2DBE Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2DAB Ext File Attributes   41ED0010 (1106051088)\n+2DC0 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2DAF Local Header Offset   000000BD (189)\n-2DB3 Filename              'XXXXXXXXXXX'\n+2DC4 Local Header Offset   000000BD (189)\n+2DC8 Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2DB3: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x2DC8: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2DB3: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2DC8: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2D8B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x2DA0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-2DBE CENTRAL HEADER #5     02014B50 (33639248)\n-2DC2 Created Zip Spec      14 (20) '2.0'\n-2DC3 Created OS            03 (3) 'Unix'\n-2DC4 Extract Zip Spec      0A (10) '1.0'\n-2DC5 Extract OS            00 (0) 'MS-DOS'\n-2DC6 General Purpose Flag  0800 (2048)\n+2DD3 CENTRAL HEADER #5     02014B50 (33639248)\n+2DD7 Created Zip Spec      14 (20) '2.0'\n+2DD8 Created OS            03 (3) 'Unix'\n+2DD9 Extract Zip Spec      0A (10) '1.0'\n+2DDA Extract OS            00 (0) 'MS-DOS'\n+2DDB General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2DC8 Compression Method    0000 (0) 'Stored'\n-2DCA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2DCE CRC                   00000000 (0)\n-2DD2 Compressed Size       00000000 (0)\n-2DD6 Uncompressed Size     00000000 (0)\n-2DDA Filename Length       0011 (17)\n-2DDC Extra Length          0000 (0)\n-2DDE Comment Length        0000 (0)\n-2DE0 Disk Start            0000 (0)\n-2DE2 Int File Attributes   0000 (0)\n+2DDD Compression Method    0000 (0) 'Stored'\n+2DDF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2DE3 CRC                   00000000 (0)\n+2DE7 Compressed Size       00000000 (0)\n+2DEB Uncompressed Size     00000000 (0)\n+2DEF Filename Length       0011 (17)\n+2DF1 Extra Length          0000 (0)\n+2DF3 Comment Length        0000 (0)\n+2DF5 Disk Start            0000 (0)\n+2DF7 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2DE4 Ext File Attributes   41ED0010 (1106051088)\n+2DF9 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2DE8 Local Header Offset   000000E6 (230)\n-2DEC Filename              'XXXXXXXXXXXXXXXXX'\n+2DFD Local Header Offset   000000E6 (230)\n+2E01 Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2DEC: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2E01: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2DEC: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2E01: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2DC4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2DD9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-2DFD CENTRAL HEADER #6     02014B50 (33639248)\n-2E01 Created Zip Spec      14 (20) '2.0'\n-2E02 Created OS            03 (3) 'Unix'\n-2E03 Extract Zip Spec      0A (10) '1.0'\n-2E04 Extract OS            00 (0) 'MS-DOS'\n-2E05 General Purpose Flag  0800 (2048)\n+2E12 CENTRAL HEADER #6     02014B50 (33639248)\n+2E16 Created Zip Spec      14 (20) '2.0'\n+2E17 Created OS            03 (3) 'Unix'\n+2E18 Extract Zip Spec      0A (10) '1.0'\n+2E19 Extract OS            00 (0) 'MS-DOS'\n+2E1A General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2E07 Compression Method    0000 (0) 'Stored'\n-2E09 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2E0D CRC                   00000000 (0)\n-2E11 Compressed Size       00000000 (0)\n-2E15 Uncompressed Size     00000000 (0)\n-2E19 Filename Length       001E (30)\n-2E1B Extra Length          0000 (0)\n-2E1D Comment Length        0000 (0)\n-2E1F Disk Start            0000 (0)\n-2E21 Int File Attributes   0000 (0)\n+2E1C Compression Method    0000 (0) 'Stored'\n+2E1E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2E22 CRC                   00000000 (0)\n+2E26 Compressed Size       00000000 (0)\n+2E2A Uncompressed Size     00000000 (0)\n+2E2E Filename Length       001E (30)\n+2E30 Extra Length          0000 (0)\n+2E32 Comment Length        0000 (0)\n+2E34 Disk Start            0000 (0)\n+2E36 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2E23 Ext File Attributes   41ED0010 (1106051088)\n+2E38 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2E27 Local Header Offset   00000115 (277)\n-2E2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2E3C Local Header Offset   00000115 (277)\n+2E40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2E2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2E40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2E2B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2E40: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2E03: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2E18: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2E49 CENTRAL HEADER #7     02014B50 (33639248)\n-2E4D Created Zip Spec      14 (20) '2.0'\n-2E4E Created OS            03 (3) 'Unix'\n-2E4F Extract Zip Spec      0A (10) '1.0'\n-2E50 Extract OS            00 (0) 'MS-DOS'\n-2E51 General Purpose Flag  0800 (2048)\n+2E5E CENTRAL HEADER #7     02014B50 (33639248)\n+2E62 Created Zip Spec      14 (20) '2.0'\n+2E63 Created OS            03 (3) 'Unix'\n+2E64 Extract Zip Spec      0A (10) '1.0'\n+2E65 Extract OS            00 (0) 'MS-DOS'\n+2E66 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2E53 Compression Method    0000 (0) 'Stored'\n-2E55 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2E59 CRC                   00000000 (0)\n-2E5D Compressed Size       00000000 (0)\n-2E61 Uncompressed Size     00000000 (0)\n-2E65 Filename Length       0026 (38)\n-2E67 Extra Length          0000 (0)\n-2E69 Comment Length        0000 (0)\n-2E6B Disk Start            0000 (0)\n-2E6D Int File Attributes   0000 (0)\n+2E68 Compression Method    0000 (0) 'Stored'\n+2E6A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2E6E CRC                   00000000 (0)\n+2E72 Compressed Size       00000000 (0)\n+2E76 Uncompressed Size     00000000 (0)\n+2E7A Filename Length       0026 (38)\n+2E7C Extra Length          0000 (0)\n+2E7E Comment Length        0000 (0)\n+2E80 Disk Start            0000 (0)\n+2E82 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2E6F Ext File Attributes   41ED0010 (1106051088)\n+2E84 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2E73 Local Header Offset   00000151 (337)\n-2E77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2E88 Local Header Offset   00000151 (337)\n+2E8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2E77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2E8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2E77: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2E8C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2E4F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2E64: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2E9D CENTRAL HEADER #8     02014B50 (33639248)\n-2EA1 Created Zip Spec      14 (20) '2.0'\n-2EA2 Created OS            03 (3) 'Unix'\n-2EA3 Extract Zip Spec      0A (10) '1.0'\n-2EA4 Extract OS            00 (0) 'MS-DOS'\n-2EA5 General Purpose Flag  0800 (2048)\n+2EB2 CENTRAL HEADER #8     02014B50 (33639248)\n+2EB6 Created Zip Spec      14 (20) '2.0'\n+2EB7 Created OS            03 (3) 'Unix'\n+2EB8 Extract Zip Spec      0A (10) '1.0'\n+2EB9 Extract OS            00 (0) 'MS-DOS'\n+2EBA General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2EA7 Compression Method    0000 (0) 'Stored'\n-2EA9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2EAD CRC                   00000000 (0)\n-2EB1 Compressed Size       00000000 (0)\n-2EB5 Uncompressed Size     00000000 (0)\n-2EB9 Filename Length       002D (45)\n-2EBB Extra Length          0000 (0)\n-2EBD Comment Length        0000 (0)\n-2EBF Disk Start            0000 (0)\n-2EC1 Int File Attributes   0000 (0)\n+2EBC Compression Method    0000 (0) 'Stored'\n+2EBE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2EC2 CRC                   00000000 (0)\n+2EC6 Compressed Size       00000000 (0)\n+2ECA Uncompressed Size     00000000 (0)\n+2ECE Filename Length       002D (45)\n+2ED0 Extra Length          0000 (0)\n+2ED2 Comment Length        0000 (0)\n+2ED4 Disk Start            0000 (0)\n+2ED6 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2EC3 Ext File Attributes   41ED0010 (1106051088)\n+2ED8 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2EC7 Local Header Offset   00000195 (405)\n-2ECB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2EDC Local Header Offset   00000195 (405)\n+2EE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2ECB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2EE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2ECB: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2EE0: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2EA3: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2EB8: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2EF8 CENTRAL HEADER #9     02014B50 (33639248)\n-2EFC Created Zip Spec      14 (20) '2.0'\n-2EFD Created OS            03 (3) 'Unix'\n-2EFE Extract Zip Spec      0A (10) '1.0'\n-2EFF Extract OS            00 (0) 'MS-DOS'\n-2F00 General Purpose Flag  0800 (2048)\n+2F0D CENTRAL HEADER #9     02014B50 (33639248)\n+2F11 Created Zip Spec      14 (20) '2.0'\n+2F12 Created OS            03 (3) 'Unix'\n+2F13 Extract Zip Spec      0A (10) '1.0'\n+2F14 Extract OS            00 (0) 'MS-DOS'\n+2F15 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2F02 Compression Method    0000 (0) 'Stored'\n-2F04 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2F08 CRC                   00000000 (0)\n-2F0C Compressed Size       00000000 (0)\n-2F10 Uncompressed Size     00000000 (0)\n-2F14 Filename Length       000F (15)\n-2F16 Extra Length          0000 (0)\n-2F18 Comment Length        0000 (0)\n-2F1A Disk Start            0000 (0)\n-2F1C Int File Attributes   0000 (0)\n+2F17 Compression Method    0000 (0) 'Stored'\n+2F19 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2F1D CRC                   00000000 (0)\n+2F21 Compressed Size       00000000 (0)\n+2F25 Uncompressed Size     00000000 (0)\n+2F29 Filename Length       000F (15)\n+2F2B Extra Length          0000 (0)\n+2F2D Comment Length        0000 (0)\n+2F2F Disk Start            0000 (0)\n+2F31 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2F1E Ext File Attributes   41ED0010 (1106051088)\n+2F33 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2F22 Local Header Offset   000001E0 (480)\n-2F26 Filename              'XXXXXXXXXXXXXXX'\n+2F37 Local Header Offset   000001E0 (480)\n+2F3B Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2F26: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2F3B: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2F26: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2F3B: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2EFE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2F13: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-2F35 CENTRAL HEADER #10    02014B50 (33639248)\n-2F39 Created Zip Spec      14 (20) '2.0'\n-2F3A Created OS            03 (3) 'Unix'\n-2F3B Extract Zip Spec      0A (10) '1.0'\n-2F3C Extract OS            00 (0) 'MS-DOS'\n-2F3D General Purpose Flag  0800 (2048)\n+2F4A CENTRAL HEADER #10    02014B50 (33639248)\n+2F4E Created Zip Spec      14 (20) '2.0'\n+2F4F Created OS            03 (3) 'Unix'\n+2F50 Extract Zip Spec      0A (10) '1.0'\n+2F51 Extract OS            00 (0) 'MS-DOS'\n+2F52 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2F3F Compression Method    0000 (0) 'Stored'\n-2F41 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2F45 CRC                   00000000 (0)\n-2F49 Compressed Size       00000000 (0)\n-2F4D Uncompressed Size     00000000 (0)\n-2F51 Filename Length       0018 (24)\n-2F53 Extra Length          0000 (0)\n-2F55 Comment Length        0000 (0)\n-2F57 Disk Start            0000 (0)\n-2F59 Int File Attributes   0000 (0)\n+2F54 Compression Method    0000 (0) 'Stored'\n+2F56 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2F5A CRC                   00000000 (0)\n+2F5E Compressed Size       00000000 (0)\n+2F62 Uncompressed Size     00000000 (0)\n+2F66 Filename Length       0018 (24)\n+2F68 Extra Length          0000 (0)\n+2F6A Comment Length        0000 (0)\n+2F6C Disk Start            0000 (0)\n+2F6E Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2F5B Ext File Attributes   41ED0010 (1106051088)\n+2F70 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2F5F Local Header Offset   0000020D (525)\n-2F63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+2F74 Local Header Offset   0000020D (525)\n+2F78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2F63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2F78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2F63: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2F78: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2F3B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2F50: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2F7B CENTRAL HEADER #11    02014B50 (33639248)\n-2F7F Created Zip Spec      14 (20) '2.0'\n-2F80 Created OS            03 (3) 'Unix'\n-2F81 Extract Zip Spec      0A (10) '1.0'\n-2F82 Extract OS            00 (0) 'MS-DOS'\n-2F83 General Purpose Flag  0800 (2048)\n+2F90 CENTRAL HEADER #11    02014B50 (33639248)\n+2F94 Created Zip Spec      14 (20) '2.0'\n+2F95 Created OS            03 (3) 'Unix'\n+2F96 Extract Zip Spec      0A (10) '1.0'\n+2F97 Extract OS            00 (0) 'MS-DOS'\n+2F98 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2F85 Compression Method    0000 (0) 'Stored'\n-2F87 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2F8B CRC                   00000000 (0)\n-2F8F Compressed Size       00000000 (0)\n-2F93 Uncompressed Size     00000000 (0)\n-2F97 Filename Length       000F (15)\n-2F99 Extra Length          0000 (0)\n-2F9B Comment Length        0000 (0)\n-2F9D Disk Start            0000 (0)\n-2F9F Int File Attributes   0000 (0)\n+2F9A Compression Method    0000 (0) 'Stored'\n+2F9C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2FA0 CRC                   00000000 (0)\n+2FA4 Compressed Size       00000000 (0)\n+2FA8 Uncompressed Size     00000000 (0)\n+2FAC Filename Length       000F (15)\n+2FAE Extra Length          0000 (0)\n+2FB0 Comment Length        0000 (0)\n+2FB2 Disk Start            0000 (0)\n+2FB4 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2FA1 Ext File Attributes   41ED0010 (1106051088)\n+2FB6 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2FA5 Local Header Offset   00000243 (579)\n-2FA9 Filename              'XXXXXXXXXXXXXXX'\n+2FBA Local Header Offset   00000243 (579)\n+2FBE Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2FA9: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2FBE: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2FA9: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2FBE: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2F81: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2F96: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-2FB8 CENTRAL HEADER #12    02014B50 (33639248)\n-2FBC Created Zip Spec      14 (20) '2.0'\n-2FBD Created OS            03 (3) 'Unix'\n-2FBE Extract Zip Spec      0A (10) '1.0'\n-2FBF Extract OS            00 (0) 'MS-DOS'\n-2FC0 General Purpose Flag  0800 (2048)\n+2FCD CENTRAL HEADER #12    02014B50 (33639248)\n+2FD1 Created Zip Spec      14 (20) '2.0'\n+2FD2 Created OS            03 (3) 'Unix'\n+2FD3 Extract Zip Spec      0A (10) '1.0'\n+2FD4 Extract OS            00 (0) 'MS-DOS'\n+2FD5 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2FC2 Compression Method    0000 (0) 'Stored'\n-2FC4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2FC8 CRC                   00000000 (0)\n-2FCC Compressed Size       00000000 (0)\n-2FD0 Uncompressed Size     00000000 (0)\n-2FD4 Filename Length       0020 (32)\n-2FD6 Extra Length          0000 (0)\n-2FD8 Comment Length        0000 (0)\n-2FDA Disk Start            0000 (0)\n-2FDC Int File Attributes   0000 (0)\n+2FD7 Compression Method    0000 (0) 'Stored'\n+2FD9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2FDD CRC                   00000000 (0)\n+2FE1 Compressed Size       00000000 (0)\n+2FE5 Uncompressed Size     00000000 (0)\n+2FE9 Filename Length       0020 (32)\n+2FEB Extra Length          0000 (0)\n+2FED Comment Length        0000 (0)\n+2FEF Disk Start            0000 (0)\n+2FF1 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2FDE Ext File Attributes   41ED0010 (1106051088)\n+2FF3 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2FE2 Local Header Offset   00000270 (624)\n-2FE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2FF7 Local Header Offset   00000270 (624)\n+2FFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2FE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2FFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2FE6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2FFB: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2FBE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2FD3: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-3006 CENTRAL HEADER #13    02014B50 (33639248)\n-300A Created Zip Spec      14 (20) '2.0'\n-300B Created OS            03 (3) 'Unix'\n-300C Extract Zip Spec      0A (10) '1.0'\n-300D Extract OS            00 (0) 'MS-DOS'\n-300E General Purpose Flag  0800 (2048)\n+301B CENTRAL HEADER #13    02014B50 (33639248)\n+301F Created Zip Spec      14 (20) '2.0'\n+3020 Created OS            03 (3) 'Unix'\n+3021 Extract Zip Spec      0A (10) '1.0'\n+3022 Extract OS            00 (0) 'MS-DOS'\n+3023 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3010 Compression Method    0000 (0) 'Stored'\n-3012 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3016 CRC                   00000000 (0)\n-301A Compressed Size       00000000 (0)\n-301E Uncompressed Size     00000000 (0)\n-3022 Filename Length       003A (58)\n-3024 Extra Length          0000 (0)\n-3026 Comment Length        0000 (0)\n-3028 Disk Start            0000 (0)\n-302A Int File Attributes   0000 (0)\n+3025 Compression Method    0000 (0) 'Stored'\n+3027 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+302B CRC                   00000000 (0)\n+302F Compressed Size       00000000 (0)\n+3033 Uncompressed Size     00000000 (0)\n+3037 Filename Length       003A (58)\n+3039 Extra Length          0000 (0)\n+303B Comment Length        0000 (0)\n+303D Disk Start            0000 (0)\n+303F Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-302C Ext File Attributes   41ED0010 (1106051088)\n+3041 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-3030 Local Header Offset   000002AE (686)\n-3034 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3045 Local Header Offset   000002AE (686)\n+3049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3034: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3034: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3049: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x300C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3021: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-306E CENTRAL HEADER #14    02014B50 (33639248)\n-3072 Created Zip Spec      14 (20) '2.0'\n-3073 Created OS            03 (3) 'Unix'\n-3074 Extract Zip Spec      14 (20) '2.0'\n-3075 Extract OS            00 (0) 'MS-DOS'\n-3076 General Purpose Flag  0800 (2048)\n+3083 CENTRAL HEADER #14    02014B50 (33639248)\n+3087 Created Zip Spec      14 (20) '2.0'\n+3088 Created OS            03 (3) 'Unix'\n+3089 Extract Zip Spec      14 (20) '2.0'\n+308A Extract OS            00 (0) 'MS-DOS'\n+308B General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3078 Compression Method    0008 (8) 'Deflated'\n-307A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-307E CRC                   0216DF7C (35053436)\n-3082 Compressed Size       000003FF (1023)\n-3086 Uncompressed Size     00000E6F (3695)\n-308A Filename Length       0015 (21)\n-308C Extra Length          0000 (0)\n-308E Comment Length        0000 (0)\n-3090 Disk Start            0000 (0)\n-3092 Int File Attributes   0000 (0)\n+308D Compression Method    0008 (8) 'Deflated'\n+308F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3093 CRC                   0216DF7C (35053436)\n+3097 Compressed Size       000003FF (1023)\n+309B Uncompressed Size     00000E6F (3695)\n+309F Filename Length       0015 (21)\n+30A1 Extra Length          0000 (0)\n+30A3 Comment Length        0000 (0)\n+30A5 Disk Start            0000 (0)\n+30A7 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3094 Ext File Attributes   81A40000 (2175008768)\n+30A9 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-3098 Local Header Offset   00000306 (774)\n-309C Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+30AD Local Header Offset   00000306 (774)\n+30B1 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x309C: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x30B1: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-30B1 CENTRAL HEADER #15    02014B50 (33639248)\n-30B5 Created Zip Spec      14 (20) '2.0'\n-30B6 Created OS            03 (3) 'Unix'\n-30B7 Extract Zip Spec      14 (20) '2.0'\n-30B8 Extract OS            00 (0) 'MS-DOS'\n-30B9 General Purpose Flag  0800 (2048)\n+30C6 CENTRAL HEADER #15    02014B50 (33639248)\n+30CA Created Zip Spec      14 (20) '2.0'\n+30CB Created OS            03 (3) 'Unix'\n+30CC Extract Zip Spec      14 (20) '2.0'\n+30CD Extract OS            00 (0) 'MS-DOS'\n+30CE General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-30BB Compression Method    0008 (8) 'Deflated'\n-30BD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-30C1 CRC                   86E2B4B4 (2263004340)\n-30C5 Compressed Size       00000F6D (3949)\n-30C9 Uncompressed Size     00002C5E (11358)\n-30CD Filename Length       0010 (16)\n-30CF Extra Length          0000 (0)\n-30D1 Comment Length        0000 (0)\n-30D3 Disk Start            0000 (0)\n-30D5 Int File Attributes   0000 (0)\n+30D0 Compression Method    0008 (8) 'Deflated'\n+30D2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+30D6 CRC                   86E2B4B4 (2263004340)\n+30DA Compressed Size       00000F6D (3949)\n+30DE Uncompressed Size     00002C5E (11358)\n+30E2 Filename Length       0010 (16)\n+30E4 Extra Length          0000 (0)\n+30E6 Comment Length        0000 (0)\n+30E8 Disk Start            0000 (0)\n+30EA Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-30D7 Ext File Attributes   81A40000 (2175008768)\n+30EC Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-30DB Local Header Offset   00000738 (1848)\n-30DF Filename              'XXXXXXXXXXXXXXXX'\n+30F0 Local Header Offset   00000738 (1848)\n+30F4 Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x30DF: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x30F4: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-30EF CENTRAL HEADER #16    02014B50 (33639248)\n-30F3 Created Zip Spec      14 (20) '2.0'\n-30F4 Created OS            03 (3) 'Unix'\n-30F5 Extract Zip Spec      14 (20) '2.0'\n-30F6 Extract OS            00 (0) 'MS-DOS'\n-30F7 General Purpose Flag  0800 (2048)\n+3104 CENTRAL HEADER #16    02014B50 (33639248)\n+3108 Created Zip Spec      14 (20) '2.0'\n+3109 Created OS            03 (3) 'Unix'\n+310A Extract Zip Spec      14 (20) '2.0'\n+310B Extract OS            00 (0) 'MS-DOS'\n+310C General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-30F9 Compression Method    0008 (8) 'Deflated'\n-30FB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-30FF CRC                   9EE6EE5C (2665934428)\n-3103 Compressed Size       00000084 (132)\n-3107 Uncompressed Size     000000B6 (182)\n-310B Filename Length       000F (15)\n-310D Extra Length          0000 (0)\n-310F Comment Length        0000 (0)\n-3111 Disk Start            0000 (0)\n-3113 Int File Attributes   0000 (0)\n+310E Compression Method    0008 (8) 'Deflated'\n+3110 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3114 CRC                   9EE6EE5C (2665934428)\n+3118 Compressed Size       00000084 (132)\n+311C Uncompressed Size     000000B6 (182)\n+3120 Filename Length       000F (15)\n+3122 Extra Length          0000 (0)\n+3124 Comment Length        0000 (0)\n+3126 Disk Start            0000 (0)\n+3128 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3115 Ext File Attributes   81A40000 (2175008768)\n+312A Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-3119 Local Header Offset   000016D3 (5843)\n-311D Filename              'XXXXXXXXXXXXXXX'\n+312E Local Header Offset   000016D3 (5843)\n+3132 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x311D: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3132: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-312C CENTRAL HEADER #17    02014B50 (33639248)\n-3130 Created Zip Spec      14 (20) '2.0'\n-3131 Created OS            03 (3) 'Unix'\n-3132 Extract Zip Spec      14 (20) '2.0'\n-3133 Extract OS            00 (0) 'MS-DOS'\n-3134 General Purpose Flag  0800 (2048)\n+3141 CENTRAL HEADER #17    02014B50 (33639248)\n+3145 Created Zip Spec      14 (20) '2.0'\n+3146 Created OS            03 (3) 'Unix'\n+3147 Extract Zip Spec      14 (20) '2.0'\n+3148 Extract OS            00 (0) 'MS-DOS'\n+3149 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3136 Compression Method    0008 (8) 'Deflated'\n-3138 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-313C CRC                   52ECC716 (1391249174)\n-3140 Compressed Size       00000C7C (3196)\n-3144 Uncompressed Size     00002E2A (11818)\n-3148 Filename Length       004C (76)\n-314A Extra Length          0000 (0)\n-314C Comment Length        0000 (0)\n-314E Disk Start            0000 (0)\n-3150 Int File Attributes   0000 (0)\n+314B Compression Method    0008 (8) 'Deflated'\n+314D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3151 CRC                   86E4A798 (2263132056)\n+3155 Compressed Size       00000C90 (3216)\n+3159 Uncompressed Size     00002F2C (12076)\n+315D Filename Length       004C (76)\n+315F Extra Length          0000 (0)\n+3161 Comment Length        0000 (0)\n+3163 Disk Start            0000 (0)\n+3165 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3152 Ext File Attributes   81A40000 (2175008768)\n+3167 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-3156 Local Header Offset   00001784 (6020)\n-315A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+316B Local Header Offset   00001784 (6020)\n+316F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x315A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x316F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-31A6 CENTRAL HEADER #18    02014B50 (33639248)\n-31AA Created Zip Spec      14 (20) '2.0'\n-31AB Created OS            03 (3) 'Unix'\n-31AC Extract Zip Spec      14 (20) '2.0'\n-31AD Extract OS            00 (0) 'MS-DOS'\n-31AE General Purpose Flag  0800 (2048)\n+31BB CENTRAL HEADER #18    02014B50 (33639248)\n+31BF Created Zip Spec      14 (20) '2.0'\n+31C0 Created OS            03 (3) 'Unix'\n+31C1 Extract Zip Spec      14 (20) '2.0'\n+31C2 Extract OS            00 (0) 'MS-DOS'\n+31C3 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-31B0 Compression Method    0008 (8) 'Deflated'\n-31B2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-31B6 CRC                   BB1FB1EA (3139416554)\n-31BA Compressed Size       0000026E (622)\n-31BE Uncompressed Size     0000051A (1306)\n-31C2 Filename Length       0053 (83)\n-31C4 Extra Length          0000 (0)\n-31C6 Comment Length        0000 (0)\n-31C8 Disk Start            0000 (0)\n-31CA Int File Attributes   0000 (0)\n+31C5 Compression Method    0008 (8) 'Deflated'\n+31C7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+31CB CRC                   4296B4B4 (1117172916)\n+31CF Compressed Size       00000276 (630)\n+31D3 Uncompressed Size     00000539 (1337)\n+31D7 Filename Length       0053 (83)\n+31D9 Extra Length          0000 (0)\n+31DB Comment Length        0000 (0)\n+31DD Disk Start            0000 (0)\n+31DF Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-31CC Ext File Attributes   81A40000 (2175008768)\n+31E1 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-31D0 Local Header Offset   0000246A (9322)\n-31D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+31E5 Local Header Offset   0000247E (9342)\n+31E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x31D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x31E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3227 CENTRAL HEADER #19    02014B50 (33639248)\n-322B Created Zip Spec      14 (20) '2.0'\n-322C Created OS            03 (3) 'Unix'\n-322D Extract Zip Spec      14 (20) '2.0'\n-322E Extract OS            00 (0) 'MS-DOS'\n-322F General Purpose Flag  0800 (2048)\n+323C CENTRAL HEADER #19    02014B50 (33639248)\n+3240 Created Zip Spec      14 (20) '2.0'\n+3241 Created OS            03 (3) 'Unix'\n+3242 Extract Zip Spec      14 (20) '2.0'\n+3243 Extract OS            00 (0) 'MS-DOS'\n+3244 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3231 Compression Method    0008 (8) 'Deflated'\n-3233 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3237 CRC                   C46B2C4D (3295358029)\n-323B Compressed Size       00000049 (73)\n-323F Uncompressed Size     00000055 (85)\n-3243 Filename Length       005F (95)\n-3245 Extra Length          0000 (0)\n-3247 Comment Length        0000 (0)\n-3249 Disk Start            0000 (0)\n-324B Int File Attributes   0000 (0)\n+3246 Compression Method    0008 (8) 'Deflated'\n+3248 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+324C CRC                   C46B2C4D (3295358029)\n+3250 Compressed Size       00000049 (73)\n+3254 Uncompressed Size     00000055 (85)\n+3258 Filename Length       005F (95)\n+325A Extra Length          0000 (0)\n+325C Comment Length        0000 (0)\n+325E Disk Start            0000 (0)\n+3260 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-324D Ext File Attributes   81A40000 (2175008768)\n+3262 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-3251 Local Header Offset   00002749 (10057)\n-3255 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3266 Local Header Offset   00002765 (10085)\n+326A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3255: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x326A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-32B4 CENTRAL HEADER #20    02014B50 (33639248)\n-32B8 Created Zip Spec      14 (20) '2.0'\n-32B9 Created OS            03 (3) 'Unix'\n-32BA Extract Zip Spec      14 (20) '2.0'\n-32BB Extract OS            00 (0) 'MS-DOS'\n-32BC General Purpose Flag  0800 (2048)\n+32C9 CENTRAL HEADER #20    02014B50 (33639248)\n+32CD Created Zip Spec      14 (20) '2.0'\n+32CE Created OS            03 (3) 'Unix'\n+32CF Extract Zip Spec      14 (20) '2.0'\n+32D0 Extract OS            00 (0) 'MS-DOS'\n+32D1 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-32BE Compression Method    0008 (8) 'Deflated'\n-32C0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-32C4 CRC                   7376C130 (1937162544)\n-32C8 Compressed Size       000003BA (954)\n-32CC Uncompressed Size     0000097C (2428)\n-32D0 Filename Length       0041 (65)\n-32D2 Extra Length          0000 (0)\n-32D4 Comment Length        0000 (0)\n-32D6 Disk Start            0000 (0)\n-32D8 Int File Attributes   0000 (0)\n+32D3 Compression Method    0008 (8) 'Deflated'\n+32D5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+32D9 CRC                   91AC24FF (2443977983)\n+32DD Compressed Size       000003B3 (947)\n+32E1 Uncompressed Size     00000941 (2369)\n+32E5 Filename Length       0041 (65)\n+32E7 Extra Length          0000 (0)\n+32E9 Comment Length        0000 (0)\n+32EB Disk Start            0000 (0)\n+32ED Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-32DA Ext File Attributes   81A40000 (2175008768)\n+32EF Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-32DE Local Header Offset   0000280F (10255)\n-32E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+32F3 Local Header Offset   0000282B (10283)\n+32F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x32E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x32F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3323 CENTRAL HEADER #21    02014B50 (33639248)\n-3327 Created Zip Spec      14 (20) '2.0'\n-3328 Created OS            03 (3) 'Unix'\n-3329 Extract Zip Spec      14 (20) '2.0'\n-332A Extract OS            00 (0) 'MS-DOS'\n-332B General Purpose Flag  0800 (2048)\n+3338 CENTRAL HEADER #21    02014B50 (33639248)\n+333C Created Zip Spec      14 (20) '2.0'\n+333D Created OS            03 (3) 'Unix'\n+333E Extract Zip Spec      14 (20) '2.0'\n+333F Extract OS            00 (0) 'MS-DOS'\n+3340 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-332D Compression Method    0008 (8) 'Deflated'\n-332F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3333 CRC                   B107068C (2970027660)\n-3337 Compressed Size       0000004C (76)\n-333B Uncompressed Size     00000050 (80)\n-333F Filename Length       0048 (72)\n-3341 Extra Length          0000 (0)\n-3343 Comment Length        0000 (0)\n-3345 Disk Start            0000 (0)\n-3347 Int File Attributes   0000 (0)\n+3342 Compression Method    0008 (8) 'Deflated'\n+3344 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3348 CRC                   B107068C (2970027660)\n+334C Compressed Size       0000004C (76)\n+3350 Uncompressed Size     00000050 (80)\n+3354 Filename Length       0048 (72)\n+3356 Extra Length          0000 (0)\n+3358 Comment Length        0000 (0)\n+335A Disk Start            0000 (0)\n+335C Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3349 Ext File Attributes   81A40000 (2175008768)\n+335E Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-334D Local Header Offset   00002C28 (11304)\n-3351 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3362 Local Header Offset   00002C3D (11325)\n+3366 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3351: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3366: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3399 END CENTRAL HEADER    06054B50 (101010256)\n-339D Number of this disk   0000 (0)\n-339F Central Dir Disk no   0000 (0)\n-33A1 Entries in this disk  0015 (21)\n-33A3 Total Entries         0015 (21)\n-33A5 Size of Central Dir   000006BF (1727)\n-33A9 Offset to Central Dir 00002CDA (11482)\n-33AD Comment Length        0000 (0)\n+33AE END CENTRAL HEADER    06054B50 (101010256)\n+33B2 Number of this disk   0000 (0)\n+33B4 Central Dir Disk no   0000 (0)\n+33B6 Entries in this disk  0015 (21)\n+33B8 Total Entries         0015 (21)\n+33BA Size of Central Dir   000006BF (1727)\n+33BE Offset to Central Dir 00002CEF (11503)\n+33C2 Comment Length        0000 (0)\n #\n # Error Count: 12\n # Warning Count: 54\n #\n # Done\n"}, {"source1": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,258 +1,258 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.apollo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.ctrip.framework.apollo.Config;\n-import com.ctrip.framework.apollo.ConfigChangeListener;\n-import com.ctrip.framework.apollo.ConfigFile;\n-import com.ctrip.framework.apollo.ConfigService;\n-import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;\n-import com.ctrip.framework.apollo.enums.ConfigSourceType;\n-import com.ctrip.framework.apollo.enums.PropertyChangeType;\n-import com.ctrip.framework.apollo.model.ConfigChange;\n-\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.CopyOnWriteArraySet;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-\n-/**\n- * Apollo implementation, https://github.com/ctripcorp/apollo\n- *\n- * Apollo will be used for management of both governance rules and .properties files, by default, these two different\n- * kinds of data share the same namespace 'dubbo'. To gain better performance, we recommend separate them by giving\n- * namespace and group different values, for example:\n- *\n- * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\n- * 'group=dubbo' is for properties files.\n- *\n- * Please see http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html for details.\n- */\n-public class ApolloDynamicConfiguration implements DynamicConfiguration {\n-    private static final Logger logger = LoggerFactory.getLogger(ApolloDynamicConfiguration.class);\n-    private static final String APOLLO_ENV_KEY = \"env\";\n-    private static final String APOLLO_ADDR_KEY = \"apollo.meta\";\n-    private static final String APOLLO_CLUSTER_KEY = \"apollo.cluster\";\n-    private static final String APOLLO_PROTOCOL_PREFIX = \"http://\";\n-    private static final String APOLLO_APPLICATION_KEY = \"application\";\n-    private static final String APOLLO_APPID_KEY = \"app.id\";\n-\n-    private URL url;\n-    private Config dubboConfig;\n-    private ConfigFile dubboConfigFile;\n-    private ConcurrentMap<String, ApolloListener> listeners = new ConcurrentHashMap<>();\n-\n-    ApolloDynamicConfiguration(URL url) {\n-        this.url = url;\n-        // Instead of using Dubbo's configuration, I would suggest use the original configuration method Apollo provides.\n-        String configEnv = url.getParameter(APOLLO_ENV_KEY);\n-        String configAddr = getAddressWithProtocolPrefix(url);\n-        String configCluster = url.getParameter(CLUSTER_KEY);\n-        String configAppId = url.getParameter(APOLLO_APPID_KEY);\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_ENV_KEY)) && configEnv != null) {\n-            System.setProperty(APOLLO_ENV_KEY, configEnv);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_ADDR_KEY)) && !ANYHOST_VALUE.equals(url.getHost())) {\n-            System.setProperty(APOLLO_ADDR_KEY, configAddr);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_CLUSTER_KEY)) && configCluster != null) {\n-            System.setProperty(APOLLO_CLUSTER_KEY, configCluster);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_APPID_KEY)) && configAppId != null) {\n-            System.setProperty(APOLLO_APPID_KEY, configAppId);\n-        }\n-\n-        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\n-        String apolloNamespace = StringUtils.isEmpty(namespace) ? url.getParameter(GROUP_KEY, DEFAULT_GROUP) : namespace;\n-        dubboConfig = ConfigService.getConfig(apolloNamespace);\n-        dubboConfigFile = ConfigService.getConfigFile(apolloNamespace, ConfigFileFormat.Properties);\n-\n-        // Decide to fail or to continue when failed to connect to remote server.\n-        boolean check = url.getParameter(CHECK_KEY, true);\n-        if (dubboConfig.getSourceType() != ConfigSourceType.REMOTE) {\n-            if (check) {\n-                throw new IllegalStateException(\"Failed to connect to config center, the config center is Apollo, \" +\n-                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv));\n-            } else {\n-                logger.warn(\"Failed to connect to config center, the config center is Apollo, \" +\n-                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +\n-                        \", will use the local cache value instead before eventually the connection is established.\");\n-            }\n-        }\n-    }\n-\n-    private String getAddressWithProtocolPrefix(URL url) {\n-        String address = url.getBackupAddress();\n-        if (StringUtils.isNotEmpty(address)) {\n-            address = Arrays.stream(COMMA_SPLIT_PATTERN.split(address))\n-                    .map(addr -> {\n-                        if (addr.startsWith(APOLLO_PROTOCOL_PREFIX)) {\n-                            return addr;\n-                        }\n-                        return APOLLO_PROTOCOL_PREFIX + addr;\n-                    })\n-                    .collect(Collectors.joining(\",\"));\n-        }\n-        return address;\n-    }\n-\n-    /**\n-     * Since all governance rules will lay under dubbo group, this method now always uses the default dubboConfig and\n-     * ignores the group parameter.\n-     */\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        ApolloListener apolloListener = listeners.computeIfAbsent(group + key, k -> createTargetListener(key, group));\n-        apolloListener.addListener(listener);\n-        dubboConfig.addChangeListener(apolloListener, Collections.singleton(key));\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        ApolloListener apolloListener = listeners.get(group + key);\n-        if (apolloListener != null) {\n-            apolloListener.removeListener(listener);\n-            if (!apolloListener.hasInternalListener()) {\n-                dubboConfig.removeChangeListener(apolloListener);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        if (StringUtils.isNotEmpty(group)) {\n-            if (group.equals(url.getParameter(APPLICATION_KEY))) {\n-                return ConfigService.getAppConfig().getProperty(key, null);\n-            } else {\n-                return ConfigService.getConfig(group).getProperty(key, null);\n-            }\n-        }\n-        return dubboConfig.getProperty(key, null);\n-    }\n-\n-    /**\n-     * Recommend specify namespace and group when using Apollo.\n-     * <p>\n-     * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\n-     * 'group=dubbo' is for properties files.\n-     *\n-     * @param key     default value is 'dubbo.properties', currently useless for Apollo.\n-     * @param group\n-     * @param timeout\n-     * @return\n-     * @throws IllegalStateException\n-     */\n-    @Override\n-    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\n-        if (StringUtils.isEmpty(group)) {\n-            return dubboConfigFile.getContent();\n-        }\n-        if (group.equals(url.getParameter(APPLICATION_KEY))) {\n-            return ConfigService.getConfigFile(APOLLO_APPLICATION_KEY, ConfigFileFormat.Properties).getContent();\n-        }\n-\n-        ConfigFile configFile = ConfigService.getConfigFile(group, ConfigFileFormat.Properties);\n-        if (configFile == null) {\n-            throw new IllegalStateException(\"There is no namespace named \" + group + \" in Apollo.\");\n-        }\n-        return configFile.getContent();\n-    }\n-\n-    /**\n-     * This method will be used by Configuration to get valid value at runtime.\n-     * The group is expected to be 'app level', which can be fetched from the 'config.appnamespace' in url if necessary.\n-     * But I think Apollo's inheritance feature of namespace can solve the problem .\n-     */\n-    @Override\n-    public String getInternalProperty(String key) {\n-        return dubboConfig.getProperty(key, null);\n-    }\n-\n-    /**\n-     * Ignores the group parameter.\n-     *\n-     * @param key   property key the native listener will listen on\n-     * @param group to distinguish different set of properties\n-     * @return\n-     */\n-    private ApolloListener createTargetListener(String key, String group) {\n-        return new ApolloListener();\n-    }\n-\n-    public class ApolloListener implements ConfigChangeListener {\n-\n-        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\n-\n-        ApolloListener() {\n-        }\n-\n-        @Override\n-        public void onChange(com.ctrip.framework.apollo.model.ConfigChangeEvent changeEvent) {\n-            for (String key : changeEvent.changedKeys()) {\n-                ConfigChange change = changeEvent.getChange(key);\n-                if (\"\".equals(change.getNewValue())) {\n-                    logger.warn(\"an empty rule is received for \" + key + \", the current working rule is \" +\n-                            change.getOldValue() + \", the empty rule will not take effect.\");\n-                    return;\n-                }\n-\n-                ConfigChangedEvent event = new ConfigChangedEvent(key, change.getNamespace(), change.getNewValue(), getChangeType(change));\n-                listeners.forEach(listener -> listener.process(event));\n-            }\n-        }\n-\n-        private ConfigChangeType getChangeType(ConfigChange change) {\n-            if (change.getChangeType() == PropertyChangeType.DELETED) {\n-                return ConfigChangeType.DELETED;\n-            }\n-            return ConfigChangeType.MODIFIED;\n-        }\n-\n-        void addListener(ConfigurationListener configurationListener) {\n-            this.listeners.add(configurationListener);\n-        }\n-\n-        void removeListener(ConfigurationListener configurationListener) {\n-            this.listeners.remove(configurationListener);\n-        }\n-\n-        boolean hasInternalListener() {\n-            return listeners != null && listeners.size() > 0;\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.apollo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.ctrip.framework.apollo.Config;\r\n+import com.ctrip.framework.apollo.ConfigChangeListener;\r\n+import com.ctrip.framework.apollo.ConfigFile;\r\n+import com.ctrip.framework.apollo.ConfigService;\r\n+import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;\r\n+import com.ctrip.framework.apollo.enums.ConfigSourceType;\r\n+import com.ctrip.framework.apollo.enums.PropertyChangeType;\r\n+import com.ctrip.framework.apollo.model.ConfigChange;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.CopyOnWriteArraySet;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+\r\n+/**\r\n+ * Apollo implementation, https://github.com/ctripcorp/apollo\r\n+ *\r\n+ * Apollo will be used for management of both governance rules and .properties files, by default, these two different\r\n+ * kinds of data share the same namespace 'dubbo'. To gain better performance, we recommend separate them by giving\r\n+ * namespace and group different values, for example:\r\n+ *\r\n+ * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\r\n+ * 'group=dubbo' is for properties files.\r\n+ *\r\n+ * Please see http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html for details.\r\n+ */\r\n+public class ApolloDynamicConfiguration implements DynamicConfiguration {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ApolloDynamicConfiguration.class);\r\n+    private static final String APOLLO_ENV_KEY = \"env\";\r\n+    private static final String APOLLO_ADDR_KEY = \"apollo.meta\";\r\n+    private static final String APOLLO_CLUSTER_KEY = \"apollo.cluster\";\r\n+    private static final String APOLLO_PROTOCOL_PREFIX = \"http://\";\r\n+    private static final String APOLLO_APPLICATION_KEY = \"application\";\r\n+    private static final String APOLLO_APPID_KEY = \"app.id\";\r\n+\r\n+    private URL url;\r\n+    private Config dubboConfig;\r\n+    private ConfigFile dubboConfigFile;\r\n+    private ConcurrentMap<String, ApolloListener> listeners = new ConcurrentHashMap<>();\r\n+\r\n+    ApolloDynamicConfiguration(URL url) {\r\n+        this.url = url;\r\n+        // Instead of using Dubbo's configuration, I would suggest use the original configuration method Apollo provides.\r\n+        String configEnv = url.getParameter(APOLLO_ENV_KEY);\r\n+        String configAddr = getAddressWithProtocolPrefix(url);\r\n+        String configCluster = url.getParameter(CLUSTER_KEY);\r\n+        String configAppId = url.getParameter(APOLLO_APPID_KEY);\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_ENV_KEY)) && configEnv != null) {\r\n+            System.setProperty(APOLLO_ENV_KEY, configEnv);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_ADDR_KEY)) && !ANYHOST_VALUE.equals(url.getHost())) {\r\n+            System.setProperty(APOLLO_ADDR_KEY, configAddr);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_CLUSTER_KEY)) && configCluster != null) {\r\n+            System.setProperty(APOLLO_CLUSTER_KEY, configCluster);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_APPID_KEY)) && configAppId != null) {\r\n+            System.setProperty(APOLLO_APPID_KEY, configAppId);\r\n+        }\r\n+\r\n+        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\r\n+        String apolloNamespace = StringUtils.isEmpty(namespace) ? url.getParameter(GROUP_KEY, DEFAULT_GROUP) : namespace;\r\n+        dubboConfig = ConfigService.getConfig(apolloNamespace);\r\n+        dubboConfigFile = ConfigService.getConfigFile(apolloNamespace, ConfigFileFormat.Properties);\r\n+\r\n+        // Decide to fail or to continue when failed to connect to remote server.\r\n+        boolean check = url.getParameter(CHECK_KEY, true);\r\n+        if (dubboConfig.getSourceType() != ConfigSourceType.REMOTE) {\r\n+            if (check) {\r\n+                throw new IllegalStateException(\"Failed to connect to config center, the config center is Apollo, \" +\r\n+                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv));\r\n+            } else {\r\n+                logger.warn(\"Failed to connect to config center, the config center is Apollo, \" +\r\n+                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +\r\n+                        \", will use the local cache value instead before eventually the connection is established.\");\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private String getAddressWithProtocolPrefix(URL url) {\r\n+        String address = url.getBackupAddress();\r\n+        if (StringUtils.isNotEmpty(address)) {\r\n+            address = Arrays.stream(COMMA_SPLIT_PATTERN.split(address))\r\n+                    .map(addr -> {\r\n+                        if (addr.startsWith(APOLLO_PROTOCOL_PREFIX)) {\r\n+                            return addr;\r\n+                        }\r\n+                        return APOLLO_PROTOCOL_PREFIX + addr;\r\n+                    })\r\n+                    .collect(Collectors.joining(\",\"));\r\n+        }\r\n+        return address;\r\n+    }\r\n+\r\n+    /**\r\n+     * Since all governance rules will lay under dubbo group, this method now always uses the default dubboConfig and\r\n+     * ignores the group parameter.\r\n+     */\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        ApolloListener apolloListener = listeners.computeIfAbsent(group + key, k -> createTargetListener(key, group));\r\n+        apolloListener.addListener(listener);\r\n+        dubboConfig.addChangeListener(apolloListener, Collections.singleton(key));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        ApolloListener apolloListener = listeners.get(group + key);\r\n+        if (apolloListener != null) {\r\n+            apolloListener.removeListener(listener);\r\n+            if (!apolloListener.hasInternalListener()) {\r\n+                dubboConfig.removeChangeListener(apolloListener);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        if (StringUtils.isNotEmpty(group)) {\r\n+            if (group.equals(url.getParameter(APPLICATION_KEY))) {\r\n+                return ConfigService.getAppConfig().getProperty(key, null);\r\n+            } else {\r\n+                return ConfigService.getConfig(group).getProperty(key, null);\r\n+            }\r\n+        }\r\n+        return dubboConfig.getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Recommend specify namespace and group when using Apollo.\r\n+     * <p>\r\n+     * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\r\n+     * 'group=dubbo' is for properties files.\r\n+     *\r\n+     * @param key     default value is 'dubbo.properties', currently useless for Apollo.\r\n+     * @param group\r\n+     * @param timeout\r\n+     * @return\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    @Override\r\n+    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\r\n+        if (StringUtils.isEmpty(group)) {\r\n+            return dubboConfigFile.getContent();\r\n+        }\r\n+        if (group.equals(url.getParameter(APPLICATION_KEY))) {\r\n+            return ConfigService.getConfigFile(APOLLO_APPLICATION_KEY, ConfigFileFormat.Properties).getContent();\r\n+        }\r\n+\r\n+        ConfigFile configFile = ConfigService.getConfigFile(group, ConfigFileFormat.Properties);\r\n+        if (configFile == null) {\r\n+            throw new IllegalStateException(\"There is no namespace named \" + group + \" in Apollo.\");\r\n+        }\r\n+        return configFile.getContent();\r\n+    }\r\n+\r\n+    /**\r\n+     * This method will be used by Configuration to get valid value at runtime.\r\n+     * The group is expected to be 'app level', which can be fetched from the 'config.appnamespace' in url if necessary.\r\n+     * But I think Apollo's inheritance feature of namespace can solve the problem .\r\n+     */\r\n+    @Override\r\n+    public String getInternalProperty(String key) {\r\n+        return dubboConfig.getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Ignores the group parameter.\r\n+     *\r\n+     * @param key   property key the native listener will listen on\r\n+     * @param group to distinguish different set of properties\r\n+     * @return\r\n+     */\r\n+    private ApolloListener createTargetListener(String key, String group) {\r\n+        return new ApolloListener();\r\n+    }\r\n+\r\n+    public class ApolloListener implements ConfigChangeListener {\r\n+\r\n+        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\r\n+\r\n+        ApolloListener() {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onChange(com.ctrip.framework.apollo.model.ConfigChangeEvent changeEvent) {\r\n+            for (String key : changeEvent.changedKeys()) {\r\n+                ConfigChange change = changeEvent.getChange(key);\r\n+                if (\"\".equals(change.getNewValue())) {\r\n+                    logger.warn(\"an empty rule is received for \" + key + \", the current working rule is \" +\r\n+                            change.getOldValue() + \", the empty rule will not take effect.\");\r\n+                    return;\r\n+                }\r\n+\r\n+                ConfigChangedEvent event = new ConfigChangedEvent(key, change.getNamespace(), change.getNewValue(), getChangeType(change));\r\n+                listeners.forEach(listener -> listener.process(event));\r\n+            }\r\n+        }\r\n+\r\n+        private ConfigChangeType getChangeType(ConfigChange change) {\r\n+            if (change.getChangeType() == PropertyChangeType.DELETED) {\r\n+                return ConfigChangeType.DELETED;\r\n+            }\r\n+            return ConfigChangeType.MODIFIED;\r\n+        }\r\n+\r\n+        void addListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.add(configurationListener);\r\n+        }\r\n+\r\n+        void removeListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.remove(configurationListener);\r\n+        }\r\n+\r\n+        boolean hasInternalListener() {\r\n+            return listeners != null && listeners.size() > 0;\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,31 +1,31 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.apollo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- *\n- */\n-public class ApolloDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new ApolloDynamicConfiguration(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.apollo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ApolloDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new ApolloDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,152 +1,149 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 6669 6763 656e 7465 723c  bo-configcenter<\n-000004a0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000004b0: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-000004c0: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-000004d0: 2f70 6172 656e 743e 0d0a 2020 3c67 726f  /parent>..  <gro\n-000004e0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000004f0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n-00000510: 7562 626f 2d63 6f6e 6669 6763 656e 7465  ubbo-configcente\n-00000520: 722d 6170 6f6c 6c6f 3c2f 6172 7469 6661  r-apollo</artifa\n-00000530: 6374 4964 3e0d 0a20 203c 7665 7273 696f  ctId>..  <versio\n-00000540: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-00000550: 6e3e 0d0a 2020 3c6e 616d 653e 247b 7072  n>..  <name>${pr\n-00000560: 6f6a 6563 742e 6172 7469 6661 6374 4964  oject.artifactId\n-00000570: 7d3c 2f6e 616d 653e 0d0a 2020 3c64 6573  }</name>..  <des\n-00000580: 6372 6970 7469 6f6e 3e54 6865 2041 706f  cription>The Apo\n-00000590: 6c6c 6f20 696d 706c 656d 656e 7461 7469  llo implementati\n-000005a0: 6f6e 206f 6620 7468 6520 636f 6e66 6967  on of the config\n-000005b0: 6365 6e74 6572 2061 7069 3c2f 6465 7363  center api</desc\n-000005c0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005d0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005e0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005f0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-00000600: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000610: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000620: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000630: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000640: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000650: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000660: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000670: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000680: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000690: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-000006a0: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006b0: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006c0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006d0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006e0: 2020 3c61 706f 6c6c 6f5f 6d6f 636b 5f73    <apollo_mock_s\n-000006f0: 6572 7665 725f 7665 7273 696f 6e3e 312e  erver_version>1.\n-00000700: 312e 313c 2f61 706f 6c6c 6f5f 6d6f 636b  1.1</apollo_mock\n-00000710: 5f73 6572 7665 725f 7665 7273 696f 6e3e  _server_version>\n-00000720: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-00000730: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-00000740: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000750: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000760: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000770: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000780: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000790: 7449 643e 6475 6262 6f2d 636f 6d6d 6f6e  tId>dubbo-common\n-000007a0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000007b0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-000007c0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-000007d0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-000007e0: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007f0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000800: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000810: 726f 7570 4964 3e63 6f6d 2e63 7472 6970  roupId>com.ctrip\n-00000820: 2e66 7261 6d65 776f 726b 2e61 706f 6c6c  .framework.apoll\n-00000830: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000840: 2020 203c 6172 7469 6661 6374 4964 3e61     <artifactId>a\n-00000850: 706f 6c6c 6f2d 636c 6965 6e74 3c2f 6172  pollo-client</ar\n-00000860: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000870: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000880: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000890: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-000008a0: 6f6d 2e63 7472 6970 2e66 7261 6d65 776f  om.ctrip.framewo\n-000008b0: 726b 2e61 706f 6c6c 6f3c 2f67 726f 7570  rk.apollo</group\n-000008c0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000008d0: 6661 6374 4964 3e61 706f 6c6c 6f2d 6d6f  factId>apollo-mo\n-000008e0: 636b 7365 7276 6572 3c2f 6172 7469 6661  ckserver</artifa\n-000008f0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000900: 7273 696f 6e3e 247b 6170 6f6c 6c6f 5f6d  rsion>${apollo_m\n-00000910: 6f63 6b5f 7365 7276 6572 5f76 6572 7369  ock_server_versi\n-00000920: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000930: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000940: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000950: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-00000960: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-00000970: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 6669 6763 656e 7465 723c 2f61 7274 6966  figcenter</artif\n+00000490: 6163 7449 643e 0a20 2020 203c 7665 7273  actId>.    <vers\n+000004a0: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+000004b0: 696f 6e3e 0a20 203c 2f70 6172 656e 743e  ion>.  </parent>\n+000004c0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n+000004d0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000004e0: 6f75 7049 643e 0a20 203c 6172 7469 6661  oupId>.  <artifa\n+000004f0: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+00000500: 6763 656e 7465 722d 6170 6f6c 6c6f 3c2f  gcenter-apollo</\n+00000510: 6172 7469 6661 6374 4964 3e0a 2020 3c76  artifactId>.  <v\n+00000520: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n+00000530: 6572 7369 6f6e 3e0a 2020 3c6e 616d 653e  ersion>.  <name>\n+00000540: 247b 7072 6f6a 6563 742e 6172 7469 6661  ${project.artifa\n+00000550: 6374 4964 7d3c 2f6e 616d 653e 0a20 203c  ctId}</name>.  <\n+00000560: 6465 7363 7269 7074 696f 6e3e 5468 6520  description>The \n+00000570: 4170 6f6c 6c6f 2069 6d70 6c65 6d65 6e74  Apollo implement\n+00000580: 6174 696f 6e20 6f66 2074 6865 2063 6f6e  ation of the con\n+00000590: 6669 6763 656e 7465 7220 6170 693c 2f64  figcenter api</d\n+000005a0: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005b0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005c0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005d0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005e0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005f0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+00000600: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000610: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000620: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000630: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000640: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000650: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000660: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000670: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000680: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000690: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+000006a0: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+000006b0: 6570 6c6f 793e 0a20 2020 203c 6170 6f6c  eploy>.    <apol\n+000006c0: 6c6f 5f6d 6f63 6b5f 7365 7276 6572 5f76  lo_mock_server_v\n+000006d0: 6572 7369 6f6e 3e31 2e31 2e31 3c2f 6170  ersion>1.1.1</ap\n+000006e0: 6f6c 6c6f 5f6d 6f63 6b5f 7365 7276 6572  ollo_mock_server\n+000006f0: 5f76 6572 7369 6f6e 3e0a 2020 3c2f 7072  _version>.  </pr\n+00000700: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+00000710: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+00000720: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000730: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000740: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000750: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000760: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n+00000770: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n+00000780: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000790: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000007a0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000007b0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000007c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000007d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000007e0: 726f 7570 4964 3e63 6f6d 2e63 7472 6970  roupId>com.ctrip\n+000007f0: 2e66 7261 6d65 776f 726b 2e61 706f 6c6c  .framework.apoll\n+00000800: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000810: 2020 3c61 7274 6966 6163 7449 643e 6170    <artifactId>ap\n+00000820: 6f6c 6c6f 2d63 6c69 656e 743c 2f61 7274  ollo-client</art\n+00000830: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000840: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 2020 3c67 726f 7570 4964 3e63 6f6d 2e63    <groupId>com.c\n+00000870: 7472 6970 2e66 7261 6d65 776f 726b 2e61  trip.framework.a\n+00000880: 706f 6c6c 6f3c 2f67 726f 7570 4964 3e0a  pollo</groupId>.\n+00000890: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+000008a0: 643e 6170 6f6c 6c6f 2d6d 6f63 6b73 6572  d>apollo-mockser\n+000008b0: 7665 723c 2f61 7274 6966 6163 7449 643e  ver</artifactId>\n+000008c0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+000008d0: 247b 6170 6f6c 6c6f 5f6d 6f63 6b5f 7365  ${apollo_mock_se\n+000008e0: 7276 6572 5f76 6572 7369 6f6e 7d3c 2f76  rver_version}</v\n+000008f0: 6572 7369 6f6e 3e0a 2020 2020 2020 3c73  ersion>.      <s\n+00000900: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000910: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000920: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000930: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000940: 0a                                       .\n"}]}
