{"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: 14692 bytes, number of entries: 23\n+Zip file size: 14716 bytes, number of entries: 23\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/rpc/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/\n@@ -11,15 +11,15 @@\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-rpc-http/\n -rw-r--r--  2.0 unx     8002 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      171 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx     7560 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/HttpProtocol.java\n+-rw-r--r--  2.0 unx     7750 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/HttpProtocol.java\n -rw-r--r--  2.0 unx     1065 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/HttpProtocolErrorCode.java\n--rw-r--r--  2.0 unx     2283 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java\n--rw-r--r--  2.0 unx     2828 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java\n+-rw-r--r--  2.0 unx     2344 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java\n+-rw-r--r--  2.0 unx     2914 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java\n -rw-r--r--  2.0 unx       52 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol\n--rw-r--r--  2.0 unx     2504 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml\n+-rw-r--r--  2.0 unx     2440 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml\n -rw-r--r--  2.0 unx       69 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.properties\n-23 files, 35956 bytes uncompressed, 11450 bytes compressed:  68.2%\n+23 files, 36229 bytes uncompressed, 11474 bytes compressed:  68.3%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -299,879 +299,879 @@\n 18F3 Extract Zip Spec      14 (20) '2.0'\n 18F4 Extract OS            00 (0) 'MS-DOS'\n 18F5 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n 18F7 Compression Method    0008 (8) 'Deflated'\n 18F9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-18FD CRC                   67E99252 (1743360594)\n-1901 Compressed Size       000008DB (2267)\n-1905 Uncompressed Size     00001D88 (7560)\n+18FD CRC                   928E5A20 (2458802720)\n+1901 Compressed Size       000008EA (2282)\n+1905 Uncompressed Size     00001E46 (7750)\n 1909 Filename Length       0034 (52)\n 190B Extra Length          0000 (0)\n 190D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x190D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 1941 PAYLOAD\n \n-221C LOCAL HEADER #18      04034B50 (67324752)\n-2220 Extract Zip Spec      14 (20) '2.0'\n-2221 Extract OS            00 (0) 'MS-DOS'\n-2222 General Purpose Flag  0800 (2048)\n+222B LOCAL HEADER #18      04034B50 (67324752)\n+222F Extract Zip Spec      14 (20) '2.0'\n+2230 Extract OS            00 (0) 'MS-DOS'\n+2231 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2224 Compression Method    0008 (8) 'Deflated'\n-2226 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-222A CRC                   B3BC74DF (3015472351)\n-222E Compressed Size       00000242 (578)\n-2232 Uncompressed Size     00000429 (1065)\n-2236 Filename Length       003D (61)\n-2238 Extra Length          0000 (0)\n-223A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2233 Compression Method    0008 (8) 'Deflated'\n+2235 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2239 CRC                   B3BC74DF (3015472351)\n+223D Compressed Size       00000242 (578)\n+2241 Uncompressed Size     00000429 (1065)\n+2245 Filename Length       003D (61)\n+2247 Extra Length          0000 (0)\n+2249 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x223A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2249: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2277 PAYLOAD\n+2286 PAYLOAD\n \n-24B9 LOCAL HEADER #19      04034B50 (67324752)\n-24BD Extract Zip Spec      14 (20) '2.0'\n-24BE Extract OS            00 (0) 'MS-DOS'\n-24BF General Purpose Flag  0800 (2048)\n+24C8 LOCAL HEADER #19      04034B50 (67324752)\n+24CC Extract Zip Spec      14 (20) '2.0'\n+24CD Extract OS            00 (0) 'MS-DOS'\n+24CE General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-24C1 Compression Method    0008 (8) 'Deflated'\n-24C3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-24C7 CRC                   29478F2B (692555563)\n-24CB Compressed Size       000003E1 (993)\n-24CF Uncompressed Size     000008EB (2283)\n-24D3 Filename Length       003C (60)\n-24D5 Extra Length          0000 (0)\n-24D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24D0 Compression Method    0008 (8) 'Deflated'\n+24D2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+24D6 CRC                   F065E593 (4033209747)\n+24DA Compressed Size       000003EA (1002)\n+24DE Uncompressed Size     00000928 (2344)\n+24E2 Filename Length       003C (60)\n+24E4 Extra Length          0000 (0)\n+24E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x24E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2513 PAYLOAD\n+2522 PAYLOAD\n \n-28F4 LOCAL HEADER #20      04034B50 (67324752)\n-28F8 Extract Zip Spec      14 (20) '2.0'\n-28F9 Extract OS            00 (0) 'MS-DOS'\n-28FA General Purpose Flag  0800 (2048)\n+290C LOCAL HEADER #20      04034B50 (67324752)\n+2910 Extract Zip Spec      14 (20) '2.0'\n+2911 Extract OS            00 (0) 'MS-DOS'\n+2912 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-28FC Compression Method    0008 (8) 'Deflated'\n-28FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2902 CRC                   DBBDBD3B (3686645051)\n-2906 Compressed Size       000003D6 (982)\n-290A Uncompressed Size     00000B0C (2828)\n-290E Filename Length       003F (63)\n-2910 Extra Length          0000 (0)\n-2912 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2914 Compression Method    0008 (8) 'Deflated'\n+2916 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+291A CRC                   C56F8EA2 (3312422562)\n+291E Compressed Size       000003DE (990)\n+2922 Uncompressed Size     00000B62 (2914)\n+2926 Filename Length       003F (63)\n+2928 Extra Length          0000 (0)\n+292A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2912: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x292A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2951 PAYLOAD\n+2969 PAYLOAD\n \n-2D27 LOCAL HEADER #21      04034B50 (67324752)\n-2D2B Extract Zip Spec      14 (20) '2.0'\n-2D2C Extract OS            00 (0) 'MS-DOS'\n-2D2D General Purpose Flag  0800 (2048)\n+2D47 LOCAL HEADER #21      04034B50 (67324752)\n+2D4B Extract Zip Spec      14 (20) '2.0'\n+2D4C Extract OS            00 (0) 'MS-DOS'\n+2D4D General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2D2F Compression Method    0008 (8) 'Deflated'\n-2D31 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2D35 CRC                   18982A2D (412625453)\n-2D39 Compressed Size       0000002E (46)\n-2D3D Uncompressed Size     00000034 (52)\n-2D41 Filename Length       0035 (53)\n-2D43 Extra Length          0000 (0)\n-2D45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D4F Compression Method    0008 (8) 'Deflated'\n+2D51 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2D55 CRC                   18982A2D (412625453)\n+2D59 Compressed Size       0000002E (46)\n+2D5D Uncompressed Size     00000034 (52)\n+2D61 Filename Length       0035 (53)\n+2D63 Extra Length          0000 (0)\n+2D65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2D7A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+2D9A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-2DA8 LOCAL HEADER #22      04034B50 (67324752)\n-2DAC Extract Zip Spec      14 (20) '2.0'\n-2DAD Extract OS            00 (0) 'MS-DOS'\n-2DAE General Purpose Flag  0800 (2048)\n+2DC8 LOCAL HEADER #22      04034B50 (67324752)\n+2DCC Extract Zip Spec      14 (20) '2.0'\n+2DCD Extract OS            00 (0) 'MS-DOS'\n+2DCE General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2DB0 Compression Method    0008 (8) 'Deflated'\n-2DB2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2DB6 CRC                   0B401095 (188747925)\n-2DBA Compressed Size       000003B2 (946)\n-2DBE Uncompressed Size     000009C8 (2504)\n-2DC2 Filename Length       0036 (54)\n-2DC4 Extra Length          0000 (0)\n-2DC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2DD0 Compression Method    0008 (8) 'Deflated'\n+2DD2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2DD6 CRC                   03176EE3 (51867363)\n+2DDA Compressed Size       000003AA (938)\n+2DDE Uncompressed Size     00000988 (2440)\n+2DE2 Filename Length       0036 (54)\n+2DE4 Extra Length          0000 (0)\n+2DE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2DC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2DE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2DFC PAYLOAD\n+2E1C PAYLOAD\n \n-31AE LOCAL HEADER #23      04034B50 (67324752)\n-31B2 Extract Zip Spec      14 (20) '2.0'\n-31B3 Extract OS            00 (0) 'MS-DOS'\n-31B4 General Purpose Flag  0800 (2048)\n+31C6 LOCAL HEADER #23      04034B50 (67324752)\n+31CA Extract Zip Spec      14 (20) '2.0'\n+31CB Extract OS            00 (0) 'MS-DOS'\n+31CC General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-31B6 Compression Method    0008 (8) 'Deflated'\n-31B8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-31BC CRC                   8E20026A (2384462442)\n-31C0 Compressed Size       00000043 (67)\n-31C4 Uncompressed Size     00000045 (69)\n-31C8 Filename Length       003D (61)\n-31CA Extra Length          0000 (0)\n-31CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+31CE Compression Method    0008 (8) 'Deflated'\n+31D0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+31D4 CRC                   8E20026A (2384462442)\n+31D8 Compressed Size       00000043 (67)\n+31DC Uncompressed Size     00000045 (69)\n+31E0 Filename Length       003D (61)\n+31E2 Extra Length          0000 (0)\n+31E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x31CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x31E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-3209 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+3221 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-324C CENTRAL HEADER #1     02014B50 (33639248)\n-3250 Created Zip Spec      14 (20) '2.0'\n-3251 Created OS            03 (3) 'Unix'\n-3252 Extract Zip Spec      14 (20) '2.0'\n-3253 Extract OS            00 (0) 'MS-DOS'\n-3254 General Purpose Flag  0800 (2048)\n+3264 CENTRAL HEADER #1     02014B50 (33639248)\n+3268 Created Zip Spec      14 (20) '2.0'\n+3269 Created OS            03 (3) 'Unix'\n+326A Extract Zip Spec      14 (20) '2.0'\n+326B Extract OS            00 (0) 'MS-DOS'\n+326C General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3256 Compression Method    0008 (8) 'Deflated'\n-3258 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-325C CRC                   A689EB18 (2794056472)\n-3260 Compressed Size       00000042 (66)\n-3264 Uncompressed Size     00000040 (64)\n-3268 Filename Length       0014 (20)\n-326A Extra Length          0000 (0)\n-326C Comment Length        0000 (0)\n-326E Disk Start            0000 (0)\n-3270 Int File Attributes   0000 (0)\n+326E Compression Method    0008 (8) 'Deflated'\n+3270 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3274 CRC                   A689EB18 (2794056472)\n+3278 Compressed Size       00000042 (66)\n+327C Uncompressed Size     00000040 (64)\n+3280 Filename Length       0014 (20)\n+3282 Extra Length          0000 (0)\n+3284 Comment Length        0000 (0)\n+3286 Disk Start            0000 (0)\n+3288 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3272 Ext File Attributes   81A40000 (2175008768)\n+328A 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-3276 Local Header Offset   00000000 (0)\n-327A Filename              'XXXXXXXXXXXXXXXXXXXX'\n+328E Local Header Offset   00000000 (0)\n+3292 Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x327A: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3292: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-328E CENTRAL HEADER #2     02014B50 (33639248)\n-3292 Created Zip Spec      14 (20) '2.0'\n-3293 Created OS            03 (3) 'Unix'\n-3294 Extract Zip Spec      0A (10) '1.0'\n-3295 Extract OS            00 (0) 'MS-DOS'\n-3296 General Purpose Flag  0800 (2048)\n+32A6 CENTRAL HEADER #2     02014B50 (33639248)\n+32AA Created Zip Spec      14 (20) '2.0'\n+32AB Created OS            03 (3) 'Unix'\n+32AC Extract Zip Spec      0A (10) '1.0'\n+32AD Extract OS            00 (0) 'MS-DOS'\n+32AE General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3298 Compression Method    0000 (0) 'Stored'\n-329A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-329E CRC                   00000000 (0)\n-32A2 Compressed Size       00000000 (0)\n-32A6 Uncompressed Size     00000000 (0)\n-32AA Filename Length       0009 (9)\n-32AC Extra Length          0000 (0)\n-32AE Comment Length        0000 (0)\n-32B0 Disk Start            0000 (0)\n-32B2 Int File Attributes   0000 (0)\n+32B0 Compression Method    0000 (0) 'Stored'\n+32B2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+32B6 CRC                   00000000 (0)\n+32BA Compressed Size       00000000 (0)\n+32BE Uncompressed Size     00000000 (0)\n+32C2 Filename Length       0009 (9)\n+32C4 Extra Length          0000 (0)\n+32C6 Comment Length        0000 (0)\n+32C8 Disk Start            0000 (0)\n+32CA Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-32B4 Ext File Attributes   41ED0010 (1106051088)\n+32CC 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-32B8 Local Header Offset   00000074 (116)\n-32BC Filename              'XXXXXXXXX'\n+32D0 Local Header Offset   00000074 (116)\n+32D4 Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x32BC: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x32D4: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x32BC: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x32D4: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3294: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x32AC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-32C5 CENTRAL HEADER #3     02014B50 (33639248)\n-32C9 Created Zip Spec      14 (20) '2.0'\n-32CA Created OS            03 (3) 'Unix'\n-32CB Extract Zip Spec      0A (10) '1.0'\n-32CC Extract OS            00 (0) 'MS-DOS'\n-32CD General Purpose Flag  0800 (2048)\n+32DD CENTRAL HEADER #3     02014B50 (33639248)\n+32E1 Created Zip Spec      14 (20) '2.0'\n+32E2 Created OS            03 (3) 'Unix'\n+32E3 Extract Zip Spec      0A (10) '1.0'\n+32E4 Extract OS            00 (0) 'MS-DOS'\n+32E5 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-32CF Compression Method    0000 (0) 'Stored'\n-32D1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-32D5 CRC                   00000000 (0)\n-32D9 Compressed Size       00000000 (0)\n-32DD Uncompressed Size     00000000 (0)\n-32E1 Filename Length       0004 (4)\n-32E3 Extra Length          0000 (0)\n-32E5 Comment Length        0000 (0)\n-32E7 Disk Start            0000 (0)\n-32E9 Int File Attributes   0000 (0)\n+32E7 Compression Method    0000 (0) 'Stored'\n+32E9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+32ED CRC                   00000000 (0)\n+32F1 Compressed Size       00000000 (0)\n+32F5 Uncompressed Size     00000000 (0)\n+32F9 Filename Length       0004 (4)\n+32FB Extra Length          0000 (0)\n+32FD Comment Length        0000 (0)\n+32FF Disk Start            0000 (0)\n+3301 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-32EB Ext File Attributes   41ED0010 (1106051088)\n+3303 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-32EF Local Header Offset   0000009B (155)\n-32F3 Filename              'XXXX'\n+3307 Local Header Offset   0000009B (155)\n+330B Filename              'XXXX'\n #\n-# WARNING: Offset 0x32F3: Filename 'XXXX'\n+# WARNING: Offset 0x330B: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x32F3: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x330B: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x32CB: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x32E3: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-32F7 CENTRAL HEADER #4     02014B50 (33639248)\n-32FB Created Zip Spec      14 (20) '2.0'\n-32FC Created OS            03 (3) 'Unix'\n-32FD Extract Zip Spec      0A (10) '1.0'\n-32FE Extract OS            00 (0) 'MS-DOS'\n-32FF General Purpose Flag  0800 (2048)\n+330F CENTRAL HEADER #4     02014B50 (33639248)\n+3313 Created Zip Spec      14 (20) '2.0'\n+3314 Created OS            03 (3) 'Unix'\n+3315 Extract Zip Spec      0A (10) '1.0'\n+3316 Extract OS            00 (0) 'MS-DOS'\n+3317 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3301 Compression Method    0000 (0) 'Stored'\n-3303 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3307 CRC                   00000000 (0)\n-330B Compressed Size       00000000 (0)\n-330F Uncompressed Size     00000000 (0)\n-3313 Filename Length       000B (11)\n-3315 Extra Length          0000 (0)\n-3317 Comment Length        0000 (0)\n-3319 Disk Start            0000 (0)\n-331B Int File Attributes   0000 (0)\n+3319 Compression Method    0000 (0) 'Stored'\n+331B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+331F CRC                   00000000 (0)\n+3323 Compressed Size       00000000 (0)\n+3327 Uncompressed Size     00000000 (0)\n+332B Filename Length       000B (11)\n+332D Extra Length          0000 (0)\n+332F Comment Length        0000 (0)\n+3331 Disk Start            0000 (0)\n+3333 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-331D Ext File Attributes   41ED0010 (1106051088)\n+3335 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-3321 Local Header Offset   000000BD (189)\n-3325 Filename              'XXXXXXXXXXX'\n+3339 Local Header Offset   000000BD (189)\n+333D Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3325: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x333D: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3325: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x333D: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x32FD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x3315: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-3330 CENTRAL HEADER #5     02014B50 (33639248)\n-3334 Created Zip Spec      14 (20) '2.0'\n-3335 Created OS            03 (3) 'Unix'\n-3336 Extract Zip Spec      0A (10) '1.0'\n-3337 Extract OS            00 (0) 'MS-DOS'\n-3338 General Purpose Flag  0800 (2048)\n+3348 CENTRAL HEADER #5     02014B50 (33639248)\n+334C Created Zip Spec      14 (20) '2.0'\n+334D Created OS            03 (3) 'Unix'\n+334E Extract Zip Spec      0A (10) '1.0'\n+334F Extract OS            00 (0) 'MS-DOS'\n+3350 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-333A Compression Method    0000 (0) 'Stored'\n-333C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3340 CRC                   00000000 (0)\n-3344 Compressed Size       00000000 (0)\n-3348 Uncompressed Size     00000000 (0)\n-334C Filename Length       0011 (17)\n-334E Extra Length          0000 (0)\n-3350 Comment Length        0000 (0)\n-3352 Disk Start            0000 (0)\n-3354 Int File Attributes   0000 (0)\n+3352 Compression Method    0000 (0) 'Stored'\n+3354 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3358 CRC                   00000000 (0)\n+335C Compressed Size       00000000 (0)\n+3360 Uncompressed Size     00000000 (0)\n+3364 Filename Length       0011 (17)\n+3366 Extra Length          0000 (0)\n+3368 Comment Length        0000 (0)\n+336A Disk Start            0000 (0)\n+336C Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3356 Ext File Attributes   41ED0010 (1106051088)\n+336E 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-335A Local Header Offset   000000E6 (230)\n-335E Filename              'XXXXXXXXXXXXXXXXX'\n+3372 Local Header Offset   000000E6 (230)\n+3376 Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x335E: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3376: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x335E: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3376: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3336: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x334E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-336F CENTRAL HEADER #6     02014B50 (33639248)\n-3373 Created Zip Spec      14 (20) '2.0'\n-3374 Created OS            03 (3) 'Unix'\n-3375 Extract Zip Spec      0A (10) '1.0'\n-3376 Extract OS            00 (0) 'MS-DOS'\n-3377 General Purpose Flag  0800 (2048)\n+3387 CENTRAL HEADER #6     02014B50 (33639248)\n+338B Created Zip Spec      14 (20) '2.0'\n+338C Created OS            03 (3) 'Unix'\n+338D Extract Zip Spec      0A (10) '1.0'\n+338E Extract OS            00 (0) 'MS-DOS'\n+338F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3379 Compression Method    0000 (0) 'Stored'\n-337B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-337F CRC                   00000000 (0)\n-3383 Compressed Size       00000000 (0)\n-3387 Uncompressed Size     00000000 (0)\n-338B Filename Length       0015 (21)\n-338D Extra Length          0000 (0)\n-338F Comment Length        0000 (0)\n-3391 Disk Start            0000 (0)\n-3393 Int File Attributes   0000 (0)\n+3391 Compression Method    0000 (0) 'Stored'\n+3393 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3397 CRC                   00000000 (0)\n+339B Compressed Size       00000000 (0)\n+339F Uncompressed Size     00000000 (0)\n+33A3 Filename Length       0015 (21)\n+33A5 Extra Length          0000 (0)\n+33A7 Comment Length        0000 (0)\n+33A9 Disk Start            0000 (0)\n+33AB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3395 Ext File Attributes   41ED0010 (1106051088)\n+33AD 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-3399 Local Header Offset   00000115 (277)\n-339D Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+33B1 Local Header Offset   00000115 (277)\n+33B5 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x339D: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x33B5: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x339D: Directory 'XXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x33B5: Directory 'XXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3375: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x338D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXX'\n #\n \n-33B2 CENTRAL HEADER #7     02014B50 (33639248)\n-33B6 Created Zip Spec      14 (20) '2.0'\n-33B7 Created OS            03 (3) 'Unix'\n-33B8 Extract Zip Spec      0A (10) '1.0'\n-33B9 Extract OS            00 (0) 'MS-DOS'\n-33BA General Purpose Flag  0800 (2048)\n+33CA CENTRAL HEADER #7     02014B50 (33639248)\n+33CE Created Zip Spec      14 (20) '2.0'\n+33CF Created OS            03 (3) 'Unix'\n+33D0 Extract Zip Spec      0A (10) '1.0'\n+33D1 Extract OS            00 (0) 'MS-DOS'\n+33D2 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-33BC Compression Method    0000 (0) 'Stored'\n-33BE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-33C2 CRC                   00000000 (0)\n-33C6 Compressed Size       00000000 (0)\n-33CA Uncompressed Size     00000000 (0)\n-33CE Filename Length       001E (30)\n-33D0 Extra Length          0000 (0)\n-33D2 Comment Length        0000 (0)\n-33D4 Disk Start            0000 (0)\n-33D6 Int File Attributes   0000 (0)\n+33D4 Compression Method    0000 (0) 'Stored'\n+33D6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+33DA CRC                   00000000 (0)\n+33DE Compressed Size       00000000 (0)\n+33E2 Uncompressed Size     00000000 (0)\n+33E6 Filename Length       001E (30)\n+33E8 Extra Length          0000 (0)\n+33EA Comment Length        0000 (0)\n+33EC Disk Start            0000 (0)\n+33EE Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-33D8 Ext File Attributes   41ED0010 (1106051088)\n+33F0 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-33DC Local Header Offset   00000148 (328)\n-33E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+33F4 Local Header Offset   00000148 (328)\n+33F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x33E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x33F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x33E0: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x33F8: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x33B8: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x33D0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-33FE CENTRAL HEADER #8     02014B50 (33639248)\n-3402 Created Zip Spec      14 (20) '2.0'\n-3403 Created OS            03 (3) 'Unix'\n-3404 Extract Zip Spec      0A (10) '1.0'\n-3405 Extract OS            00 (0) 'MS-DOS'\n-3406 General Purpose Flag  0800 (2048)\n+3416 CENTRAL HEADER #8     02014B50 (33639248)\n+341A Created Zip Spec      14 (20) '2.0'\n+341B Created OS            03 (3) 'Unix'\n+341C Extract Zip Spec      0A (10) '1.0'\n+341D Extract OS            00 (0) 'MS-DOS'\n+341E General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3408 Compression Method    0000 (0) 'Stored'\n-340A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-340E CRC                   00000000 (0)\n-3412 Compressed Size       00000000 (0)\n-3416 Uncompressed Size     00000000 (0)\n-341A Filename Length       0023 (35)\n-341C Extra Length          0000 (0)\n-341E Comment Length        0000 (0)\n-3420 Disk Start            0000 (0)\n-3422 Int File Attributes   0000 (0)\n+3420 Compression Method    0000 (0) 'Stored'\n+3422 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3426 CRC                   00000000 (0)\n+342A Compressed Size       00000000 (0)\n+342E Uncompressed Size     00000000 (0)\n+3432 Filename Length       0023 (35)\n+3434 Extra Length          0000 (0)\n+3436 Comment Length        0000 (0)\n+3438 Disk Start            0000 (0)\n+343A Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3424 Ext File Attributes   41ED0010 (1106051088)\n+343C 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-3428 Local Header Offset   00000184 (388)\n-342C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3440 Local Header Offset   00000184 (388)\n+3444 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x342C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3444: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x342C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3444: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3404: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x341C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-344F CENTRAL HEADER #9     02014B50 (33639248)\n-3453 Created Zip Spec      14 (20) '2.0'\n-3454 Created OS            03 (3) 'Unix'\n-3455 Extract Zip Spec      0A (10) '1.0'\n-3456 Extract OS            00 (0) 'MS-DOS'\n-3457 General Purpose Flag  0800 (2048)\n+3467 CENTRAL HEADER #9     02014B50 (33639248)\n+346B Created Zip Spec      14 (20) '2.0'\n+346C Created OS            03 (3) 'Unix'\n+346D Extract Zip Spec      0A (10) '1.0'\n+346E Extract OS            00 (0) 'MS-DOS'\n+346F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3459 Compression Method    0000 (0) 'Stored'\n-345B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-345F CRC                   00000000 (0)\n-3463 Compressed Size       00000000 (0)\n-3467 Uncompressed Size     00000000 (0)\n-346B Filename Length       000F (15)\n-346D Extra Length          0000 (0)\n-346F Comment Length        0000 (0)\n-3471 Disk Start            0000 (0)\n-3473 Int File Attributes   0000 (0)\n+3471 Compression Method    0000 (0) 'Stored'\n+3473 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3477 CRC                   00000000 (0)\n+347B Compressed Size       00000000 (0)\n+347F Uncompressed Size     00000000 (0)\n+3483 Filename Length       000F (15)\n+3485 Extra Length          0000 (0)\n+3487 Comment Length        0000 (0)\n+3489 Disk Start            0000 (0)\n+348B Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3475 Ext File Attributes   41ED0010 (1106051088)\n+348D 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-3479 Local Header Offset   000001C5 (453)\n-347D Filename              'XXXXXXXXXXXXXXX'\n+3491 Local Header Offset   000001C5 (453)\n+3495 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x347D: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3495: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x347D: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3495: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3455: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x346D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-348C CENTRAL HEADER #10    02014B50 (33639248)\n-3490 Created Zip Spec      14 (20) '2.0'\n-3491 Created OS            03 (3) 'Unix'\n-3492 Extract Zip Spec      0A (10) '1.0'\n-3493 Extract OS            00 (0) 'MS-DOS'\n-3494 General Purpose Flag  0800 (2048)\n+34A4 CENTRAL HEADER #10    02014B50 (33639248)\n+34A8 Created Zip Spec      14 (20) '2.0'\n+34A9 Created OS            03 (3) 'Unix'\n+34AA Extract Zip Spec      0A (10) '1.0'\n+34AB Extract OS            00 (0) 'MS-DOS'\n+34AC General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3496 Compression Method    0000 (0) 'Stored'\n-3498 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-349C CRC                   00000000 (0)\n-34A0 Compressed Size       00000000 (0)\n-34A4 Uncompressed Size     00000000 (0)\n-34A8 Filename Length       0018 (24)\n-34AA Extra Length          0000 (0)\n-34AC Comment Length        0000 (0)\n-34AE Disk Start            0000 (0)\n-34B0 Int File Attributes   0000 (0)\n+34AE Compression Method    0000 (0) 'Stored'\n+34B0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+34B4 CRC                   00000000 (0)\n+34B8 Compressed Size       00000000 (0)\n+34BC Uncompressed Size     00000000 (0)\n+34C0 Filename Length       0018 (24)\n+34C2 Extra Length          0000 (0)\n+34C4 Comment Length        0000 (0)\n+34C6 Disk Start            0000 (0)\n+34C8 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-34B2 Ext File Attributes   41ED0010 (1106051088)\n+34CA 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-34B6 Local Header Offset   000001F2 (498)\n-34BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+34CE Local Header Offset   000001F2 (498)\n+34D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x34BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x34D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x34BA: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x34D2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3492: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x34AA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-34D2 CENTRAL HEADER #11    02014B50 (33639248)\n-34D6 Created Zip Spec      14 (20) '2.0'\n-34D7 Created OS            03 (3) 'Unix'\n-34D8 Extract Zip Spec      0A (10) '1.0'\n-34D9 Extract OS            00 (0) 'MS-DOS'\n-34DA General Purpose Flag  0800 (2048)\n+34EA CENTRAL HEADER #11    02014B50 (33639248)\n+34EE Created Zip Spec      14 (20) '2.0'\n+34EF Created OS            03 (3) 'Unix'\n+34F0 Extract Zip Spec      0A (10) '1.0'\n+34F1 Extract OS            00 (0) 'MS-DOS'\n+34F2 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-34DC Compression Method    0000 (0) 'Stored'\n-34DE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-34E2 CRC                   00000000 (0)\n-34E6 Compressed Size       00000000 (0)\n-34EA Uncompressed Size     00000000 (0)\n-34EE Filename Length       000F (15)\n-34F0 Extra Length          0000 (0)\n-34F2 Comment Length        0000 (0)\n-34F4 Disk Start            0000 (0)\n-34F6 Int File Attributes   0000 (0)\n+34F4 Compression Method    0000 (0) 'Stored'\n+34F6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+34FA CRC                   00000000 (0)\n+34FE Compressed Size       00000000 (0)\n+3502 Uncompressed Size     00000000 (0)\n+3506 Filename Length       000F (15)\n+3508 Extra Length          0000 (0)\n+350A Comment Length        0000 (0)\n+350C Disk Start            0000 (0)\n+350E Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-34F8 Ext File Attributes   41ED0010 (1106051088)\n+3510 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-34FC Local Header Offset   00000228 (552)\n-3500 Filename              'XXXXXXXXXXXXXXX'\n+3514 Local Header Offset   00000228 (552)\n+3518 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3500: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3518: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3500: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3518: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x34D8: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x34F0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-350F CENTRAL HEADER #12    02014B50 (33639248)\n-3513 Created Zip Spec      14 (20) '2.0'\n-3514 Created OS            03 (3) 'Unix'\n-3515 Extract Zip Spec      0A (10) '1.0'\n-3516 Extract OS            00 (0) 'MS-DOS'\n-3517 General Purpose Flag  0800 (2048)\n+3527 CENTRAL HEADER #12    02014B50 (33639248)\n+352B Created Zip Spec      14 (20) '2.0'\n+352C Created OS            03 (3) 'Unix'\n+352D Extract Zip Spec      0A (10) '1.0'\n+352E Extract OS            00 (0) 'MS-DOS'\n+352F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3519 Compression Method    0000 (0) 'Stored'\n-351B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-351F CRC                   00000000 (0)\n-3523 Compressed Size       00000000 (0)\n-3527 Uncompressed Size     00000000 (0)\n-352B Filename Length       0020 (32)\n-352D Extra Length          0000 (0)\n-352F Comment Length        0000 (0)\n-3531 Disk Start            0000 (0)\n-3533 Int File Attributes   0000 (0)\n+3531 Compression Method    0000 (0) 'Stored'\n+3533 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3537 CRC                   00000000 (0)\n+353B Compressed Size       00000000 (0)\n+353F Uncompressed Size     00000000 (0)\n+3543 Filename Length       0020 (32)\n+3545 Extra Length          0000 (0)\n+3547 Comment Length        0000 (0)\n+3549 Disk Start            0000 (0)\n+354B Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3535 Ext File Attributes   41ED0010 (1106051088)\n+354D 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-3539 Local Header Offset   00000255 (597)\n-353D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3551 Local Header Offset   00000255 (597)\n+3555 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x353D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3555: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x353D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3555: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3515: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x352D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-355D CENTRAL HEADER #13    02014B50 (33639248)\n-3561 Created Zip Spec      14 (20) '2.0'\n-3562 Created OS            03 (3) 'Unix'\n-3563 Extract Zip Spec      0A (10) '1.0'\n-3564 Extract OS            00 (0) 'MS-DOS'\n-3565 General Purpose Flag  0800 (2048)\n+3575 CENTRAL HEADER #13    02014B50 (33639248)\n+3579 Created Zip Spec      14 (20) '2.0'\n+357A Created OS            03 (3) 'Unix'\n+357B Extract Zip Spec      0A (10) '1.0'\n+357C Extract OS            00 (0) 'MS-DOS'\n+357D General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3567 Compression Method    0000 (0) 'Stored'\n-3569 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-356D CRC                   00000000 (0)\n-3571 Compressed Size       00000000 (0)\n-3575 Uncompressed Size     00000000 (0)\n-3579 Filename Length       002F (47)\n-357B Extra Length          0000 (0)\n-357D Comment Length        0000 (0)\n-357F Disk Start            0000 (0)\n-3581 Int File Attributes   0000 (0)\n+357F Compression Method    0000 (0) 'Stored'\n+3581 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3585 CRC                   00000000 (0)\n+3589 Compressed Size       00000000 (0)\n+358D Uncompressed Size     00000000 (0)\n+3591 Filename Length       002F (47)\n+3593 Extra Length          0000 (0)\n+3595 Comment Length        0000 (0)\n+3597 Disk Start            0000 (0)\n+3599 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3583 Ext File Attributes   41ED0010 (1106051088)\n+359B 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-3587 Local Header Offset   00000293 (659)\n-358B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+359F Local Header Offset   00000293 (659)\n+35A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x358B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x35A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x358B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x35A3: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3563: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x357B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-35BA CENTRAL HEADER #14    02014B50 (33639248)\n-35BE Created Zip Spec      14 (20) '2.0'\n-35BF Created OS            03 (3) 'Unix'\n-35C0 Extract Zip Spec      14 (20) '2.0'\n-35C1 Extract OS            00 (0) 'MS-DOS'\n-35C2 General Purpose Flag  0800 (2048)\n+35D2 CENTRAL HEADER #14    02014B50 (33639248)\n+35D6 Created Zip Spec      14 (20) '2.0'\n+35D7 Created OS            03 (3) 'Unix'\n+35D8 Extract Zip Spec      14 (20) '2.0'\n+35D9 Extract OS            00 (0) 'MS-DOS'\n+35DA General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-35C4 Compression Method    0008 (8) 'Deflated'\n-35C6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-35CA CRC                   41BD8F94 (1102942100)\n-35CE Compressed Size       00000597 (1431)\n-35D2 Uncompressed Size     00001F42 (8002)\n-35D6 Filename Length       0015 (21)\n-35D8 Extra Length          0000 (0)\n-35DA Comment Length        0000 (0)\n-35DC Disk Start            0000 (0)\n-35DE Int File Attributes   0000 (0)\n+35DC Compression Method    0008 (8) 'Deflated'\n+35DE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+35E2 CRC                   41BD8F94 (1102942100)\n+35E6 Compressed Size       00000597 (1431)\n+35EA Uncompressed Size     00001F42 (8002)\n+35EE Filename Length       0015 (21)\n+35F0 Extra Length          0000 (0)\n+35F2 Comment Length        0000 (0)\n+35F4 Disk Start            0000 (0)\n+35F6 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-35E0 Ext File Attributes   81A40000 (2175008768)\n+35F8 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-35E4 Local Header Offset   000002E0 (736)\n-35E8 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+35FC Local Header Offset   000002E0 (736)\n+3600 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x35E8: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3600: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-35FD CENTRAL HEADER #15    02014B50 (33639248)\n-3601 Created Zip Spec      14 (20) '2.0'\n-3602 Created OS            03 (3) 'Unix'\n-3603 Extract Zip Spec      14 (20) '2.0'\n-3604 Extract OS            00 (0) 'MS-DOS'\n-3605 General Purpose Flag  0800 (2048)\n+3615 CENTRAL HEADER #15    02014B50 (33639248)\n+3619 Created Zip Spec      14 (20) '2.0'\n+361A Created OS            03 (3) 'Unix'\n+361B Extract Zip Spec      14 (20) '2.0'\n+361C Extract OS            00 (0) 'MS-DOS'\n+361D General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3607 Compression Method    0008 (8) 'Deflated'\n-3609 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-360D CRC                   86E2B4B4 (2263004340)\n-3611 Compressed Size       00000F6D (3949)\n-3615 Uncompressed Size     00002C5E (11358)\n-3619 Filename Length       0010 (16)\n-361B Extra Length          0000 (0)\n-361D Comment Length        0000 (0)\n-361F Disk Start            0000 (0)\n-3621 Int File Attributes   0000 (0)\n+361F Compression Method    0008 (8) 'Deflated'\n+3621 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3625 CRC                   86E2B4B4 (2263004340)\n+3629 Compressed Size       00000F6D (3949)\n+362D Uncompressed Size     00002C5E (11358)\n+3631 Filename Length       0010 (16)\n+3633 Extra Length          0000 (0)\n+3635 Comment Length        0000 (0)\n+3637 Disk Start            0000 (0)\n+3639 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3623 Ext File Attributes   81A40000 (2175008768)\n+363B 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-3627 Local Header Offset   000008AA (2218)\n-362B Filename              'XXXXXXXXXXXXXXXX'\n+363F Local Header Offset   000008AA (2218)\n+3643 Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x362B: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3643: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-363B CENTRAL HEADER #16    02014B50 (33639248)\n-363F Created Zip Spec      14 (20) '2.0'\n-3640 Created OS            03 (3) 'Unix'\n-3641 Extract Zip Spec      14 (20) '2.0'\n-3642 Extract OS            00 (0) 'MS-DOS'\n-3643 General Purpose Flag  0800 (2048)\n+3653 CENTRAL HEADER #16    02014B50 (33639248)\n+3657 Created Zip Spec      14 (20) '2.0'\n+3658 Created OS            03 (3) 'Unix'\n+3659 Extract Zip Spec      14 (20) '2.0'\n+365A Extract OS            00 (0) 'MS-DOS'\n+365B General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3645 Compression Method    0008 (8) 'Deflated'\n-3647 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-364B CRC                   A2601E03 (2724208131)\n-364F Compressed Size       0000007D (125)\n-3653 Uncompressed Size     000000AB (171)\n-3657 Filename Length       000F (15)\n-3659 Extra Length          0000 (0)\n-365B Comment Length        0000 (0)\n-365D Disk Start            0000 (0)\n-365F Int File Attributes   0000 (0)\n+365D Compression Method    0008 (8) 'Deflated'\n+365F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3663 CRC                   A2601E03 (2724208131)\n+3667 Compressed Size       0000007D (125)\n+366B Uncompressed Size     000000AB (171)\n+366F Filename Length       000F (15)\n+3671 Extra Length          0000 (0)\n+3673 Comment Length        0000 (0)\n+3675 Disk Start            0000 (0)\n+3677 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3661 Ext File Attributes   81A40000 (2175008768)\n+3679 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-3665 Local Header Offset   00001845 (6213)\n-3669 Filename              'XXXXXXXXXXXXXXX'\n+367D Local Header Offset   00001845 (6213)\n+3681 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3669: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3681: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3678 CENTRAL HEADER #17    02014B50 (33639248)\n-367C Created Zip Spec      14 (20) '2.0'\n-367D Created OS            03 (3) 'Unix'\n-367E Extract Zip Spec      14 (20) '2.0'\n-367F Extract OS            00 (0) 'MS-DOS'\n-3680 General Purpose Flag  0800 (2048)\n+3690 CENTRAL HEADER #17    02014B50 (33639248)\n+3694 Created Zip Spec      14 (20) '2.0'\n+3695 Created OS            03 (3) 'Unix'\n+3696 Extract Zip Spec      14 (20) '2.0'\n+3697 Extract OS            00 (0) 'MS-DOS'\n+3698 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3682 Compression Method    0008 (8) 'Deflated'\n-3684 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3688 CRC                   67E99252 (1743360594)\n-368C Compressed Size       000008DB (2267)\n-3690 Uncompressed Size     00001D88 (7560)\n-3694 Filename Length       0034 (52)\n-3696 Extra Length          0000 (0)\n-3698 Comment Length        0000 (0)\n-369A Disk Start            0000 (0)\n-369C Int File Attributes   0000 (0)\n+369A Compression Method    0008 (8) 'Deflated'\n+369C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+36A0 CRC                   928E5A20 (2458802720)\n+36A4 Compressed Size       000008EA (2282)\n+36A8 Uncompressed Size     00001E46 (7750)\n+36AC Filename Length       0034 (52)\n+36AE Extra Length          0000 (0)\n+36B0 Comment Length        0000 (0)\n+36B2 Disk Start            0000 (0)\n+36B4 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-369E Ext File Attributes   81A40000 (2175008768)\n+36B6 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-36A2 Local Header Offset   000018EF (6383)\n-36A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+36BA Local Header Offset   000018EF (6383)\n+36BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x36A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x36BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-36DA CENTRAL HEADER #18    02014B50 (33639248)\n-36DE Created Zip Spec      14 (20) '2.0'\n-36DF Created OS            03 (3) 'Unix'\n-36E0 Extract Zip Spec      14 (20) '2.0'\n-36E1 Extract OS            00 (0) 'MS-DOS'\n-36E2 General Purpose Flag  0800 (2048)\n+36F2 CENTRAL HEADER #18    02014B50 (33639248)\n+36F6 Created Zip Spec      14 (20) '2.0'\n+36F7 Created OS            03 (3) 'Unix'\n+36F8 Extract Zip Spec      14 (20) '2.0'\n+36F9 Extract OS            00 (0) 'MS-DOS'\n+36FA General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-36E4 Compression Method    0008 (8) 'Deflated'\n-36E6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-36EA CRC                   B3BC74DF (3015472351)\n-36EE Compressed Size       00000242 (578)\n-36F2 Uncompressed Size     00000429 (1065)\n-36F6 Filename Length       003D (61)\n-36F8 Extra Length          0000 (0)\n-36FA Comment Length        0000 (0)\n-36FC Disk Start            0000 (0)\n-36FE Int File Attributes   0000 (0)\n+36FC Compression Method    0008 (8) 'Deflated'\n+36FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3702 CRC                   B3BC74DF (3015472351)\n+3706 Compressed Size       00000242 (578)\n+370A Uncompressed Size     00000429 (1065)\n+370E Filename Length       003D (61)\n+3710 Extra Length          0000 (0)\n+3712 Comment Length        0000 (0)\n+3714 Disk Start            0000 (0)\n+3716 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3700 Ext File Attributes   81A40000 (2175008768)\n+3718 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-3704 Local Header Offset   0000221C (8732)\n-3708 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+371C Local Header Offset   0000222B (8747)\n+3720 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3708: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3720: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3745 CENTRAL HEADER #19    02014B50 (33639248)\n-3749 Created Zip Spec      14 (20) '2.0'\n-374A Created OS            03 (3) 'Unix'\n-374B Extract Zip Spec      14 (20) '2.0'\n-374C Extract OS            00 (0) 'MS-DOS'\n-374D General Purpose Flag  0800 (2048)\n+375D CENTRAL HEADER #19    02014B50 (33639248)\n+3761 Created Zip Spec      14 (20) '2.0'\n+3762 Created OS            03 (3) 'Unix'\n+3763 Extract Zip Spec      14 (20) '2.0'\n+3764 Extract OS            00 (0) 'MS-DOS'\n+3765 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-374F Compression Method    0008 (8) 'Deflated'\n-3751 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3755 CRC                   29478F2B (692555563)\n-3759 Compressed Size       000003E1 (993)\n-375D Uncompressed Size     000008EB (2283)\n-3761 Filename Length       003C (60)\n-3763 Extra Length          0000 (0)\n-3765 Comment Length        0000 (0)\n-3767 Disk Start            0000 (0)\n-3769 Int File Attributes   0000 (0)\n+3767 Compression Method    0008 (8) 'Deflated'\n+3769 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+376D CRC                   F065E593 (4033209747)\n+3771 Compressed Size       000003EA (1002)\n+3775 Uncompressed Size     00000928 (2344)\n+3779 Filename Length       003C (60)\n+377B Extra Length          0000 (0)\n+377D Comment Length        0000 (0)\n+377F Disk Start            0000 (0)\n+3781 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-376B Ext File Attributes   81A40000 (2175008768)\n+3783 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-376F Local Header Offset   000024B9 (9401)\n-3773 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3787 Local Header Offset   000024C8 (9416)\n+378B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3773: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x378B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-37AF CENTRAL HEADER #20    02014B50 (33639248)\n-37B3 Created Zip Spec      14 (20) '2.0'\n-37B4 Created OS            03 (3) 'Unix'\n-37B5 Extract Zip Spec      14 (20) '2.0'\n-37B6 Extract OS            00 (0) 'MS-DOS'\n-37B7 General Purpose Flag  0800 (2048)\n+37C7 CENTRAL HEADER #20    02014B50 (33639248)\n+37CB Created Zip Spec      14 (20) '2.0'\n+37CC Created OS            03 (3) 'Unix'\n+37CD Extract Zip Spec      14 (20) '2.0'\n+37CE Extract OS            00 (0) 'MS-DOS'\n+37CF General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-37B9 Compression Method    0008 (8) 'Deflated'\n-37BB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-37BF CRC                   DBBDBD3B (3686645051)\n-37C3 Compressed Size       000003D6 (982)\n-37C7 Uncompressed Size     00000B0C (2828)\n-37CB Filename Length       003F (63)\n-37CD Extra Length          0000 (0)\n-37CF Comment Length        0000 (0)\n-37D1 Disk Start            0000 (0)\n-37D3 Int File Attributes   0000 (0)\n+37D1 Compression Method    0008 (8) 'Deflated'\n+37D3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+37D7 CRC                   C56F8EA2 (3312422562)\n+37DB Compressed Size       000003DE (990)\n+37DF Uncompressed Size     00000B62 (2914)\n+37E3 Filename Length       003F (63)\n+37E5 Extra Length          0000 (0)\n+37E7 Comment Length        0000 (0)\n+37E9 Disk Start            0000 (0)\n+37EB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-37D5 Ext File Attributes   81A40000 (2175008768)\n+37ED 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-37D9 Local Header Offset   000028F4 (10484)\n-37DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+37F1 Local Header Offset   0000290C (10508)\n+37F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x37DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x37F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-381C CENTRAL HEADER #21    02014B50 (33639248)\n-3820 Created Zip Spec      14 (20) '2.0'\n-3821 Created OS            03 (3) 'Unix'\n-3822 Extract Zip Spec      14 (20) '2.0'\n-3823 Extract OS            00 (0) 'MS-DOS'\n-3824 General Purpose Flag  0800 (2048)\n+3834 CENTRAL HEADER #21    02014B50 (33639248)\n+3838 Created Zip Spec      14 (20) '2.0'\n+3839 Created OS            03 (3) 'Unix'\n+383A Extract Zip Spec      14 (20) '2.0'\n+383B Extract OS            00 (0) 'MS-DOS'\n+383C General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3826 Compression Method    0008 (8) 'Deflated'\n-3828 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-382C CRC                   18982A2D (412625453)\n-3830 Compressed Size       0000002E (46)\n-3834 Uncompressed Size     00000034 (52)\n-3838 Filename Length       0035 (53)\n-383A Extra Length          0000 (0)\n-383C Comment Length        0000 (0)\n-383E Disk Start            0000 (0)\n-3840 Int File Attributes   0000 (0)\n+383E Compression Method    0008 (8) 'Deflated'\n+3840 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3844 CRC                   18982A2D (412625453)\n+3848 Compressed Size       0000002E (46)\n+384C Uncompressed Size     00000034 (52)\n+3850 Filename Length       0035 (53)\n+3852 Extra Length          0000 (0)\n+3854 Comment Length        0000 (0)\n+3856 Disk Start            0000 (0)\n+3858 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3842 Ext File Attributes   81A40000 (2175008768)\n+385A 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-3846 Local Header Offset   00002D27 (11559)\n-384A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+385E Local Header Offset   00002D47 (11591)\n+3862 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x384A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3862: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-387F CENTRAL HEADER #22    02014B50 (33639248)\n-3883 Created Zip Spec      14 (20) '2.0'\n-3884 Created OS            03 (3) 'Unix'\n-3885 Extract Zip Spec      14 (20) '2.0'\n-3886 Extract OS            00 (0) 'MS-DOS'\n-3887 General Purpose Flag  0800 (2048)\n+3897 CENTRAL HEADER #22    02014B50 (33639248)\n+389B Created Zip Spec      14 (20) '2.0'\n+389C Created OS            03 (3) 'Unix'\n+389D Extract Zip Spec      14 (20) '2.0'\n+389E Extract OS            00 (0) 'MS-DOS'\n+389F General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3889 Compression Method    0008 (8) 'Deflated'\n-388B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-388F CRC                   0B401095 (188747925)\n-3893 Compressed Size       000003B2 (946)\n-3897 Uncompressed Size     000009C8 (2504)\n-389B Filename Length       0036 (54)\n-389D Extra Length          0000 (0)\n-389F Comment Length        0000 (0)\n-38A1 Disk Start            0000 (0)\n-38A3 Int File Attributes   0000 (0)\n+38A1 Compression Method    0008 (8) 'Deflated'\n+38A3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+38A7 CRC                   03176EE3 (51867363)\n+38AB Compressed Size       000003AA (938)\n+38AF Uncompressed Size     00000988 (2440)\n+38B3 Filename Length       0036 (54)\n+38B5 Extra Length          0000 (0)\n+38B7 Comment Length        0000 (0)\n+38B9 Disk Start            0000 (0)\n+38BB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-38A5 Ext File Attributes   81A40000 (2175008768)\n+38BD 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-38A9 Local Header Offset   00002DA8 (11688)\n-38AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+38C1 Local Header Offset   00002DC8 (11720)\n+38C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x38AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x38C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-38E3 CENTRAL HEADER #23    02014B50 (33639248)\n-38E7 Created Zip Spec      14 (20) '2.0'\n-38E8 Created OS            03 (3) 'Unix'\n-38E9 Extract Zip Spec      14 (20) '2.0'\n-38EA Extract OS            00 (0) 'MS-DOS'\n-38EB General Purpose Flag  0800 (2048)\n+38FB CENTRAL HEADER #23    02014B50 (33639248)\n+38FF Created Zip Spec      14 (20) '2.0'\n+3900 Created OS            03 (3) 'Unix'\n+3901 Extract Zip Spec      14 (20) '2.0'\n+3902 Extract OS            00 (0) 'MS-DOS'\n+3903 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-38ED Compression Method    0008 (8) 'Deflated'\n-38EF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-38F3 CRC                   8E20026A (2384462442)\n-38F7 Compressed Size       00000043 (67)\n-38FB Uncompressed Size     00000045 (69)\n-38FF Filename Length       003D (61)\n-3901 Extra Length          0000 (0)\n-3903 Comment Length        0000 (0)\n-3905 Disk Start            0000 (0)\n-3907 Int File Attributes   0000 (0)\n+3905 Compression Method    0008 (8) 'Deflated'\n+3907 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+390B CRC                   8E20026A (2384462442)\n+390F Compressed Size       00000043 (67)\n+3913 Uncompressed Size     00000045 (69)\n+3917 Filename Length       003D (61)\n+3919 Extra Length          0000 (0)\n+391B Comment Length        0000 (0)\n+391D Disk Start            0000 (0)\n+391F Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3909 Ext File Attributes   81A40000 (2175008768)\n+3921 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-390D Local Header Offset   000031AE (12718)\n-3911 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3925 Local Header Offset   000031C6 (12742)\n+3929 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3911: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3929: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-394E END CENTRAL HEADER    06054B50 (101010256)\n-3952 Number of this disk   0000 (0)\n-3954 Central Dir Disk no   0000 (0)\n-3956 Entries in this disk  0017 (23)\n-3958 Total Entries         0017 (23)\n-395A Size of Central Dir   00000702 (1794)\n-395E Offset to Central Dir 0000324C (12876)\n-3962 Comment Length        0000 (0)\n+3966 END CENTRAL HEADER    06054B50 (101010256)\n+396A Number of this disk   0000 (0)\n+396C Central Dir Disk no   0000 (0)\n+396E Entries in this disk  0017 (23)\n+3970 Total Entries         0017 (23)\n+3972 Size of Central Dir   00000702 (1794)\n+3976 Offset to Central Dir 00003264 (12900)\n+397A Comment Length        0000 (0)\n #\n # Error Count: 12\n # Warning Count: 58\n #\n # Done\n"}, {"source1": "org/apache/dubbo/rpc/protocol/http/HttpProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/http/HttpProtocol.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,191 +1,191 @@\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.rpc.protocol.http;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import com.googlecode.jsonrpc4j.HttpException;\n-import com.googlecode.jsonrpc4j.JsonRpcClientException;\n-import com.googlecode.jsonrpc4j.JsonRpcServer;\n-import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-import org.springframework.remoting.RemoteAccessException;\n-import org.springframework.remoting.support.RemoteInvocation;\n-\n-import javax.servlet.ServletException;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import java.io.IOException;\n-import java.net.SocketTimeoutException;\n-import java.util.ArrayList;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-public class HttpProtocol extends AbstractProxyProtocol {\n-    public static final String ACCESS_CONTROL_ALLOW_ORIGIN_HEADER = \"Access-Control-Allow-Origin\";\n-    public static final String ACCESS_CONTROL_ALLOW_METHODS_HEADER = \"Access-Control-Allow-Methods\";\n-    public static final String ACCESS_CONTROL_ALLOW_HEADERS_HEADER = \"Access-Control-Allow-Headers\";\n-\n-    private final Map<String, JsonRpcServer> skeletonMap = new ConcurrentHashMap<>();\n-\n-    private HttpBinder httpBinder;\n-\n-    public HttpProtocol() {\n-        super(HttpException.class, JsonRpcClientException.class);\n-    }\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return 80;\n-    }\n-\n-    private class InternalHandler implements HttpHandler {\n-\n-        private boolean cors;\n-\n-        public InternalHandler(boolean cors) {\n-            this.cors = cors;\n-        }\n-\n-        @Override\n-        public void handle(HttpServletRequest request, HttpServletResponse response)\n-                throws ServletException {\n-            String uri = request.getRequestURI();\n-            JsonRpcServer skeleton = skeletonMap.get(uri);\n-            if (cors) {\n-                response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, \"*\");\n-                response.setHeader(ACCESS_CONTROL_ALLOW_METHODS_HEADER, \"POST\");\n-                response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS_HEADER, \"*\");\n-            }\n-            if (request.getMethod().equalsIgnoreCase(\"OPTIONS\")) {\n-                response.setStatus(200);\n-            } else if (request.getMethod().equalsIgnoreCase(\"POST\")) {\n-\n-                RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-                try {\n-                    skeleton.handle(request.getInputStream(), response.getOutputStream());\n-                } catch (Throwable e) {\n-                    throw new ServletException(e);\n-                }\n-            } else {\n-                response.setStatus(500);\n-            }\n-        }\n-\n-    }\n-\n-    @Override\n-    protected <T> Runnable doExport(final T impl, Class<T> type, URL url) throws RpcException {\n-        String addr = getAddr(url);\n-        ProtocolServer protocolServer = serverMap.get(addr);\n-        if (protocolServer == null) {\n-            RemotingServer remotingServer = httpBinder.bind(url, new InternalHandler(url.getParameter(\"cors\", false)));\n-            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\n-        }\n-        final String path = url.getAbsolutePath();\n-        final String genericPath = path + \"/\" + GENERIC_KEY;\n-        JsonRpcServer skeleton = new JsonRpcServer(impl, type);\n-        JsonRpcServer genericServer = new JsonRpcServer(impl, GenericService.class);\n-        skeletonMap.put(path, skeleton);\n-        skeletonMap.put(genericPath, genericServer);\n-        return () -> {\n-            skeletonMap.remove(path);\n-            skeletonMap.remove(genericPath);\n-        };\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    @Override\n-    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\n-        final String generic = url.getParameter(GENERIC_KEY);\n-        final boolean isGeneric = ProtocolUtils.isGeneric(generic) || serviceType.equals(GenericService.class);\n-        JsonProxyFactoryBean jsonProxyFactoryBean = new JsonProxyFactoryBean();\n-        JsonRpcProxyFactoryBean jsonRpcProxyFactoryBean = new JsonRpcProxyFactoryBean(jsonProxyFactoryBean);\n-        jsonRpcProxyFactoryBean.setRemoteInvocationFactory((methodInvocation) -> {\n-            RemoteInvocation invocation = new JsonRemoteInvocation(methodInvocation);\n-            if (isGeneric) {\n-                invocation.addAttribute(GENERIC_KEY, generic);\n-            }\n-            return invocation;\n-        });\n-        String key = url.setProtocol(\"http\").toIdentityString();\n-        if (isGeneric) {\n-            key = key + \"/\" + GENERIC_KEY;\n-        }\n-\n-        jsonRpcProxyFactoryBean.setServiceUrl(key);\n-        jsonRpcProxyFactoryBean.setServiceInterface(serviceType);\n-\n-        jsonProxyFactoryBean.afterPropertiesSet();\n-        return (T) jsonProxyFactoryBean.getObject();\n-    }\n-\n-    protected int getErrorCode(Throwable e) {\n-        if (e instanceof RemoteAccessException) {\n-            e = e.getCause();\n-        }\n-        if (e != null) {\n-            Class<?> cls = e.getClass();\n-            if (SocketTimeoutException.class.equals(cls)) {\n-                return RpcException.TIMEOUT_EXCEPTION;\n-            } else if (IOException.class.isAssignableFrom(cls)) {\n-                return RpcException.NETWORK_EXCEPTION;\n-            } else if (ClassNotFoundException.class.isAssignableFrom(cls)) {\n-                return RpcException.SERIALIZATION_EXCEPTION;\n-            }\n-\n-            if (e instanceof HttpProtocolErrorCode) {\n-                return ((HttpProtocolErrorCode) e).getErrorCode();\n-            }\n-        }\n-        return super.getErrorCode(e);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-        for (String key : new ArrayList<>(serverMap.keySet())) {\n-            ProtocolServer server = serverMap.remove(key);\n-            if (server != null) {\n-                try {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Close jsonrpc server \" + server.getUrl());\n-                    }\n-                    server.close();\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            }\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.rpc.protocol.http;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import com.googlecode.jsonrpc4j.HttpException;\r\n+import com.googlecode.jsonrpc4j.JsonRpcClientException;\r\n+import com.googlecode.jsonrpc4j.JsonRpcServer;\r\n+import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+import org.springframework.remoting.RemoteAccessException;\r\n+import org.springframework.remoting.support.RemoteInvocation;\r\n+\r\n+import javax.servlet.ServletException;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import java.io.IOException;\r\n+import java.net.SocketTimeoutException;\r\n+import java.util.ArrayList;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+public class HttpProtocol extends AbstractProxyProtocol {\r\n+    public static final String ACCESS_CONTROL_ALLOW_ORIGIN_HEADER = \"Access-Control-Allow-Origin\";\r\n+    public static final String ACCESS_CONTROL_ALLOW_METHODS_HEADER = \"Access-Control-Allow-Methods\";\r\n+    public static final String ACCESS_CONTROL_ALLOW_HEADERS_HEADER = \"Access-Control-Allow-Headers\";\r\n+\r\n+    private final Map<String, JsonRpcServer> skeletonMap = new ConcurrentHashMap<>();\r\n+\r\n+    private HttpBinder httpBinder;\r\n+\r\n+    public HttpProtocol() {\r\n+        super(HttpException.class, JsonRpcClientException.class);\r\n+    }\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return 80;\r\n+    }\r\n+\r\n+    private class InternalHandler implements HttpHandler {\r\n+\r\n+        private boolean cors;\r\n+\r\n+        public InternalHandler(boolean cors) {\r\n+            this.cors = cors;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void handle(HttpServletRequest request, HttpServletResponse response)\r\n+                throws ServletException {\r\n+            String uri = request.getRequestURI();\r\n+            JsonRpcServer skeleton = skeletonMap.get(uri);\r\n+            if (cors) {\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, \"*\");\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_METHODS_HEADER, \"POST\");\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS_HEADER, \"*\");\r\n+            }\r\n+            if (request.getMethod().equalsIgnoreCase(\"OPTIONS\")) {\r\n+                response.setStatus(200);\r\n+            } else if (request.getMethod().equalsIgnoreCase(\"POST\")) {\r\n+\r\n+                RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+                try {\r\n+                    skeleton.handle(request.getInputStream(), response.getOutputStream());\r\n+                } catch (Throwable e) {\r\n+                    throw new ServletException(e);\r\n+                }\r\n+            } else {\r\n+                response.setStatus(500);\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(final T impl, Class<T> type, URL url) throws RpcException {\r\n+        String addr = getAddr(url);\r\n+        ProtocolServer protocolServer = serverMap.get(addr);\r\n+        if (protocolServer == null) {\r\n+            RemotingServer remotingServer = httpBinder.bind(url, new InternalHandler(url.getParameter(\"cors\", false)));\r\n+            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\r\n+        }\r\n+        final String path = url.getAbsolutePath();\r\n+        final String genericPath = path + \"/\" + GENERIC_KEY;\r\n+        JsonRpcServer skeleton = new JsonRpcServer(impl, type);\r\n+        JsonRpcServer genericServer = new JsonRpcServer(impl, GenericService.class);\r\n+        skeletonMap.put(path, skeleton);\r\n+        skeletonMap.put(genericPath, genericServer);\r\n+        return () -> {\r\n+            skeletonMap.remove(path);\r\n+            skeletonMap.remove(genericPath);\r\n+        };\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    @Override\r\n+    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\r\n+        final String generic = url.getParameter(GENERIC_KEY);\r\n+        final boolean isGeneric = ProtocolUtils.isGeneric(generic) || serviceType.equals(GenericService.class);\r\n+        JsonProxyFactoryBean jsonProxyFactoryBean = new JsonProxyFactoryBean();\r\n+        JsonRpcProxyFactoryBean jsonRpcProxyFactoryBean = new JsonRpcProxyFactoryBean(jsonProxyFactoryBean);\r\n+        jsonRpcProxyFactoryBean.setRemoteInvocationFactory((methodInvocation) -> {\r\n+            RemoteInvocation invocation = new JsonRemoteInvocation(methodInvocation);\r\n+            if (isGeneric) {\r\n+                invocation.addAttribute(GENERIC_KEY, generic);\r\n+            }\r\n+            return invocation;\r\n+        });\r\n+        String key = url.setProtocol(\"http\").toIdentityString();\r\n+        if (isGeneric) {\r\n+            key = key + \"/\" + GENERIC_KEY;\r\n+        }\r\n+\r\n+        jsonRpcProxyFactoryBean.setServiceUrl(key);\r\n+        jsonRpcProxyFactoryBean.setServiceInterface(serviceType);\r\n+\r\n+        jsonProxyFactoryBean.afterPropertiesSet();\r\n+        return (T) jsonProxyFactoryBean.getObject();\r\n+    }\r\n+\r\n+    protected int getErrorCode(Throwable e) {\r\n+        if (e instanceof RemoteAccessException) {\r\n+            e = e.getCause();\r\n+        }\r\n+        if (e != null) {\r\n+            Class<?> cls = e.getClass();\r\n+            if (SocketTimeoutException.class.equals(cls)) {\r\n+                return RpcException.TIMEOUT_EXCEPTION;\r\n+            } else if (IOException.class.isAssignableFrom(cls)) {\r\n+                return RpcException.NETWORK_EXCEPTION;\r\n+            } else if (ClassNotFoundException.class.isAssignableFrom(cls)) {\r\n+                return RpcException.SERIALIZATION_EXCEPTION;\r\n+            }\r\n+\r\n+            if (e instanceof HttpProtocolErrorCode) {\r\n+                return ((HttpProtocolErrorCode) e).getErrorCode();\r\n+            }\r\n+        }\r\n+        return super.getErrorCode(e);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+        for (String key : new ArrayList<>(serverMap.keySet())) {\r\n+            ProtocolServer server = serverMap.remove(key);\r\n+            if (server != null) {\r\n+                try {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Close jsonrpc server \" + server.getUrl());\r\n+                    }\r\n+                    server.close();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java", "source2": "org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,61 +1,61 @@\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-\n-package org.apache.dubbo.rpc.protocol.http;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import org.aopalliance.intercept.MethodInvocation;\n-import org.springframework.remoting.support.RemoteInvocation;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-/**\n- * JsonRemoteInvocation\n- */\n-public class JsonRemoteInvocation extends RemoteInvocation {\n-    private static final long serialVersionUID = 1L;\n-    private static final String DUBBO_ATTACHMENTS_ATTR_NAME = \"dubbo.attachments\";\n-\n-    public JsonRemoteInvocation(MethodInvocation methodInvocation) {\n-        super(methodInvocation);\n-        addAttribute(DUBBO_ATTACHMENTS_ATTR_NAME, new HashMap<>(RpcContext.getContext().getAttachments()));\n-    }\n-\n-    @Override\n-    public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException,\n-            InvocationTargetException {\n-        RpcContext context = RpcContext.getContext();\n-        context.setAttachments((Map<String, String>) getAttribute(DUBBO_ATTACHMENTS_ATTR_NAME));\n-\n-        String generic = (String) getAttribute(GENERIC_KEY);\n-        if (StringUtils.isNotEmpty(generic)) {\n-            context.setAttachment(GENERIC_KEY, generic);\n-        }\n-        try {\n-            return super.invoke(targetObject);\n-        } finally {\n-            context.setAttachments(null);\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+\r\n+package org.apache.dubbo.rpc.protocol.http;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+import org.springframework.remoting.support.RemoteInvocation;\r\n+\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+/**\r\n+ * JsonRemoteInvocation\r\n+ */\r\n+public class JsonRemoteInvocation extends RemoteInvocation {\r\n+    private static final long serialVersionUID = 1L;\r\n+    private static final String DUBBO_ATTACHMENTS_ATTR_NAME = \"dubbo.attachments\";\r\n+\r\n+    public JsonRemoteInvocation(MethodInvocation methodInvocation) {\r\n+        super(methodInvocation);\r\n+        addAttribute(DUBBO_ATTACHMENTS_ATTR_NAME, new HashMap<>(RpcContext.getContext().getAttachments()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException,\r\n+            InvocationTargetException {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setAttachments((Map<String, String>) getAttribute(DUBBO_ATTACHMENTS_ATTR_NAME));\r\n+\r\n+        String generic = (String) getAttribute(GENERIC_KEY);\r\n+        if (StringUtils.isNotEmpty(generic)) {\r\n+            context.setAttachment(GENERIC_KEY, generic);\r\n+        }\r\n+        try {\r\n+            return super.invoke(targetObject);\r\n+        } finally {\r\n+            context.setAttachments(null);\r\n+\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java", "source2": "org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,86 +1,86 @@\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-\n-package org.apache.dubbo.rpc.protocol.http;\n-\n-import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\n-import org.aopalliance.intercept.MethodInterceptor;\n-import org.aopalliance.intercept.MethodInvocation;\n-import org.springframework.beans.factory.FactoryBean;\n-import org.springframework.beans.factory.InitializingBean;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.remoting.support.RemoteInvocationBasedAccessor;\n-\n-/**\n- * JsonRpcProxyFactoryBean\n- */\n-public class JsonRpcProxyFactoryBean extends RemoteInvocationBasedAccessor\n-        implements MethodInterceptor,\n-        InitializingBean,\n-        FactoryBean<Object>,\n-        ApplicationContextAware {\n-    private final JsonProxyFactoryBean jsonProxyFactoryBean;\n-\n-    public JsonRpcProxyFactoryBean(JsonProxyFactoryBean factoryBean) {\n-        this.jsonProxyFactoryBean = factoryBean;\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public void afterPropertiesSet() {\n-        jsonProxyFactoryBean.afterPropertiesSet();\n-    }\n-\n-    @Override\n-    public Object invoke(MethodInvocation invocation)\n-            throws Throwable {\n-\n-        return jsonProxyFactoryBean.invoke(invocation);\n-    }\n-\n-    @Override\n-    public Object getObject() {\n-        return jsonProxyFactoryBean.getObject();\n-    }\n-\n-    @Override\n-    public Class<?> getObjectType() {\n-        return jsonProxyFactoryBean.getObjectType();\n-    }\n-\n-    @Override\n-    public boolean isSingleton() {\n-        return jsonProxyFactoryBean.isSingleton();\n-    }\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) {\n-        jsonProxyFactoryBean.setApplicationContext(applicationContext);\n-    }\n-\n-    @Override\n-    public void setServiceUrl(String serviceUrl) {\n-        jsonProxyFactoryBean.setServiceUrl(serviceUrl);\n-    }\n-\n-    @Override\n-    public void setServiceInterface(Class<?> serviceInterface) {\n-        jsonProxyFactoryBean.setServiceInterface(serviceInterface);\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+\r\n+package org.apache.dubbo.rpc.protocol.http;\r\n+\r\n+import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\r\n+import org.aopalliance.intercept.MethodInterceptor;\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+import org.springframework.beans.factory.FactoryBean;\r\n+import org.springframework.beans.factory.InitializingBean;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.remoting.support.RemoteInvocationBasedAccessor;\r\n+\r\n+/**\r\n+ * JsonRpcProxyFactoryBean\r\n+ */\r\n+public class JsonRpcProxyFactoryBean extends RemoteInvocationBasedAccessor\r\n+        implements MethodInterceptor,\r\n+        InitializingBean,\r\n+        FactoryBean<Object>,\r\n+        ApplicationContextAware {\r\n+    private final JsonProxyFactoryBean jsonProxyFactoryBean;\r\n+\r\n+    public JsonRpcProxyFactoryBean(JsonProxyFactoryBean factoryBean) {\r\n+        this.jsonProxyFactoryBean = factoryBean;\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void afterPropertiesSet() {\r\n+        jsonProxyFactoryBean.afterPropertiesSet();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object invoke(MethodInvocation invocation)\r\n+            throws Throwable {\r\n+\r\n+        return jsonProxyFactoryBean.invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObject() {\r\n+        return jsonProxyFactoryBean.getObject();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<?> getObjectType() {\r\n+        return jsonProxyFactoryBean.getObjectType();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isSingleton() {\r\n+        return jsonProxyFactoryBean.isSingleton();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) {\r\n+        jsonProxyFactoryBean.setApplicationContext(applicationContext);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setServiceUrl(String serviceUrl) {\r\n+        jsonProxyFactoryBean.setServiceUrl(serviceUrl);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setServiceInterface(Class<?> serviceInterface) {\r\n+        jsonProxyFactoryBean.setServiceInterface(serviceInterface);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-http/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,157 +1,153 @@\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 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6874 7470 3c2f 6172 7469 6661 6374 4964  http</artifactId\n-00000520: 3e0d 0a20 203c 7665 7273 696f 6e3e 322e  >..  <version>2.\n-00000530: 372e 3130 3c2f 7665 7273 696f 6e3e 0d0a  7.10</version>..\n-00000540: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000550: 6865 204a 534f 4e2d 5250 4320 6d6f 6475  he JSON-RPC modu\n-00000560: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n-00000570: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n-00000580: 3e0d 0a20 203c 6c69 6365 6e73 6573 3e0d  >..  <licenses>.\n-00000590: 0a20 2020 203c 6c69 6365 6e73 653e 0d0a  .    <license>..\n-000005a0: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n-000005b0: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n-000005c0: 696f 6e20 322e 303c 2f6e 616d 653e 0d0a  ion 2.0</name>..\n-000005d0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n-000005e0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000005f0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-00000600: 452d 322e 303c 2f75 726c 3e0d 0a20 2020  E-2.0</url>..   \n-00000610: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n-00000620: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n-00000630: 696f 6e3e 0d0a 2020 2020 3c2f 6c69 6365  ion>..    </lice\n-00000640: 6e73 653e 0d0a 2020 3c2f 6c69 6365 6e73  nse>..  </licens\n-00000650: 6573 3e0d 0a20 203c 7072 6f70 6572 7469  es>..  <properti\n-00000660: 6573 3e0d 0a20 2020 203c 736b 6970 5f6d  es>..    <skip_m\n-00000670: 6176 656e 5f64 6570 6c6f 793e 6661 6c73  aven_deploy>fals\n-00000680: 653c 2f73 6b69 705f 6d61 7665 6e5f 6465  e</skip_maven_de\n-00000690: 706c 6f79 3e0d 0a20 203c 2f70 726f 7065  ploy>..  </prope\n-000006a0: 7274 6965 733e 0d0a 2020 3c64 6570 656e  rties>..  <depen\n-000006b0: 6465 6e63 6965 733e 0d0a 2020 2020 3c64  dencies>..    <d\n-000006c0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000006d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-000006e0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-000006f0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000700: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000710: 7063 2d61 7069 3c2f 6172 7469 6661 6374  pc-api</artifact\n-00000720: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000730: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000740: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000750: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000760: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000770: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000780: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000790: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000007a0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000007b0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000007c0: 2d72 656d 6f74 696e 672d 6874 7470 3c2f  -remoting-http</\n-000007d0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000007e0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-000007f0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000800: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-00000810: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000820: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000830: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000840: 7570 4964 3e6f 7267 2e73 7072 696e 6766  upId>org.springf\n-00000850: 7261 6d65 776f 726b 3c2f 6772 6f75 7049  ramework</groupI\n-00000860: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000870: 6163 7449 643e 7370 7269 6e67 2d63 6f6e  actId>spring-con\n-00000880: 7465 7874 3c2f 6172 7469 6661 6374 4964  text</artifactId\n-00000890: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000008a0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000008b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000008c0: 726f 7570 4964 3e63 6f6d 2e67 6974 6875  roupId>com.githu\n-000008d0: 622e 6272 6961 6e64 696c 6c65 792e 6a73  b.briandilley.js\n-000008e0: 6f6e 7270 6334 6a3c 2f67 726f 7570 4964  onrpc4j</groupId\n-000008f0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000900: 6374 4964 3e6a 736f 6e72 7063 346a 3c2f  ctId>jsonrpc4j</\n-00000910: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000920: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000930: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000940: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000950: 3e6a 6176 6178 2e70 6f72 746c 6574 3c2f  >javax.portlet</\n-00000960: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000970: 3c61 7274 6966 6163 7449 643e 706f 7274  <artifactId>port\n-00000980: 6c65 742d 6170 693c 2f61 7274 6966 6163  let-api</artifac\n-00000990: 7449 643e 0d0a 2020 2020 3c2f 6465 7065  tId>..    </depe\n-000009a0: 6e64 656e 6379 3e0d 0a20 203c 2f64 6570  ndency>..  </dep\n-000009b0: 656e 6465 6e63 6965 733e 0d0a 3c2f 7072  endencies>..</pr\n-000009c0: 6f6a 6563 743e 0d0a                      oject>..\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 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6874 7470 3c2f 6172 7469  o-rpc-http</arti\n+00000500: 6661 6374 4964 3e0a 2020 3c76 6572 7369  factId>.  <versi\n+00000510: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n+00000520: 6f6e 3e0a 2020 3c64 6573 6372 6970 7469  on>.  <descripti\n+00000530: 6f6e 3e54 6865 204a 534f 4e2d 5250 4320  on>The JSON-RPC \n+00000540: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n+00000550: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n+00000560: 7469 6f6e 3e0a 2020 3c6c 6963 656e 7365  tion>.  <license\n+00000570: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+00000580: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+00000590: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+000005a0: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+000005b0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+000005c0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+000005d0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+000005e0: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+000005f0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+00000600: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+00000610: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+00000620: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000630: 0a20 203c 7072 6f70 6572 7469 6573 3e0a  .  <properties>.\n+00000640: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n+00000650: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n+00000660: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000670: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n+00000680: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n+00000690: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+000006a0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+000006b0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+000006c0: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+000006d0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+000006e0: 7562 626f 2d72 7063 2d61 7069 3c2f 6172  ubbo-rpc-api</ar\n+000006f0: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000700: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000710: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+00000720: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000730: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000740: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000750: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000760: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000770: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000780: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000790: 6f2d 7265 6d6f 7469 6e67 2d68 7474 703c  o-remoting-http<\n+000007a0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000007b0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+000007c0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+000007d0: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+000007e0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+000007f0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000800: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000810: 643e 6f72 672e 7370 7269 6e67 6672 616d  d>org.springfram\n+00000820: 6577 6f72 6b3c 2f67 726f 7570 4964 3e0a  ework</groupId>.\n+00000830: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000840: 643e 7370 7269 6e67 2d63 6f6e 7465 7874  d>spring-context\n+00000850: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000860: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000870: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000880: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000890: 636f 6d2e 6769 7468 7562 2e62 7269 616e  com.github.brian\n+000008a0: 6469 6c6c 6579 2e6a 736f 6e72 7063 346a  dilley.jsonrpc4j\n+000008b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000008c0: 203c 6172 7469 6661 6374 4964 3e6a 736f   <artifactId>jso\n+000008d0: 6e72 7063 346a 3c2f 6172 7469 6661 6374  nrpc4j</artifact\n+000008e0: 4964 3e0a 2020 2020 3c2f 6465 7065 6e64  Id>.    </depend\n+000008f0: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000900: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000910: 6f75 7049 643e 6a61 7661 782e 706f 7274  oupId>javax.port\n+00000920: 6c65 743c 2f67 726f 7570 4964 3e0a 2020  let</groupId>.  \n+00000930: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000940: 706f 7274 6c65 742d 6170 693c 2f61 7274  portlet-api</art\n+00000950: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000960: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+00000970: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+00000980: 726f 6a65 6374 3e0a                      roject>.\n"}]}
